diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-08-30 19:38:24 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2023-08-30 19:38:24 +0200 |
commit | 1bed993c01c4b5e4c6ab55e80e2410ba87de487c (patch) | |
tree | f32fa1a7dfca5afe48539732be137ede686576d8 /src/message.c | |
parent | 6e55e85f92aff43c1b3cb564201440f3552d63f0 (diff) |
patch 9.0.1826: keytrans() doesn't translate recorded key typed in a GUIv9.0.1826
Problem: keytrans() doesn't translate recorded key typed in a GUI
Solution: Handle CSI like K_SPECIAL, like in mb_unescape()
closes: #12964
closes: #12966
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Diffstat (limited to 'src/message.c')
-rw-r--r-- | src/message.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/message.c b/src/message.c index a258e788b5..98a362411e 100644 --- a/src/message.c +++ b/src/message.c @@ -1842,7 +1842,11 @@ str2special( } c = *str; - if (c == K_SPECIAL && str[1] != NUL && str[2] != NUL) + if ((c == K_SPECIAL +#ifdef FEAT_GUI + || c == CSI +#endif + ) && str[1] != NUL && str[2] != NUL) { if (str[1] == KS_MODIFIER) { @@ -1850,7 +1854,11 @@ str2special( str += 3; c = *str; } - if (c == K_SPECIAL && str[1] != NUL && str[2] != NUL) + if ((c == K_SPECIAL +#ifdef FEAT_GUI + || c == CSI +#endif + ) && str[1] != NUL && str[2] != NUL) { c = TO_SPECIAL(str[1], str[2]); str += 2; |