changeset 6535:f9d02ce2f745 v7.4.594

updated for version 7.4.594 Problem: Using a block delete while 'breakindent' is set does not work properly. Solution: Use "line" instead of "prev_pend" as the first argument to lbr_chartabsize_adv(). (Hirohito Higashi)
author Bram Moolenaar <bram@vim.org>
date Tue, 27 Jan 2015 13:22:20 +0100
parents 47b3f1674787
children 9d13989414cf
files src/ops.c src/testdir/test_breakindent.in src/testdir/test_breakindent.ok src/version.c
diffstat 4 files changed, 30 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/ops.c
+++ b/src/ops.c
@@ -5308,10 +5308,7 @@ block_prep(oap, bdp, lnum, is_del)
 	    {
 		/* Count a tab for what it's worth (if list mode not on) */
 		prev_pend = pend;
-		/* TODO: is passing prev_pend for start of the line OK?
-		 * perhaps it should be "line". */
-		incr = lbr_chartabsize_adv(prev_pend, &pend,
-						      (colnr_T)bdp->end_vcol);
+		incr = lbr_chartabsize_adv(line, &pend, (colnr_T)bdp->end_vcol);
 		bdp->end_vcol += incr;
 	    }
 	    if (bdp->end_vcol <= oap->end_vcol
--- a/src/testdir/test_breakindent.in
+++ b/src/testdir/test_breakindent.in
@@ -99,6 +99,23 @@ fygjyl:let line2 = @0
 :$put =line1
 :$put =line2
 :"
+:let g:test="Test 14: breakindent + visual blockwise delete #1"
+:set all& breakindent
+:30vnew
+:normal! 3a1234567890
+:normal! a    abcde
+:exec "normal! 0\<C-V>tex"
+:let line1=ScreenChar(line('.'),8)
+:call DoRecordScreen()
+:"
+:let g:test="Test 15: breakindent + visual blockwise delete #2"
+:%d
+:normal! 4a1234567890
+:exec "normal! >>\<C-V>3f0x"
+:let line1=ScreenChar(line('.'),20)
+:call DoRecordScreen()
+:quit!
+:"
 :%w! test.out
 :qa!
 ENDTEST
--- a/src/testdir/test_breakindent.ok
+++ b/src/testdir/test_breakindent.ok
@@ -62,3 +62,13 @@ 56
 Test 13: breakindent with wrapping Tab
 d
 w
+
+Test 14: breakindent + visual blockwise delete #1
+e       
+~       
+~       
+
+Test 15: breakindent + visual blockwise delete #2
+        1234567890  
+~                   
+~                   
--- 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 */
 /**/
+    594,
+/**/
     593,
 /**/
     592,