0
0
mirror of https://github.com/vim/vim.git synced 2025-07-25 10:54:51 -04:00

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 #11817)
This commit is contained in:
Bram Moolenaar 2023-01-14 21:07:07 +00:00
parent 24a8d06d7f
commit 584b853ee0
4 changed files with 12 additions and 3 deletions

View File

@ -1498,6 +1498,7 @@ find_special_key(
key = DEL; key = DEL;
} }
else if (key == 27 else if (key == 27
&& (flags & FSK_FROM_PART) != 0
&& (kitty_protocol_state == KKPS_ENABLED && (kitty_protocol_state == KKPS_ENABLED
|| kitty_protocol_state == KKPS_DISABLED)) || kitty_protocol_state == KKPS_DISABLED))
{ {
@ -1506,7 +1507,10 @@ find_special_key(
// character and set did_simplify, then in the // character and set did_simplify, then in the
// non-simplified keys use K_ESC. // non-simplified keys use K_ESC.
if ((flags & FSK_SIMPLIFY) != 0) if ((flags & FSK_SIMPLIFY) != 0)
*did_simplify = TRUE; {
if (did_simplify != NULL)
*did_simplify = TRUE;
}
else else
key = K_ESC; key = K_ESC;
} }

View File

@ -6636,8 +6636,10 @@ replace_termcodes(
} }
} }
#endif #endif
slen = trans_special(&src, result + dlen, FSK_KEYCODE int fsk_flags = FSK_KEYCODE
| ((flags & REPTERM_NO_SIMPLIFY) ? 0 : FSK_SIMPLIFY), | ((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); TRUE, did_simplify);
if (slen > 0) if (slen > 0)
{ {

View File

@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1199,
/**/ /**/
1198, 1198,
/**/ /**/

View File

@ -2818,6 +2818,7 @@ long elapsed(DWORD start_tick);
#define FSK_KEEP_X_KEY 0x02 // don't translate xHome to Home key #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_IN_STRING 0x04 // TRUE in string, double quote is escaped
#define FSK_SIMPLIFY 0x08 // simplify <C-H> and <A-x> #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 // Flags for the readdirex function, how to sort the result
#define READDIR_SORT_NONE 0 // do not sort #define READDIR_SORT_NONE 0 // do not sort