summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-10-19 20:07:09 +0100
committerBram Moolenaar <Bram@vim.org>2022-10-19 20:07:09 +0100
commit7609c88eedc113bc80ccf74050b03a2e0c1a3c5e (patch)
tree8a3cbb4cb420f24d07ced0016eb81526b08724d1
parentd505c8220ddb62a3489f1880a2ff37a3ddd9954b (diff)
patch 9.0.0801: the modifyOtherKeys flag is set when it should notv9.0.0801
Problem: The modifyOtherKeys flag is set when it should not. Solution: Do not handle special key codes with a modifer value above 16 as a modifyOtherKeys value. (issue #11403)
-rw-r--r--src/term.c7
-rw-r--r--src/version.c2
2 files changed, 7 insertions, 2 deletions
diff --git a/src/term.c b/src/term.c
index 088f6c79e3..5b8c020a3b 100644
--- a/src/term.c
+++ b/src/term.c
@@ -5045,8 +5045,11 @@ handle_csi(
// Key with modifier:
// {lead}27;{modifier};{key}~
// {lead}{key};{modifier}u
- else if ((arg[0] == 27 && argc == 3 && trail == '~')
- || (argc == 2 && trail == 'u'))
+ // Only handles four modifiers, this won't work if the modifier value is
+ // more than 16.
+ else if (((arg[0] == 27 && argc == 3 && trail == '~')
+ || (argc == 2 && trail == 'u'))
+ && arg[1] <= 16)
{
return len + handle_key_with_modifier(arg, trail,
csi_len, offset, buf, bufsize, buflen);
diff --git a/src/version.c b/src/version.c
index 3ce579f024..983fa0c995 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 */
/**/
+ 801,
+/**/
800,
/**/
799,