diff --git a/src/ex_getln.c b/src/ex_getln.c index 289231045c..8426f00cbd 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -1855,7 +1855,7 @@ getcmdline_int( if (ccline.cmdbuff != NULL) { - prev_cmdbuff = vim_strnsave(ccline.cmdbuff, ccline.cmdpos); + prev_cmdbuff = vim_strsave(ccline.cmdbuff); if (prev_cmdbuff == NULL) goto returncmd; } @@ -2622,8 +2622,8 @@ cmdline_changed: // Trigger CmdlineChanged autocommands. if (trigger_cmdlinechanged && (ccline.cmdpos != prev_cmdpos - || (prev_cmdbuff != NULL && STRNCMP(prev_cmdbuff, - ccline.cmdbuff, prev_cmdpos) != 0))) + || (prev_cmdbuff != NULL && + STRCMP(prev_cmdbuff, ccline.cmdbuff) != 0))) trigger_cmd_autocmd(cmdline_type, EVENT_CMDLINECHANGED); // Trigger CursorMovedC autocommands. diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim index 43605f7e11..2c976e82d7 100644 --- a/src/testdir/test_autocmd.vim +++ b/src/testdir/test_autocmd.vim @@ -2183,6 +2183,17 @@ func Test_Cmdline() \ '0abc1abc2abc3', \ ], g:log) + " should trigger CmdlineChanged + let g:log = [] + call feedkeys(":foo\\\\\", 'xt') + call assert_equal([ + \ 'f', + \ 'fo', + \ 'foo', + \ 'fo', + \ 'f', + \ ], g:log) + unlet g:log au! CmdlineChanged diff --git a/src/version.c b/src/version.c index 390959c7ee..bedb8ec0bd 100644 --- a/src/version.c +++ b/src/version.c @@ -724,6 +724,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1689, /**/ 1688, /**/