0
0
mirror of https://github.com/vim/vim.git synced 2025-09-30 04:44:14 -04:00

patch 8.2.1170: cursor off by one with block paste while 'virtualedit' "all"

Problem:    Cursor off by one with block paste while 'virtualedit' is "all".
Solution:   Adjust condition. (Hugo Gualandi, closes #6430)
This commit is contained in:
Bram Moolenaar
2020-07-10 20:24:07 +02:00
parent 97d2f34c87
commit ef85a9b2d9
3 changed files with 21 additions and 1 deletions

View File

@@ -1764,7 +1764,7 @@ do_put(
{ {
if (dir == FORWARD && c == NUL) if (dir == FORWARD && c == NUL)
++col; ++col;
if (dir != FORWARD && c != NUL) if (dir != FORWARD && c != NUL && curwin->w_cursor.coladd > 0)
++curwin->w_cursor.col; ++curwin->w_cursor.col;
if (c == TAB) if (c == TAB)
{ {

View File

@@ -659,4 +659,22 @@ func Test_clipboard_nul()
bwipe! bwipe!
endfunc endfunc
func Test_ve_blockpaste()
new
set ve=all
0put =['QWERTZ','ASDFGH']
call cursor(1,1)
exe ":norm! \<C-V>3ljdP"
call assert_equal(1, col('.'))
call assert_equal(getline(1, 2), ['QWERTZ', 'ASDFGH'])
call cursor(1,1)
exe ":norm! \<C-V>3ljd"
call cursor(1,1)
norm! $3lP
call assert_equal(5, col('.'))
call assert_equal(getline(1, 2), ['TZ QWER', 'GH ASDF'])
set ve&vim
bwipe!
endfunc
" vim: shiftwidth=2 sts=2 expandtab " vim: shiftwidth=2 sts=2 expandtab

View File

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