diff --git a/src/register.c b/src/register.c index 9d4354aff2b87f4e2a90b5d305d6a40ba0cd21e6..47fcd73824891f876f12987974b73002d567f7d1 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 d92ad977f1fe6084018abe5b873772dcfc31e641..242dfd4183e887875e56ad7fcf6c49672577b1ec 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! \<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 diff --git a/src/version.c b/src/version.c index 88bd908c65fbd9747f7d174d168410ea42a2e7eb..73d456001471e75ce54464e33d469459262b0bfc 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, /**/