changeset 7568:5274513d3f54 v7.4.1084

commit https://github.com/vim/vim/commit/e1edc1caba05c553fa60b1cf45a7670b1cfd63fe Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jan 10 20:08:03 2016 +0100 patch 7.4.1084 Problem: Using "." to repeat CTRL-A in Visual mode increments the wrong numbers. Solution: Append right size to the redo buffer. (Ozaki Kiichi)
author Christian Brabandt <cb@256bit.org>
date Sun, 10 Jan 2016 20:15:04 +0100
parents 45c2189b7d48
children 085329a2d3d5
files src/normal.c src/testdir/test_increment.vim src/version.c
diffstat 3 files changed, 25 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/normal.c
+++ b/src/normal.c
@@ -3632,7 +3632,7 @@ prep_redo_visual(cap)
 	else if (curbuf->b_visual.vi_end.col > curbuf->b_visual.vi_start.col)
 	{
 	    AppendNumberToRedobuff(curbuf->b_visual.vi_end.col
-					 - curbuf->b_visual.vi_start.col - 1);
+					     - curbuf->b_visual.vi_start.col);
 	    AppendCharToRedobuff(' ');
 	}
     }
--- a/src/testdir/test_increment.vim
+++ b/src/testdir/test_increment.vim
@@ -556,6 +556,7 @@ func Test_visual_increment_26()
   exec "norm! \<C-V>$\<C-A>"
   call assert_equal(["0b11111111111111111111111111111111"], getline(1, '$'))
   call assert_equal([0, 1, 1, 0], getpos('.'))
+  set nrformats-=alpha
 endfunc
 
 " 27) increment with 'rightreft', if supported
@@ -575,4 +576,25 @@ func Test_visual_increment_27()
   endif
 endfunc
 
+" 28) block-wise increment and dot-repeat
+" Text:
+"   1 23
+"   4 56
+" 
+" Expected:
+"   1) f2 Ctrl-V jl <ctrl-a>, repeat twice afterwards with .
+"   1 26
+"   4 59
+"
+" Try with and without indent.
+func Test_visual_increment_28()
+  call setline(1, ["  1 23", "  4 56"])
+  exec "norm! ggf2\<C-V>jl\<C-A>.."
+  call assert_equal(["  1 26", "  4 59"], getline(1, 2))
+
+  call setline(1, ["1 23", "4 56"])
+  exec "norm! ggf2\<C-V>jl\<C-A>.."
+  call assert_equal(["1 26", "4 59"], getline(1, 2))
+endfunc
+
 " vim: tabstop=2 shiftwidth=2 expandtab
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1084,
+/**/
     1083,
 /**/
     1082,