diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-11-24 14:05:19 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-11-24 14:05:19 +0000 |
commit | ebed1b0bea98390b400c913cfd9211a89b7275d8 (patch) | |
tree | cdc5f0dacae27e0c4fb7446ca0fd2d68a21d91d3 /src | |
parent | 47f1fdc28c6839ec8f5aede631d3a870624767b6 (diff) |
patch 9.0.0940: crash when typing a letter in a terminal windowv9.0.0940
Problem: Crash when typing a letter in a terminal window. (Shane-XB-Qian)
Solution: Use the "vterm" variable instead of getting the terminal pointer
from the current buffer. (closes #11608)
Diffstat (limited to 'src')
-rw-r--r-- | src/terminal.c | 2 | ||||
-rw-r--r-- | src/testdir/test_termcodes.vim | 5 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/src/terminal.c b/src/terminal.c index d0cdd4500c..bc363175f9 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -1590,7 +1590,7 @@ term_convert_key(term_T *term, int c, int modmask, char *buf) // Ctrl-Shift-i may have the key "I" instead of "i", but for the kitty // keyboard protocol should use "i". Applies to all ascii letters. if (ASCII_ISUPPER(c) - && vterm_is_kitty_keyboard(curbuf->b_term->tl_vterm) + && vterm_is_kitty_keyboard(vterm) && mod == (VTERM_MOD_CTRL | VTERM_MOD_SHIFT)) c = TOLOWER_ASC(c); diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim index 8cab98b778..97b06c6065 100644 --- a/src/testdir/test_termcodes.vim +++ b/src/testdir/test_termcodes.vim @@ -2156,6 +2156,9 @@ func Test_modifyOtherKeys_no_mapping() endfunc func Test_CSIu_keys_without_modifiers() + " make this execute faster + set timeoutlen=10 + " Escape sent as `CSI 27 u` should act as normal escape and not undo call setline(1, 'a') call feedkeys('a' .. GetEscCodeCSIuWithoutModifier("\e"), 'Lx!') @@ -2166,6 +2169,8 @@ func Test_CSIu_keys_without_modifiers() call setline(1, '') call feedkeys('a' .. GetEscCodeCSIuWithoutModifier("\t") .. "\<Esc>", 'Lx!') call assert_equal("\t", getline(1)) + + set timeoutlen& endfunc " Check that when DEC mouse codes are recognized a special key is handled. diff --git a/src/version.c b/src/version.c index 86f857e4ff..da0b1e5a5b 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 940, +/**/ 939, /**/ 938, |