Mercurial > vim
changeset 31734:59c474f6715d v9.0.1199
patch 9.0.1199: crash when using kitty and using a mapping with <Esc>
Commit: https://github.com/vim/vim/commit/584b853ee034754edd278d15f2966ac3d8c9d72c
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jan 14 21:07:07 2023 +0000
patch 9.0.1199: crash when using kitty and using a mapping with <Esc>
Problem: Crash when using kitty and using a mapping with <Esc>.
Solution: Do not try setting did_simplify when it is NULL. (closes https://github.com/vim/vim/issues/11817)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 14 Jan 2023 22:15:03 +0100 |
parents | a759a9a70b09 |
children | 8aee9890d69c |
files | src/misc2.c src/term.c src/version.c src/vim.h |
diffstat | 4 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/misc2.c +++ b/src/misc2.c @@ -1498,6 +1498,7 @@ find_special_key( key = DEL; } else if (key == 27 + && (flags & FSK_FROM_PART) != 0 && (kitty_protocol_state == KKPS_ENABLED || kitty_protocol_state == KKPS_DISABLED)) { @@ -1506,7 +1507,10 @@ find_special_key( // character and set did_simplify, then in the // non-simplified keys use K_ESC. if ((flags & FSK_SIMPLIFY) != 0) - *did_simplify = TRUE; + { + if (did_simplify != NULL) + *did_simplify = TRUE; + } else key = K_ESC; }
--- a/src/term.c +++ b/src/term.c @@ -6636,8 +6636,10 @@ replace_termcodes( } } #endif - slen = trans_special(&src, result + dlen, FSK_KEYCODE - | ((flags & REPTERM_NO_SIMPLIFY) ? 0 : FSK_SIMPLIFY), + int fsk_flags = FSK_KEYCODE + | ((flags & REPTERM_NO_SIMPLIFY) ? 0 : FSK_SIMPLIFY) + | ((flags & REPTERM_FROM_PART) ? FSK_FROM_PART : 0); + slen = trans_special(&src, result + dlen, fsk_flags, TRUE, did_simplify); if (slen > 0) {
--- 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 */ /**/ + 1199, +/**/ 1198, /**/ 1197,
--- a/src/vim.h +++ b/src/vim.h @@ -2818,6 +2818,7 @@ long elapsed(DWORD start_tick); #define FSK_KEEP_X_KEY 0x02 // don't translate xHome to Home key #define FSK_IN_STRING 0x04 // TRUE in string, double quote is escaped #define FSK_SIMPLIFY 0x08 // simplify <C-H> and <A-x> +#define FSK_FROM_PART 0x10 // left-hand-side of mapping // Flags for the readdirex function, how to sort the result #define READDIR_SORT_NONE 0 // do not sort