diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-06-18 17:28:39 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-06-18 17:28:39 +0200 |
commit | 158ea175a99fc23eae1b0a5ee9a81cdd973854a6 (patch) | |
tree | 85750aa423cd26647ae403bbf540b9ae7a74067a /src | |
parent | 2f03e5a0a9cfaabb01c57dd3348a05e86c26623c (diff) | |
download | vim-git-158ea175a99fc23eae1b0a5ee9a81cdd973854a6.tar.gz |
patch 8.2.1000: get error when leaving Ex mode with :visualv8.2.1000
Problem: Get error when leaving Ex mode with :visual and a CmdLineEnter
autocommand was used.
Solution: Reset ex_pressedreturn. (closes #6293)
Diffstat (limited to 'src')
-rw-r--r-- | src/ex_docmd.c | 3 | ||||
-rw-r--r-- | src/testdir/test_ex_mode.vim | 11 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 3a1a61491..93f33ae42 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -1895,7 +1895,7 @@ do_one_cmd( p = ea.cmd; while (ASCII_ISALNUM(*p)) ++p; - p = vim_strnsave(ea.cmd, (int)(p - ea.cmd)); + p = vim_strnsave(ea.cmd, p - ea.cmd); ret = apply_autocmds(EVENT_CMDUNDEFINED, p, p, TRUE, NULL); vim_free(p); // If the autocommands did something and didn't cause an error, try @@ -6215,6 +6215,7 @@ do_exedit( || eap->cmdidx == CMD_view)) { exmode_active = FALSE; + ex_pressedreturn = FALSE; if (*eap->arg == NUL) { // Special case: ":global/pat/visual\NLvi-commands" diff --git a/src/testdir/test_ex_mode.vim b/src/testdir/test_ex_mode.vim index d23e0ad93..32c65448f 100644 --- a/src/testdir/test_ex_mode.vim +++ b/src/testdir/test_ex_mode.vim @@ -166,6 +166,17 @@ func Test_ex_mode_errors() endtry call assert_equal(1, caught_e565) au! InsertCharPre + + new + au CmdLineEnter * call ExEnterFunc() + func ExEnterFunc() + + endfunc + call feedkeys("gQvi\r", 'xt') + + au! CmdLineEnter + delfunc ExEnterFunc + quit endfunc " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index f1cc22f5e..5f4ff7172 100644 --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1000, +/**/ 999, /**/ 998, |