summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-10-31 03:21:25 +0100
committerBram Moolenaar <Bram@vim.org>2019-10-31 03:21:25 +0100
commit77ccc00340ed2598f7aa09716217e878665964fa (patch)
tree2ae95620141cc298796c1cb6418e485d5d195d42
parent3f39697b73f661d6900c7cf5430d967a129660d7 (diff)
patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte charv8.1.2235
Problem: "C" with 'virtualedit' set does not include multi-byte char. Solution: Include the whole multi-byte char. (Nobuhiro Takasaki, closes #5152)
-rw-r--r--src/ops.c2
-rw-r--r--src/testdir/test_virtualedit.vim9
-rw-r--r--src/version.c2
3 files changed, 13 insertions, 0 deletions
diff --git a/src/ops.c b/src/ops.c
index 6a9fbba816..42b0dcbf9d 100644
--- 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 */
diff --git a/src/testdir/test_virtualedit.vim b/src/testdir/test_virtualedit.vim
index 67adede8d7..1e6b26a057 100644
--- 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
diff --git a/src/version.c b/src/version.c
index 324f40d707..e8e2806a17 100644
--- 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,