vim-patch:8.2.3455: using a count with "gp" leaves '] in wrong position

Problem:    Using a count with "gp" leaves '] in wrong position. (Naohiro Ono)
Solution:   Correct the mark position. (closes vim/vim#8899)
56858e4ed4
This commit is contained in:
zeertzjq 2022-01-29 06:05:39 +08:00
parent fee7d6fba4
commit 7812c6830c
2 changed files with 8 additions and 2 deletions

View File

@ -3616,6 +3616,10 @@ error:
} else {
curwin->w_cursor.lnum = new_lnum;
curwin->w_cursor.col = col;
curbuf->b_op_end = curwin->w_cursor;
if (col > 1) {
curbuf->b_op_end.col = col - 1;
}
}
} else if (y_type == kMTLineWise) {
// put cursor on first non-blank in first inserted line

View File

@ -116,8 +116,10 @@ func Test_gp_with_count_leaves_cursor_at_end()
new
call setline(1, '<---->')
call setreg('@', "foo\nbar", 'c')
exe "normal 1G3|3gpix\<Esc>"
call assert_equal(['<--foo', 'barfoo', 'barfoo', 'barx-->'], getline(1, '$'))
normal 1G3|3gp
call assert_equal([0, 4, 4, 0], getpos("."))
call assert_equal(['<--foo', 'barfoo', 'barfoo', 'bar-->'], getline(1, '$'))
call assert_equal([0, 4, 3, 0], getpos("']"))
bwipe!
endfunc