diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-10-19 20:07:09 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-10-19 20:07:09 +0100 |
commit | 7609c88eedc113bc80ccf74050b03a2e0c1a3c5e (patch) | |
tree | 8a3cbb4cb420f24d07ced0016eb81526b08724d1 /src | |
parent | d505c8220ddb62a3489f1880a2ff37a3ddd9954b (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)
Diffstat (limited to 'src')
-rw-r--r-- | src/term.c | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |