Mercurial > vim
changeset 31934:929a9427862c v9.0.1299
patch 9.0.1299: change for triggering incsearch not sufficiently tested
Commit: https://github.com/vim/vim/commit/412e0e4ed903682f352d8ea58ded480930cc664f
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sat Feb 11 10:34:07 2023 +0000
patch 9.0.1299: change for triggering incsearch not sufficiently tested
Problem: Change for triggering incsearch not sufficiently tested.
Solution: Add a test case. Simplify the code. (closes https://github.com/vim/vim/issues/11971)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 11 Feb 2023 11:45:04 +0100 |
parents | 82d3cd3c6b40 |
children | 46f369a1f0cb |
files | src/ex_getln.c src/testdir/test_autocmd.vim src/version.c |
diffstat | 3 files changed, 25 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -1253,9 +1253,9 @@ cmdline_insert_reg(int *gotesc UNUSED) // remove the double quote redrawcmd(); - // The text has been stuffed, the command line didn't change yet, but it - // will change soon. The caller must take care of it. - return literally ? CMDLINE_NOT_CHANGED : CMDLINE_CHANGED; + // With "literally": the command line has already changed. + // Else: the text has been stuffed, but the command line didn't change yet. + return literally ? CMDLINE_CHANGED : CMDLINE_NOT_CHANGED; } /* @@ -2086,10 +2086,8 @@ getcmdline_int( res = cmdline_insert_reg(&gotesc); if (res == GOTO_NORMAL_MODE) goto returncmd; -#ifdef FEAT_SEARCH_EXTRA - if (res == CMDLINE_NOT_CHANGED) - is_state.incsearch_postponed = TRUE; -#endif + if (res == CMDLINE_CHANGED) + goto cmdline_changed; goto cmdline_not_changed; case Ctrl_D:
--- a/src/testdir/test_autocmd.vim +++ b/src/testdir/test_autocmd.vim @@ -1909,17 +1909,15 @@ func Test_Cmdline() call assert_equal(':', g:entered) au! CmdlineChanged + autocmd CmdlineChanged : let g:log += [getcmdline()] + let g:log = [] cnoremap <F1> <Cmd>call setcmdline('ls')<CR> - autocmd CmdlineChanged : let g:log += [getcmdline()] call feedkeys(":\<F1>", 'xt') call assert_equal(['ls'], g:log) - unlet g:log - 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', @@ -1950,6 +1948,22 @@ func Test_Cmdline() \ 'sign unplace', \ ], g:log) set wildmenu& wildoptions& + + let g:log = [] + let @r = 'abc' + call feedkeys(":0\<C-R>r1\<C-R>\<C-O>r2\<C-R>\<C-R>r3\<Esc>", 'xt') + call assert_equal([ + \ '0', + \ '0a', + \ '0ab', + \ '0abc', + \ '0abc1', + \ '0abc1abc', + \ '0abc1abc2', + \ '0abc1abc2abc', + \ '0abc1abc2abc3', + \ ], g:log) + unlet g:log au! CmdlineChanged