From: Bram Moolenaar Date: Sat, 5 Mar 2016 16:25:39 +0000 (+0100) Subject: patch 7.4.1491 X-Git-Tag: v7.4.1491 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=20b4f463f4ab50fa9bcc9838aa94101fa5698125;p=vim patch 7.4.1491 Problem: Visual-block shift breaks multi-byte characters. Solution: Compute column differently. (Yasuhiro Matsumoto) Add a test. --- diff --git a/src/ops.c b/src/ops.c index 4ad982f7f..fa159e983 100644 --- a/src/ops.c +++ b/src/ops.c @@ -410,7 +410,15 @@ shift_block(oparg_T *oap, int amount) { #ifdef FEAT_MBYTE if (has_mbyte) - bd.textstart += (*mb_ptr2len)(bd.textstart); + { + if ((*mb_ptr2len)(bd.textstart) == 1) + ++bd.textstart; + else + { + ws_vcol = 0; + bd.startspaces = 0; + } + } else #endif ++bd.textstart; diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak index 854f95bcc..854220f0e 100644 --- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -184,6 +184,7 @@ NEW_TESTS = test_arglist.res \ test_syntax.res \ test_viminfo.res \ test_viml.res \ + test_visual.res \ test_alot.res diff --git a/src/version.c b/src/version.c index af39e7e95..bc1b81203 100644 --- a/src/version.c +++ b/src/version.c @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1491, /**/ 1490, /**/