From 20b4f463f4ab50fa9bcc9838aa94101fa5698125 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 5 Mar 2016 17:25:39 +0100 Subject: [PATCH] patch 7.4.1491 Problem: Visual-block shift breaks multi-byte characters. Solution: Compute column differently. (Yasuhiro Matsumoto) Add a test. --- src/ops.c | 10 +++++++++- src/testdir/Make_all.mak | 1 + src/version.c | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) 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, /**/ -- 2.50.1