]> granicus.if.org Git - vim/commitdiff
patch 8.1.1704: C-R C-W does not work after C-G when using 'incsearch' v8.1.1704
authorBram Moolenaar <Bram@vim.org>
Tue, 16 Jul 2019 19:38:51 +0000 (21:38 +0200)
committerBram Moolenaar <Bram@vim.org>
Tue, 16 Jul 2019 19:38:51 +0000 (21:38 +0200)
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)

src/ex_getln.c
src/testdir/test_search.vim
src/version.c

index b1b996183bb46fbf6f4876a982717e6a0ddc953c..efeae94ed814aeba480227202690f5624b22bae8 100644 (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);
index 2765c8cbf81efe2985619d774ad8c8d5e3022093..a356393b063cb88740f04af16d96dbebd4b7e283 100644 (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!
index e3373bed5380767eb440d18275dcf47f5242cd45..aacfeb6b8cadc3e3c89811685243f423ad2f2d40 100644 (file)
@@ -777,6 +777,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1704,
 /**/
     1703,
 /**/