0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

patch 8.1.1704: C-R C-W does not work after C-G when using 'incsearch'

Problem:    C-R C-W does not work after C-G when using 'incsearch'.
Solution:   Put cursor at end of the match. (Yasuhiro Matsumoto, closes #4664)
This commit is contained in:
Bram Moolenaar 2019-07-16 21:38:51 +02:00
parent 6138640806
commit 69a5b86794
3 changed files with 10 additions and 3 deletions

View File

@ -713,6 +713,7 @@ may_adjust_incsearch_highlighting(
save_viewstate(&is_state->old_viewstate);
update_screen(NOT_VALID);
redrawcmdline();
curwin->w_cursor = is_state->match_end;
}
else
vim_beep(BO_ERROR);

View File

@ -240,6 +240,10 @@ func Test_search_cmdline2()
" go to previous match (on line 2)
call feedkeys("/the\<C-G>\<C-G>\<C-G>\<C-T>\<C-T>\<C-T>\<cr>", 'tx')
call assert_equal(' 2 these', getline('.'))
1
" go to previous match (on line 2)
call feedkeys("/the\<C-G>\<C-R>\<C-W>\<cr>", 'tx')
call assert_equal('theother', @/)
" Test 2: keep the view,
" after deleting a character from the search cmd
@ -251,7 +255,7 @@ func Test_search_cmdline2()
call assert_equal({'lnum': 10, 'leftcol': 0, 'col': 4, 'topfill': 0, 'topline': 6, 'coladd': 0, 'skipcol': 0, 'curswant': 4}, winsaveview())
" remove all history entries
for i in range(10)
for i in range(11)
call histdel('/')
endfor
@ -477,14 +481,14 @@ func Test_search_cmdline5()
" Do not call test_override("char_avail", 1) so that <C-g> and <C-t> work
" regardless char_avail.
new
call setline(1, [' 1 the first', ' 2 the second', ' 3 the third'])
call setline(1, [' 1 the first', ' 2 the second', ' 3 the third', ''])
set incsearch
1
call feedkeys("/the\<c-g>\<c-g>\<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('.'))
call assert_equal(' 1 the first', getline('.'))
" clean up
set noincsearch
bw!

View File

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