From 540480697dd8c9a5c97188e8d0bc8f2ac4d751d1 Mon Sep 17 00:00:00 2001 From: Shougo Matsushita Date: Tue, 26 Aug 2025 17:36:49 +0200 Subject: [PATCH] patch 9.1.1689: CmdlineChanged not triggered by Problem: CmdlineChanged not triggered by Solution: Use STRCMP() instead of STRNCMP() (Shougo Matsushita) closes: #18101 Signed-off-by: Shougo Matsushita Signed-off-by: Christian Brabandt --- src/ex_getln.c | 6 +++--- src/testdir/test_autocmd.vim | 11 +++++++++++ src/version.c | 2 ++ 3 files changed, 16 insertions(+), 3 deletions(-) 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, /**/