changeset 22549:5055805908f5 v8.2.1823

patch 8.2.1823: "gN" does not select the matched string Commit: https://github.com/vim/vim/commit/28f224b2c1bd2fcdee7b4fe2c64826e1cff08f39 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Oct 10 16:45:25 2020 +0200 patch 8.2.1823: "gN" does not select the matched string Problem: "gN" does not select the matched string. Solution: Move the cursor to the start of the match.
author Bram Moolenaar <Bram@vim.org>
date Sat, 10 Oct 2020 17:00:03 +0200
parents 5d5ebd3413d6
children d61c22faf4be
files src/search.c src/testdir/test_gn.vim src/version.c
diffstat 3 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/search.c
+++ b/src/search.c
@@ -3047,7 +3047,7 @@ current_search(
     curwin->w_cursor = end_pos;
     if (LT_POS(VIsual, end_pos) && forward)
 	dec_cursor();
-    else if (VIsual_active && LT_POS(curwin->w_cursor, VIsual))
+    else if (VIsual_active && LT_POS(curwin->w_cursor, VIsual) && forward)
 	curwin->w_cursor = pos;   // put the cursor on the start of the match
     VIsual_active = TRUE;
     VIsual_mode = 'v';
--- a/src/testdir/test_gn.vim
+++ b/src/testdir/test_gn.vim
@@ -172,7 +172,16 @@ func Test_gn_command()
   normal 0wgNy
   call assert_equal('one', @")
   set selection&
-endfu
+endfunc
+
+func Test_gN_repeat()
+  new
+  call setline(1, 'this list is a list with a list of a list.')
+  /list
+  normal $gNgNgNx
+  call assert_equal('list with a list of a list', @")
+  bwipe!
+endfunc
 
 func Test_gn_multi_line()
   new
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1823,
+/**/
     1822,
 /**/
     1821,