aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/edit.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2015-09-18 15:12:12 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2015-09-18 15:12:12 -0300
commite80d7c0df7ec6e88a964e58d86a70c8f980e4cc1 (patch)
tree0037b05c1a27aaaf31c038a32f3a64100a8f3ccf /src/nvim/edit.c
parenta4c41735359d0114e678cbf4888c514f604f01dd (diff)
parente897ccad3eb1eb8d423766300be9c6055fcd1d9f (diff)
downloadrneovim-e80d7c0df7ec6e88a964e58d86a70c8f980e4cc1.tar.gz
rneovim-e80d7c0df7ec6e88a964e58d86a70c8f980e4cc1.tar.bz2
rneovim-e80d7c0df7ec6e88a964e58d86a70c8f980e4cc1.zip
Merge PR #3309 'Fixes for 0.1'
Diffstat (limited to 'src/nvim/edit.c')
-rw-r--r--src/nvim/edit.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index 6bcf5e804a..427623e052 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -254,7 +254,16 @@ edit (
)
{
if (curbuf->terminal) {
- terminal_enter();
+ if (ex_normal_busy) {
+ // don't enter terminal mode from `ex_normal`, which can result in all
+ // kinds of havoc(such as terminal mode recursiveness). Instead, set a
+ // flag that allow us to force-set the value of `restart_edit` before
+ // `ex_normal` returns
+ restart_edit = 'i';
+ force_restart_edit = true;
+ } else {
+ terminal_enter();
+ }
return false;
}