From fc3f23bedfc848cd77f97c62bf4f39a01d46994e Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 17 Dec 2014 18:35:42 +0100 Subject: updated for version 7.4.559 Problem: Appending a block in the middle of a tab does not work correctly when virtualedit is set. Solution: Decrement spaces and count, don't reset them. (James McCoy) --- src/ops.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/ops.c') diff --git a/src/ops.c b/src/ops.c index edc84a07a..0db8c2d25 100644 --- a/src/ops.c +++ b/src/ops.c @@ -612,20 +612,20 @@ block_insert(oap, s, b_insert, bdp) #ifdef FEAT_MBYTE if (has_mbyte && spaces > 0) { + int off; + /* Avoid starting halfway a multi-byte character. */ if (b_insert) { - int off = (*mb_head_off)(oldp, oldp + offset + spaces); - spaces -= off; - count -= off; + off = (*mb_head_off)(oldp, oldp + offset + spaces); } else { - int off = (*mb_off_next)(oldp, oldp + offset); + off = (*mb_off_next)(oldp, oldp + offset); offset += off; - spaces = 0; - count = 0; } + spaces -= off; + count -= off; } #endif -- cgit v1.2.3