Hi Bram and Vim developers,

How to reproduce:
---- Pattern#1 ----
  :set breakindent
  :30vnew
  :normal! 3a1234567890
  :normal! a    abcde
  :exec "normal! 0\<C-V>te"
  x

Expected behavior:
- displayed "e"

Actual behavior:
- displayed "abcde"

---- Pattern#2 ----
  :set breakindent
  :30vnew
  :normal! 4a1234567890
  :exec "normal! >>\<C-V>3f0"
  x

Expected behavior:
- displayed "1234567890"

Actual behavior:
- displayed "90"


Investigation result:
The first argument of lbr_chartabsize_ad() should always be the beginning of 
the line address.
If you do not, Trouble comes into judgment of 'breakindent'.
Yes, it is written in the comments, I think you had maybe noticed :-)

I wrote a patch. Please check this.

Best regards,
Hirohito Higashi (a.k.a h_east)

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.
diff -r 435956324539 src/ops.c
--- a/src/ops.c	Sun Jan 25 13:02:57 2015 +0100
+++ b/src/ops.c	Mon Jan 26 16:27:36 2015 +0900
@@ -5308,10 +5308,7 @@
 	    {
 		/* 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

Raspunde prin e-mail lui