diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-10-04 20:14:28 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-10-04 20:14:28 +0100 |
commit | 2cd0f27b75c4497bec872819a965b3d6b4d55030 (patch) | |
tree | 4949cd7728a75470f146acd7778160b86da6059f | |
parent | caf05f504e062642c35a919b04f1b5638f994602 (diff) | |
download | vim-git-2cd0f27b75c4497bec872819a965b3d6b4d55030.tar.gz |
patch 9.0.0660: mapping with CTRL keys does not work in the GUIv9.0.0660
Problem: Mapping with CTRL keys does not work in the GUI.
Solution: Recognize CSI next to K_SPECIAL. (closes #11275, closes #11270)
-rw-r--r-- | src/map.c | 6 | ||||
-rw-r--r-- | src/testdir/test_gui.vim | 19 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 26 insertions, 1 deletions
@@ -1753,7 +1753,11 @@ vim_strsave_escape_csi(char_u *p) d = res; for (s = p; *s != NUL; ) { - if (s[0] == K_SPECIAL && s[1] != NUL && s[2] != NUL) + if ((s[0] == K_SPECIAL +#ifdef FEAT_GUI + || (gui.in_use && s[0] == CSI) +#endif + ) && s[1] != NUL && s[2] != NUL) { // Copy special key unmodified. *d++ = *s++; diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim index 447eee865..8ac0985c3 100644 --- a/src/testdir/test_gui.vim +++ b/src/testdir/test_gui.vim @@ -1732,4 +1732,23 @@ func Test_gui_lowlevel_keyevent() bw! endfunc +func Test_gui_macro_csi() + " Test for issue #11270 + nnoremap <C-L> <Cmd>let g:triggered = 1<CR> + let @q = "\x9b\xfc\x04L" + norm @q + call assert_equal(1, g:triggered) + unlet g:triggered + nunmap <C-L> + + " Test for issue #11057 + inoremap <C-D>t bbb + call setline(1, "\t") + let @q = "i\x9b\xfc\x04D" + " The end of :normal is like a mapping timing out + norm @q + call assert_equal('', getline(1)) + iunmap <C-D>t +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index ce0dce07a..3adb51332 100644 --- a/src/version.c +++ b/src/version.c @@ -700,6 +700,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 660, +/**/ 659, /**/ 658, |