vim-patch:9.2.0645: Composing chars no longer accepted in end-id abbr

Problem:  Composing chars are no longer accepted in end-id abbreviation
          (after 9.2.0629).
Solution: Unescape all chars using vim_unescape_csi() instead of using
          mb_unescape() on individual chars, so that mb_ptr2len() and
          MB_PTR_ADV() can still be used.

closes: vim/vim#20514

23a84d28a8
This commit is contained in:
zeertzjq
2026-06-15 08:06:50 +08:00
parent 0c63e41b5d
commit 2fe91d0225
3 changed files with 27 additions and 15 deletions

View File

@@ -30,6 +30,18 @@ func Test_abbreviation()
iunab abc
iunab
" abbreviation with composing chars (end-id)
inoreab .. a^~
inoreab ..β̃ β^~
inoreab ..π̃ π^~
inoreab ..Λ̃ Λ^~
call feedkeys("Go..ã ..β̃ ..π̃ ..Λ̃ \<Esc>", "xt")
call assert_equal('a^~ β^~ π^~ Λ^~ ', getline('$'))
iunab ..
iunab ..β̃
iunab ..π̃
iunab ..Λ̃
bwipe!
endfunc