aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ops.c7
-rw-r--r--src/testdir/test39.in10
-rw-r--r--src/testdir/test39.okbin432 -> 481 bytes
-rw-r--r--src/version.c2
4 files changed, 16 insertions, 3 deletions
diff --git a/src/ops.c b/src/ops.c
index 44c8c6f134..7688f1bb32 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -2132,13 +2132,16 @@ void op_insert(oparg_T *oap, long count1)
* to adjust the block for that. */
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 + oap->start.coladd
+ != curbuf->b_op_start_orig.col + curbuf->b_op_start_orig.coladd) {
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 + oap->end.coladd
+ >= curbuf->b_op_start_orig.col
+ + curbuf->b_op_start_orig.coladd) {
oap->start.col = curbuf->b_op_start_orig.col;
/* reset pre_textlen to the value of OP_INSERT */
pre_textlen += bd.textlen;
diff --git a/src/testdir/test39.in b/src/testdir/test39.in
index 8f45f47dc3..c1e1cc49a6 100644
--- a/src/testdir/test39.in
+++ b/src/testdir/test39.in
@@ -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.
@@ -62,6 +68,10 @@ G3o987652k02l2jr
:qa!
ENDTEST
+ line1
+ line2
+ line3
+
aaaaaa
bbbbbb
cccccc
diff --git a/src/testdir/test39.ok b/src/testdir/test39.ok
index b459355c6a..ef7a2c6442 100644
--- a/src/testdir/test39.ok
+++ b/src/testdir/test39.ok
Binary files differ
diff --git a/src/version.c b/src/version.c
index 6502a98e02..e5cdd76ebd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -251,7 +251,7 @@ static int included_patches[] = {
//213,
//212,
//211,
- //210,
+ 210,
209,
//208,
207,