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)
diff --git a/src/ex_getln.c b/src/ex_getln.c
index d40f923..b2bf4ed 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1253,9 +1253,9 @@
// 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 @@
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:
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index c11f6ff..f2a763a 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -1909,17 +1909,15 @@
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 @@
\ '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
diff --git a/src/version.c b/src/version.c
index f50677b..9e8e975 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1299,
+/**/
1298,
/**/
1297,