patch 9.2.0324: 0x9b byte not unescaped in <Cmd> mapping

Problem:  0x9b byte not unescaped in <Cmd> mapping (BenYip).
Solution: Translate K_CSI to CSI like what is done in vgetc().
          (zeertzjq).

fixes:  #19936
closes: #19937

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq
2026-04-09 18:55:02 +00:00
committed by Christian Brabandt
parent 9d9381fb28
commit 3e2012914e
3 changed files with 17 additions and 1 deletions
+7
View File
@@ -4283,6 +4283,13 @@ getcmdkeycmd(
// to a single Esc here.
if (c1 == K_ESC)
c1 = ESC;
#ifdef FEAT_GUI
// Translate K_CSI to CSI. The special key is only used to
// avoid it being recognized as the start of a special key.
if (c1 == K_CSI)
c1 = CSI;
#endif
}
if (got_int)
+8 -1
View File
@@ -1124,7 +1124,11 @@ func Test_map_cmdkey()
call setline(1, ['some short lines', 'of test text'])
call feedkeys(":bar\<F2>x\<C-B>\"\r", 'xt')
call assert_equal('"barx', @:)
unmap! <F2>
" test for chars with 0x80 or 0x9b bytes
map <F2> <Cmd>let x = '洛固四最倒倀'<CR>
call feedkeys("\<F2>", 'xt')
call assert_equal('洛固四最倒倀', x)
" test for calling a <SID> function
let lines =<< trim END
@@ -1137,7 +1141,10 @@ func Test_map_cmdkey()
source Xscript
call feedkeys("\<F2>", 'xt')
call assert_equal(32, g:x)
unlet g:x
unmap <F2>
unmap! <F2>
unmap <F3>
unmap! <F3>
%bw!
+2
View File
@@ -734,6 +734,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
324,
/**/
323,
/**/