]> granicus.if.org Git - vim/commitdiff
patch 9.0.0801: the modifyOtherKeys flag is set when it should not v9.0.0801
authorBram Moolenaar <Bram@vim.org>
Wed, 19 Oct 2022 19:07:09 +0000 (20:07 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 19 Oct 2022 19:07:09 +0000 (20:07 +0100)
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)

src/term.c
src/version.c

index 088f6c79e3e722677dd5a47def080255c257cfb1..5b8c020a3bbe291ef313d856690fe461ff4dfd1a 100644 (file)
@@ -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);
index 3ce579f0246c795fd713018c94997b3b7edbc2ea..983fa0c9953badef2b4a2cbd3b7c029c927e3132 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    801,
 /**/
     800,
 /**/