1
0
forked from aniani/vim

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 #11971)
This commit is contained in:
zeertzjq
2023-02-11 10:34:07 +00:00
committed by Bram Moolenaar
parent c4b7dec382
commit 412e0e4ed9
3 changed files with 25 additions and 11 deletions

View File

@@ -1253,9 +1253,9 @@ cmdline_insert_reg(int *gotesc UNUSED)
// remove the double quote // remove the double quote
redrawcmd(); redrawcmd();
// The text has been stuffed, the command line didn't change yet, but it // With "literally": the command line has already changed.
// will change soon. The caller must take care of it. // Else: the text has been stuffed, but the command line didn't change yet.
return literally ? CMDLINE_NOT_CHANGED : CMDLINE_CHANGED; return literally ? CMDLINE_CHANGED : CMDLINE_NOT_CHANGED;
} }
/* /*
@@ -2086,10 +2086,8 @@ getcmdline_int(
res = cmdline_insert_reg(&gotesc); res = cmdline_insert_reg(&gotesc);
if (res == GOTO_NORMAL_MODE) if (res == GOTO_NORMAL_MODE)
goto returncmd; goto returncmd;
#ifdef FEAT_SEARCH_EXTRA if (res == CMDLINE_CHANGED)
if (res == CMDLINE_NOT_CHANGED) goto cmdline_changed;
is_state.incsearch_postponed = TRUE;
#endif
goto cmdline_not_changed; goto cmdline_not_changed;
case Ctrl_D: case Ctrl_D:

View File

@@ -1909,17 +1909,15 @@ func Test_Cmdline()
call assert_equal(':', g:entered) call assert_equal(':', g:entered)
au! CmdlineChanged au! CmdlineChanged
autocmd CmdlineChanged : let g:log += [getcmdline()]
let g:log = [] let g:log = []
cnoremap <F1> <Cmd>call setcmdline('ls')<CR> cnoremap <F1> <Cmd>call setcmdline('ls')<CR>
autocmd CmdlineChanged : let g:log += [getcmdline()]
call feedkeys(":\<F1>", 'xt') call feedkeys(":\<F1>", 'xt')
call assert_equal(['ls'], g:log) call assert_equal(['ls'], g:log)
unlet g:log
au! CmdlineChanged
cunmap <F1> cunmap <F1>
let g:log = [] 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 feedkeys(":sign \<Tab>\<Tab>\<C-N>\<C-P>\<S-Tab>\<S-Tab>\<Esc>", 'xt')
call assert_equal([ call assert_equal([
\ 's', \ 's',
@@ -1950,6 +1948,22 @@ func Test_Cmdline()
\ 'sign unplace', \ 'sign unplace',
\ ], g:log) \ ], g:log)
set wildmenu& wildoptions& 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 unlet g:log
au! CmdlineChanged au! CmdlineChanged

View File

@@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1299,
/**/ /**/
1298, 1298,
/**/ /**/