# HG changeset patch # User Christian Brabandt # Date 1523121305 -7200 # Node ID 75e35ebdb7a467226716255f82dfceb8d6162a7b # Parent 1212b1877959cda000c4f3ad8789aeaec1f94573 patch 8.0.1672: error during completion causes command to be cancelled commit https://github.com/vim/vim/commit/72532d354e699f1cceec34c0b08e1de4d3ea9641 Author: Bram Moolenaar Date: Sat Apr 7 19:09:09 2018 +0200 patch 8.0.1672: error during completion causes command to be cancelled Problem: Error during completion causes command to be cancelled. Solution: Reset did_emsg before waiting for another character. (Tom M.) diff --git a/src/ex_getln.c b/src/ex_getln.c --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -426,6 +426,10 @@ getcmdline( #endif quit_more = FALSE; /* reset after CTRL-D which had a more-prompt */ + did_emsg = FALSE; /* There can't really be a reason why an error + that occurs while typing a command should + cause the command not to be executed. */ + cursorcmd(); /* set the cursor on the right spot */ /* Get a character. Ignore K_IGNORE and K_NOP, they should not do diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -316,6 +316,17 @@ func Test_paste_in_cmdline() call feedkeys(":\etoupper(getline(1))\\\"\", 'tx') call assert_equal('"ASDF.X /TMP/SOME VERYLONGWORD A;B-C*D ', @:) bwipe! + + " Error while typing a command used to cause that it was not executed + " in the end. + new + try + call feedkeys(":file \%Xtestfile\", 'tx') + catch /^Vim\%((\a\+)\)\=:E32/ + " ignore error E32 + endtry + call assert_equal("Xtestfile", bufname("%")) + bwipe! endfunc func Test_remove_char_in_cmdline() diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -763,6 +763,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1672, +/**/ 1671, /**/ 1670,