Skip to content

Commit

Permalink
updated for version 7.4.210
Browse files Browse the repository at this point in the history
Problem:    Visual block mode plus virtual edit doesn't work well with tabs.
            (Liang Li)
Solution:   Take coladd into account. (Christian Brabandt)
  • Loading branch information
brammool committed Mar 19, 2014
1 parent 529d2d6 commit 4c9a949
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 2 deletions.
20 changes: 18 additions & 2 deletions src/ops.c
Original file line number Diff line number Diff line change
Expand Up @@ -2646,15 +2646,31 @@ op_insert(oap, count1)
if (oap->start.lnum == curbuf->b_op_start_orig.lnum && !bd.is_MAX)
{
if (oap->op_type == OP_INSERT
&& oap->start.col != curbuf->b_op_start_orig.col)
&& oap->start.col
#ifdef FEAT_VIRTUALEDIT
+ oap->start.coladd
#endif
!= curbuf->b_op_start_orig.col
#ifdef FEAT_VIRTUALEDIT
+ curbuf->b_op_start_orig.coladd
#endif
)
{
oap->start.col = curbuf->b_op_start_orig.col;
pre_textlen -= getviscol2(oap->start.col, oap->start.coladd)
- oap->start_vcol;
oap->start_vcol = getviscol2(oap->start.col, oap->start.coladd);
}
else if (oap->op_type == OP_APPEND
&& oap->end.col >= curbuf->b_op_start_orig.col)
&& oap->end.col
#ifdef FEAT_VIRTUALEDIT
+ oap->end.coladd
#endif
>= curbuf->b_op_start_orig.col
#ifdef FEAT_VIRTUALEDIT
+ curbuf->b_op_start_orig.coladd
#endif
)
{
oap->start.col = curbuf->b_op_start_orig.col;
/* reset pre_textlen to the value of OP_INSERT */
Expand Down
10 changes: 10 additions & 0 deletions src/testdir/test39.in
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ G$khhhhhkkcmno
/^C23$/
:exe ":norm! l\<C-V>j$hhAab\<Esc>"
:.,/^$/w >> test.out
:" Test for Visual block insert when virtualedit=all
:set ve=all
:/\t\tline
:exe ":norm! 07l\<C-V>jjIx\<Esc>"
:set ve=
:.,/^$/w >> test.out
:" gUe must uppercase a whole word, also when � changes to SS
Gothe youtu�euu endYpk0wgUe
:" gUfx must uppercase until x, inclusive.
Expand Down Expand Up @@ -62,6 +68,10 @@ G3o987652k02l2jr
:qa!
ENDTEST

line1
line2
line3

aaaaaa
bbbbbb
cccccc
Expand Down
Binary file modified src/testdir/test39.ok
Binary file not shown.
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
210,
/**/
209,
/**/
Expand Down

0 comments on commit 4c9a949

Please sign in to comment.