diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-06-05 19:01:37 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-06-05 19:01:37 +0100 |
commit | e3a529bc877909a9eccf792461050b4f6737ed33 (patch) | |
tree | ad3718402e376ba7ff5a21e7761e8719cbab0dc1 | |
parent | 6574577cacd393ab7591fc776ea060eebc939e55 (diff) | |
download | vim-git-e3a529bc877909a9eccf792461050b4f6737ed33.tar.gz |
patch 8.2.5058: input() does not handle composing characters properlyv8.2.5058
Problem: input() does not handle composing characters properly.
Solution: Use mb_cptr2char_adv() instead of mb_ptr2char_adv().
(closes #10527)
-rw-r--r-- | src/getchar.c | 2 | ||||
-rw-r--r-- | src/testdir/test_functions.vim | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/src/getchar.c b/src/getchar.c index 55fad1cb2..03d90ac87 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -669,7 +669,7 @@ stuffReadbuffSpec(char_u *s) } else { - c = mb_ptr2char_adv(&s); + c = mb_cptr2char_adv(&s); if (c == CAR || c == NL || c == ESC) c = ' '; stuffcharReadbuff(c); diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim index af07a6424..f55e846fa 100644 --- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -1545,6 +1545,10 @@ func Test_input_func() call feedkeys(":let c = input('name? ', \"x\\<BS>y\")\<CR>\<CR>", 'xt') call assert_equal('y', c) + " Test for using text with composing characters as default input + call feedkeys(":let c = input('name? ', \"ã̳\")\<CR>\<CR>", 'xt') + call assert_equal('ã̳', c) + " Test for using <CR> as default input call feedkeys(":let c = input('name? ', \"\\<CR>\")\<CR>x\<CR>", 'xt') call assert_equal(' x', c) diff --git a/src/version.c b/src/version.c index 254b5f1f8..744fad661 100644 --- a/src/version.c +++ b/src/version.c @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 5058, +/**/ 5057, /**/ 5056, |