aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-09-01 11:42:47 -0400
committerJustin M. Keyes <justinkz@gmail.com>2019-09-01 08:42:47 -0700
commit57327bb48344ac981ca2df915d0d96230a4c1613 (patch)
tree400ee238a879242865a7ff7129beab03bdb0fe42
parente29b89ca54e20b1f3430b43b1c57bd72ccadf954 (diff)
downloadrneovim-57327bb48344ac981ca2df915d0d96230a4c1613.tar.gz
rneovim-57327bb48344ac981ca2df915d0d96230a4c1613.tar.bz2
rneovim-57327bb48344ac981ca2df915d0d96230a4c1613.zip
vim-patch:8.0.1217: remote eval to inspect vars in :debug #10903
Problem: Can't use remote eval to inspect vars in debug mode. Solution: Don't discard the call stack in debug mode. (closes vim/vim#2237, vim/vim#2247) https://github.com/vim/vim/commit/d99388ba8535a6fecf7d0bf7b982832c0b816062
-rw-r--r--src/nvim/ex_cmds2.c2
-rw-r--r--src/nvim/globals.h3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index df23d0630a..691ad74100 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -159,6 +159,7 @@ void do_debug(char_u *cmd)
redir_off = true; // don't redirect debug commands
State = NORMAL;
+ debug_mode = true;
if (!debug_did_msg) {
MSG(_("Entering Debug mode. Type \"cont\" to continue."));
@@ -337,6 +338,7 @@ void do_debug(char_u *cmd)
msg_scroll = save_msg_scroll;
lines_left = (int)(Rows - 1);
State = save_State;
+ debug_mode = false;
did_emsg = save_did_emsg;
cmd_silent = save_cmd_silent;
msg_silent = save_msg_silent;
diff --git a/src/nvim/globals.h b/src/nvim/globals.h
index 82fc7c1218..ad321963fe 100644
--- a/src/nvim/globals.h
+++ b/src/nvim/globals.h
@@ -655,9 +655,10 @@ EXTERN char_u *fenc_default INIT(= NULL);
/// finish_op : When State is NORMAL, after typing the operator and
/// before typing the motion command.
/// motion_force: Last motion_force from do_pending_operator()
+/// debug_mode: Debug mode
EXTERN int State INIT(= NORMAL); // This is the current state of the
// command interpreter.
-
+EXTERN bool debug_mode INIT(= false);
EXTERN bool finish_op INIT(= false); // true while an operator is pending
EXTERN long opcount INIT(= 0); // count for pending operator
EXTERN int motion_force INIT(=0); // motion force for pending operator