diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-10-31 03:21:25 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-10-31 03:21:25 +0100 |
commit | 77ccc00340ed2598f7aa09716217e878665964fa (patch) | |
tree | 2ae95620141cc298796c1cb6418e485d5d195d42 | |
parent | 3f39697b73f661d6900c7cf5430d967a129660d7 (diff) | |
download | vim-git-77ccc00340ed2598f7aa09716217e878665964fa.tar.gz |
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.c | 2 | ||||
-rw-r--r-- | src/testdir/test_virtualedit.vim | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 13 insertions, 0 deletions
@@ -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 67adede8d..1e6b26a05 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 324f40d70..e8e2806a1 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, |