Mercurial > vim
changeset 31916:dd38c6cc04bd v9.0.1290
patch 9.0.1290: CTRL-N and -P on cmdline don't trigger CmdlineChanged
Commit: https://github.com/vim/vim/commit/af9e28a5b8f888b79459393ddb26fffe613c3f3c
Author: zeertzjq <zeertzjq@outlook.com>
Date: Mon Feb 6 20:58:09 2023 +0000
patch 9.0.1290: CTRL-N and -P on cmdline don't trigger CmdlineChanged
Problem: CTRL-N and -P on cmdline don't trigger CmdlineChanged.
Solution: Jump to cmdline_changed instead of cmdline_not_changed.
(closes #11956)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 06 Feb 2023 22:00:05 +0100 |
parents | 4a1822a9bd05 |
children | 24f840f968f8 |
files | src/ex_getln.c src/testdir/test_autocmd.vim src/version.c |
diffstat | 3 files changed, 39 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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 {
--- 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