From be9de61012047b82e0f57742205e25a9a11ecf1c Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Fri, 10 Jul 2020 19:29:31 -0400 Subject: vim-patch:8.2.1170: cursor off by one with block paste while 'virtualedit' "all" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: Cursor off by one with block paste while 'virtualedit' is "all". Solution: Adjust condition. (Hugo Gualandi, closes vim/vim#6430) https://github.com/vim/vim/commit/ef85a9b2d9e992ab594e089af3883e381cfad426 N/A patches for version.c: vim-patch:8.2.1114: terminal test sometimes times out Problem: Terminal test sometimes times out. Solution: Split the test in two parts. https://github.com/vim/vim/commit/1112c0febb509d0cb219f3a2479fd36833507167 vim-patch:8.2.1171: possible crash when out of memory Problem: Possible crash when out of memory. Solution: Check for NULL pointer. (Dominique Pellé, closes vim/vim#6432) https://github.com/vim/vim/commit/58bb61cf5ee008254eb331bc3574eac87d2dcc4a vim-patch:8.2.1172: error messages when doing "make clean" in doc or tee Problem: Error messages when doing "make clean" in the runtime/doc or src/tee directories. Solution: Use "rm -f". https://github.com/vim/vim/commit/08fc48492acc07259d91293df12bf66447819443 vim-patch:8.2.1173: tee doesn't build on some systems Problem: Tee doesn't build on some systems. Solution: Include header files. (Dominique Pelle, closes vim/vim#6431) https://github.com/vim/vim/commit/40043152924827fa8c4064951065ff507c610164 vim-patch:8.2.1177: terminal2 test sometimes hangs in the GUI Problem: Terminal2 test sometimes hangs in the GUI. Solution: Move some tests to other files to further locate the problem. Set the GUI to a fixed screen size. https://github.com/vim/vim/commit/18aa13d13b69c090dbe186cd4939896488c433e3 vim-patch:8.2.1179: Test_termwinscroll() sometimes hangs in the GUI Problem: Test_termwinscroll() sometimes hangs in the GUI. Solution: Skip the test in the GUI. https://github.com/vim/vim/commit/f65927fc8d0102ef2d0fea776381caedf4c51e32 vim-patch:8.2.1180: build failure in small version Problem: Build failure in small version. Solution: Add #ifdef. https://github.com/vim/vim/commit/1e624c912dff19e889c9398b56fe537952c02fef vim-patch:8.2.1181: json code not fully tested Problem: Json code not fully tested. Solution: Add more test coverage. (Dominique Pellé, closes vim/vim#6433) https://github.com/vim/vim/commit/21e5bdd271fa4d0ff4511cf74b160315e1d17cff --- src/nvim/ops.c | 10 ++++++---- src/nvim/testdir/test_registers.vim | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) (limited to 'src/nvim') diff --git a/src/nvim/ops.c b/src/nvim/ops.c index e905029dae..595a699563 100644 --- a/src/nvim/ops.c +++ b/src/nvim/ops.c @@ -3080,10 +3080,12 @@ void do_put(int regname, yankreg_T *reg, int dir, long count, int flags) if (ve_flags == VE_ALL && (curwin->w_cursor.coladd > 0 || endcol2 == curwin->w_cursor.col)) { - if (dir == FORWARD && c == NUL) - ++col; - if (dir != FORWARD && c != NUL) - ++curwin->w_cursor.col; + if (dir == FORWARD && c == NUL) { + col++; + } + if (dir != FORWARD && c != NUL && curwin->w_cursor.coladd > 0) { + curwin->w_cursor.col++; + } if (c == TAB) { if (dir == BACKWARD && curwin->w_cursor.col) curwin->w_cursor.col--; diff --git a/src/nvim/testdir/test_registers.vim b/src/nvim/testdir/test_registers.vim index d4f58af10a..d20f8d1eef 100644 --- a/src/nvim/testdir/test_registers.vim +++ b/src/nvim/testdir/test_registers.vim @@ -167,4 +167,22 @@ func Test_set_register() enew! 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 -- cgit