diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2015-09-18 15:12:12 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2015-09-18 15:12:12 -0300 |
commit | e80d7c0df7ec6e88a964e58d86a70c8f980e4cc1 (patch) | |
tree | 0037b05c1a27aaaf31c038a32f3a64100a8f3ccf /src/nvim/ex_docmd.c | |
parent | a4c41735359d0114e678cbf4888c514f604f01dd (diff) | |
parent | e897ccad3eb1eb8d423766300be9c6055fcd1d9f (diff) | |
download | rneovim-e80d7c0df7ec6e88a964e58d86a70c8f980e4cc1.tar.gz rneovim-e80d7c0df7ec6e88a964e58d86a70c8f980e4cc1.tar.bz2 rneovim-e80d7c0df7ec6e88a964e58d86a70c8f980e4cc1.zip |
Merge PR #3309 'Fixes for 0.1'
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r-- | src/nvim/ex_docmd.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index d69d106dc6..3c09a3a2f8 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -7624,6 +7624,10 @@ void update_topline_cursor(void) */ static void ex_normal(exarg_T *eap) { + if (curbuf->terminal) { + EMSG("Can't re-enter normal mode from terminal mode"); + return; + } int save_msg_scroll = msg_scroll; int save_restart_edit = restart_edit; int save_msg_didout = msg_didout; @@ -7715,7 +7719,14 @@ static void ex_normal(exarg_T *eap) --ex_normal_busy; msg_scroll = save_msg_scroll; - restart_edit = save_restart_edit; + if (force_restart_edit) { + force_restart_edit = false; + } else { + // some function called was aware of ex_normal and decided to override the + // value of restart_edit anyway. So far only used in terminal mode(see + // terminal_enter() in edit.c) + restart_edit = save_restart_edit; + } p_im = save_insertmode; finish_op = save_finish_op; opcount = save_opcount; |