# HG changeset patch # User Bram Moolenaar # Date 1654452902 -7200 # Node ID c7bd1040a1c403acb34f8aefec40fdd57659c4ed # Parent 44b520fb2185a84ae8091ad54aa33a3426128652 patch 8.2.5058: input() does not handle composing characters properly Commit: https://github.com/vim/vim/commit/e3a529bc877909a9eccf792461050b4f6737ed33 Author: zeertzjq Date: Sun Jun 5 19:01:37 2022 +0100 patch 8.2.5058: input() does not handle composing characters properly Problem: input() does not handle composing characters properly. Solution: Use mb_cptr2char_adv() instead of mb_ptr2char_adv(). (closes #10527) diff --git a/src/getchar.c b/src/getchar.c --- 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 --- 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\\y\")\\", 'xt') call assert_equal('y', c) + " Test for using text with composing characters as default input + call feedkeys(":let c = input('name? ', \"ã̳\")\\", 'xt') + call assert_equal('ã̳', c) + " Test for using as default input call feedkeys(":let c = input('name? ', \"\\\")\x\", 'xt') call assert_equal(' x', c) diff --git a/src/version.c b/src/version.c --- 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,