summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-06-05 19:01:37 +0100
committerBram Moolenaar <Bram@vim.org>2022-06-05 19:01:37 +0100
commite3a529bc877909a9eccf792461050b4f6737ed33 (patch)
treead3718402e376ba7ff5a21e7761e8719cbab0dc1
parent6574577cacd393ab7591fc776ea060eebc939e55 (diff)
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.c2
-rw-r--r--src/testdir/test_functions.vim4
-rw-r--r--src/version.c2
3 files changed, 7 insertions, 1 deletions
diff --git a/src/getchar.c b/src/getchar.c
index 55fad1cb29..03d90ac87e 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 af07a64243..f55e846fa5 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 254b5f1f8d..744fad6612 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,