diff options
author | Bram Moolenaar <Bram@vim.org> | 2023-01-14 21:07:07 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-01-14 21:07:07 +0000 |
commit | 584b853ee034754edd278d15f2966ac3d8c9d72c (patch) | |
tree | f6c2a22bb4da5fef70ec9f815b95d1582fbf3967 /src | |
parent | 24a8d06d7f4db0865f374ced2f4d4b57cbc5b9e4 (diff) |
patch 9.0.1199: crash when using kitty and using a mapping with <Esc>v9.0.1199
Problem: Crash when using kitty and using a mapping with <Esc>.
Solution: Do not try setting did_simplify when it is NULL. (closes #11817)
Diffstat (limited to 'src')
-rw-r--r-- | src/misc2.c | 6 | ||||
-rw-r--r-- | src/term.c | 6 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim.h | 1 |
4 files changed, 12 insertions, 3 deletions
diff --git a/src/misc2.c b/src/misc2.c index 87b1a15edd..e3602ee4b8 100644 --- 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; } diff --git a/src/term.c b/src/term.c index 0b902c94eb..ff31b1e5d3 100644 --- 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) { diff --git a/src/version.c b/src/version.c index 763c79d91c..2b472d3f99 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 */ /**/ + 1199, +/**/ 1198, /**/ 1197, @@ -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 |