diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-03-05 17:25:39 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-03-05 17:25:39 +0100 |
commit | 20b4f463f4ab50fa9bcc9838aa94101fa5698125 (patch) | |
tree | 8c91ae16ab1ac2c467fe87d8993b056e99e1393a | |
parent | 2369c15407cf9a730a396ebf9709abb280c5ce48 (diff) | |
download | vim-git-20b4f463f4ab50fa9bcc9838aa94101fa5698125.tar.gz |
patch 7.4.1491v7.4.1491
Problem: Visual-block shift breaks multi-byte characters.
Solution: Compute column differently. (Yasuhiro Matsumoto) Add a test.
-rw-r--r-- | src/ops.c | 10 | ||||
-rw-r--r-- | src/testdir/Make_all.mak | 1 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 12 insertions, 1 deletions
@@ -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 @@ -744,6 +744,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1491, +/**/ 1490, /**/ 1489, |