From 4eaf4399322aa955ba744dcfc9e5482aeab7c916 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Tue, 13 Mar 2018 15:55:14 -0700 Subject: [PATCH] Better support for breakpoints. --- cursed.lua | 3 +++ cursed.moon | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/cursed.lua b/cursed.lua index 39afefa..1aaba50 100644 --- a/cursed.lua +++ b/cursed.lua @@ -344,6 +344,7 @@ main_loop = function(err_msg, stack_index, var_index, value_index) local file = stack_locations[stack_pad.selected] local filename, line_no = file:match("([^:]*):(.*)") C.endwin() + err_pad, stack_pad, var_names, var_values = nil, nil, nil, nil os.execute((os.getenv("EDITOR") or "nano") .. " +" .. line_no .. " " .. filename) local initial_index = stack_pad.selected return main_loop(err_msg, stack_pad.selected, var_index) @@ -351,6 +352,8 @@ main_loop = function(err_msg, stack_index, var_index, value_index) break end end + err_pad, stack_pad, var_names, var_values = nil, nil, nil, nil + return C.endwin() end run_debugger = function(err_msg) stdscr = C.initscr() diff --git a/cursed.moon b/cursed.moon index 18b9de2..6511270 100644 --- a/cursed.moon +++ b/cursed.moon @@ -264,6 +264,7 @@ main_loop = (err_msg, stack_index, var_index, value_index)-> filename,line_no = file\match("([^:]*):(.*)") -- Launch system editor and then redraw everything C.endwin! + err_pad, stack_pad, var_names, var_values = nil, nil, nil, nil os.execute((os.getenv("EDITOR") or "nano").." +"..line_no.." "..filename) initial_index = stack_pad.selected return main_loop(err_msg,stack_pad.selected,var_index) @@ -271,6 +272,9 @@ main_loop = (err_msg, stack_index, var_index, value_index)-> when ('q')\byte!, ("Q")\byte! break + err_pad, stack_pad, var_names, var_values = nil, nil, nil, nil + C.endwin! + run_debugger = (err_msg)-> export stdscr, SCREEN_H, SCREEN_W stdscr = C.initscr!