diff options
author | Bram Moolenaar <Bram@vim.org> | 2015-01-27 13:22:20 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2015-01-27 13:22:20 +0100 |
commit | 1dc92334eb5e235af338f3b27277157839fa8dcc (patch) | |
tree | a98267d3283a18983296273dc5ecc278978f04a5 | |
parent | e0ad365498399c1bd34dd6361b3f7dc38e84e4ca (diff) | |
download | vim-git-1dc92334eb5e235af338f3b27277157839fa8dcc.tar.gz |
updated for version 7.4.594v7.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)
-rw-r--r-- | src/ops.c | 5 | ||||
-rw-r--r-- | src/testdir/test_breakindent.in | 17 | ||||
-rw-r--r-- | src/testdir/test_breakindent.ok | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 30 insertions, 4 deletions
@@ -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 diff --git a/src/testdir/test_breakindent.in b/src/testdir/test_breakindent.in index a255457b2..f9d903e51 100644 --- 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 diff --git a/src/testdir/test_breakindent.ok b/src/testdir/test_breakindent.ok index e50265ecd..3eb9c24fd 100644 --- a/src/testdir/test_breakindent.ok +++ b/src/testdir/test_breakindent.ok @@ -62,3 +62,13 @@ strdisplaywidth: 46 == calculated: 64 Test 13: breakindent with wrapping Tab d w + +Test 14: breakindent + visual blockwise delete #1 +e +~ +~ + +Test 15: breakindent + visual blockwise delete #2 + 1234567890 +~ +~ diff --git a/src/version.c b/src/version.c index 6a40cfa32..9ae697e4a 100644 --- 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, |