forked from aniani/vim
patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Problem: Using CTRL-G with 'incsearch' and ? goes in the wrong direction. (Ramel Eshed) Solution: Adjust search_start. (Christian Brabandt)
This commit is contained in:
@@ -1708,6 +1708,14 @@ getcmdline(
|
||||
search_start = t;
|
||||
(void)decl(&search_start);
|
||||
}
|
||||
else if (c == Ctrl_G && firstc == '?')
|
||||
{
|
||||
/* move just after the current match, so that
|
||||
* when nv_search finishes the cursor will be
|
||||
* put back on the match */
|
||||
search_start = t;
|
||||
(void)incl(&search_start);
|
||||
}
|
||||
if (LT_POS(t, search_start) && c == Ctrl_G)
|
||||
{
|
||||
/* wrap around */
|
||||
|
@@ -322,3 +322,37 @@ func Test_search_cmdline3()
|
||||
call test_override("char_avail", 0)
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
func Test_search_cmdline4()
|
||||
if !exists('+incsearch')
|
||||
return
|
||||
endif
|
||||
" need to disable char_avail,
|
||||
" so that expansion of commandline works
|
||||
call test_override("char_avail", 1)
|
||||
new
|
||||
call setline(1, [' 1 the first', ' 2 the second', ' 3 the third'])
|
||||
set incsearch
|
||||
$
|
||||
call feedkeys("?the\<c-g>\<cr>", 'tx')
|
||||
call assert_equal(' 3 the third', getline('.'))
|
||||
$
|
||||
call feedkeys("?the\<c-g>\<c-g>\<cr>", 'tx')
|
||||
call assert_equal(' 1 the first', getline('.'))
|
||||
$
|
||||
call feedkeys("?the\<c-g>\<c-g>\<c-g>\<cr>", 'tx')
|
||||
call assert_equal(' 2 the second', getline('.'))
|
||||
$
|
||||
call feedkeys("?the\<c-t>\<cr>", 'tx')
|
||||
call assert_equal(' 1 the first', getline('.'))
|
||||
$
|
||||
call feedkeys("?the\<c-t>\<c-t>\<cr>", 'tx')
|
||||
call assert_equal(' 3 the third', getline('.'))
|
||||
$
|
||||
call feedkeys("?the\<c-t>\<c-t>\<c-t>\<cr>", 'tx')
|
||||
call assert_equal(' 2 the second', getline('.'))
|
||||
" clean up
|
||||
set noincsearch
|
||||
call test_override("char_avail", 0)
|
||||
bw!
|
||||
endfunc
|
||||
|
@@ -764,6 +764,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
692,
|
||||
/**/
|
||||
691,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user