changeset 8399:7d1c42e3ce11 v7.4.1491

commit https://github.com/vim/vim/commit/20b4f463f4ab50fa9bcc9838aa94101fa5698125 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 5 17:25:39 2016 +0100 patch 7.4.1491 Problem: Visual-block shift breaks multi-byte characters. Solution: Compute column differently. (Yasuhiro Matsumoto) Add a test.
author Christian Brabandt <cb@256bit.org>
date Sat, 05 Mar 2016 17:30:05 +0100
parents 3d307af63e17
children 84e801c196c2
files src/ops.c src/testdir/Make_all.mak src/version.c
diffstat 3 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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
 
 
--- 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,