changeset 18481:26256dcadd77 v8.1.2235

patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char Commit: https://github.com/vim/vim/commit/77ccc00340ed2598f7aa09716217e878665964fa Author: Bram Moolenaar <Bram@vim.org> Date: Thu Oct 31 03:21:25 2019 +0100 patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char Problem: "C" with 'virtualedit' set does not include multi-byte char. Solution: Include the whole multi-byte char. (Nobuhiro Takasaki, closes #5152)
author Bram Moolenaar <Bram@vim.org>
date Thu, 31 Oct 2019 03:30:03 +0100
parents 974699057771
children f8975b6004e6
files src/ops.c src/testdir/test_virtualedit.vim src/version.c
diffstat 3 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ops.c
+++ b/src/ops.c
@@ -912,6 +912,8 @@ op_delete(oparg_T *oap)
 		oap->end = curwin->w_cursor;
 		curwin->w_cursor = oap->start;
 	    }
+	    if (has_mbyte)
+		mb_adjust_opend(oap);
 	}
 
 	if (oap->line_count == 1)	/* delete characters within one line */
--- a/src/testdir/test_virtualedit.vim
+++ b/src/testdir/test_virtualedit.vim
@@ -73,3 +73,12 @@ func Test_edit_CTRL_G()
   bwipe!
   set virtualedit=
 endfunc
+
+func Test_edit_change()
+  new
+  set virtualedit=all
+  call setline(1, "\t⒌")
+  normal Cx
+  call assert_equal('x', getline(1))
+  bwipe!
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2235,
+/**/
     2234,
 /**/
     2233,