diff --git a/src/register.c b/src/register.c index 9d4354aff2..47fcd73824 100644 --- a/src/register.c +++ b/src/register.c @@ -1764,7 +1764,7 @@ do_put( { if (dir == FORWARD && c == NUL) ++col; - if (dir != FORWARD && c != NUL) + if (dir != FORWARD && c != NUL && curwin->w_cursor.coladd > 0) ++curwin->w_cursor.col; if (c == TAB) { diff --git a/src/testdir/test_registers.vim b/src/testdir/test_registers.vim index d92ad977f1..242dfd4183 100644 --- a/src/testdir/test_registers.vim +++ b/src/testdir/test_registers.vim @@ -659,4 +659,22 @@ func Test_clipboard_nul() bwipe! endfunc +func Test_ve_blockpaste() + new + set ve=all + 0put =['QWERTZ','ASDFGH'] + call cursor(1,1) + exe ":norm! \3ljdP" + call assert_equal(1, col('.')) + call assert_equal(getline(1, 2), ['QWERTZ', 'ASDFGH']) + call cursor(1,1) + exe ":norm! \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 diff --git a/src/version.c b/src/version.c index 88bd908c65..73d4560014 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1170, /**/ 1169, /**/