0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.1.2218: "gN" is off by one in Visual mode

Problem:    "gN" is off by one in Visual mode.
Solution:   Check moving forward. (Christian Brabandt, #5075)
This commit is contained in:
Bram Moolenaar
2019-10-26 14:42:09 +02:00
parent c7488a7fc8
commit 453c19257f
3 changed files with 9 additions and 2 deletions

View File

@@ -4677,7 +4677,7 @@ abort_search:
#endif /* FEAT_TEXTOBJ */
/*
* Check if the pattern is one character long or zero-width.
* Check if the pattern is zero-width.
* If move is TRUE, check from the beginning of the buffer, else from position
* "cur".
* "direction" is FORWARD or BACKWARD.
@@ -4851,7 +4851,7 @@ current_search(
// put cursor on last character of match
curwin->w_cursor = end_pos;
if (LT_POS(VIsual, end_pos))
if (LT_POS(VIsual, end_pos) && forward)
dec_cursor();
else if (VIsual_active && LT_POS(curwin->w_cursor, VIsual))
curwin->w_cursor = pos; // put the cursor on the start of the match

View File

@@ -148,6 +148,11 @@ func Test_gn_command()
norm! gg0f7vhhhhgnd
call assert_equal(['12348'], getline(1,'$'))
sil! %d _
call setline('.', ['12345678'])
let @/ = '5'
norm! gg0f2vf7gNd
call assert_equal(['1678'], getline(1,'$'))
sil! %d _
set wrapscan&vim
endfu

View File

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