diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-02-06 20:58:09 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-02-06 20:58:09 +0000 |
commit | af9e28a5b8f888b79459393ddb26fffe613c3f3c (patch) | |
tree | b77d03b44b1bdf09e72d3102483d731528b08799 | |
parent | 43e234e8b48caf59d6895a31628dad0bba4fd5c8 (diff) | |
download | vim-git-af9e28a5b8f888b79459393ddb26fffe613c3f3c.tar.gz |
patch 9.0.1290: CTRL-N and -P on cmdline don't trigger CmdlineChangedv9.0.1290
Problem: CTRL-N and -P on cmdline don't trigger CmdlineChanged.
Solution: Jump to cmdline_changed instead of cmdline_not_changed.
(closes #11956)
-rw-r--r-- | src/ex_getln.c | 4 | ||||
-rw-r--r-- | src/testdir/test_autocmd.vim | 35 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 39 insertions, 2 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c index 2407bceb1..6d0b3c5db 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -2293,7 +2293,7 @@ getcmdline_int( wild_type = (c == Ctrl_P) ? WILD_PREV : WILD_NEXT; if (nextwild(&xpc, wild_type, 0, firstc != '@') == FAIL) break; - goto cmdline_not_changed; + goto cmdline_changed; } // FALLTHROUGH case K_UP: @@ -2315,7 +2315,7 @@ getcmdline_int( wild_type = WILD_PAGEDOWN; if (nextwild(&xpc, wild_type, 0, firstc != '@') == FAIL) break; - goto cmdline_not_changed; + goto cmdline_changed; } else { diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim index 8931678d7..c11f6ff30 100644 --- a/src/testdir/test_autocmd.vim +++ b/src/testdir/test_autocmd.vim @@ -1918,6 +1918,41 @@ func Test_Cmdline() au! CmdlineChanged cunmap <F1> + let g:log = [] + autocmd CmdlineChanged : let g:log += [getcmdline()] + call feedkeys(":sign \<Tab>\<Tab>\<C-N>\<C-P>\<S-Tab>\<S-Tab>\<Esc>", 'xt') + call assert_equal([ + \ 's', + \ 'si', + \ 'sig', + \ 'sign', + \ 'sign ', + \ 'sign define', + \ 'sign jump', + \ 'sign list', + \ 'sign jump', + \ 'sign define', + \ 'sign ', + \ ], g:log) + let g:log = [] + set wildmenu wildoptions+=pum + call feedkeys(":sign \<S-Tab>\<PageUp>\<kPageUp>\<kPageDown>\<PageDown>\<Esc>", 'xt') + call assert_equal([ + \ 's', + \ 'si', + \ 'sig', + \ 'sign', + \ 'sign ', + \ 'sign unplace', + \ 'sign jump', + \ 'sign define', + \ 'sign undefine', + \ 'sign unplace', + \ ], g:log) + set wildmenu& wildoptions& + unlet g:log + au! CmdlineChanged + au! CmdlineEnter : let g:entered = expand('<afile>') au! CmdlineLeave : let g:left = expand('<afile>') let g:entered = 0 diff --git a/src/version.c b/src/version.c index d7b12b1f1..3523df2b9 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1290, +/**/ 1289, /**/ 1288, |