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