changeset 30934:a07193ed51cd v9.0.0801

patch 9.0.0801: the modifyOtherKeys flag is set when it should not Commit: https://github.com/vim/vim/commit/7609c88eedc113bc80ccf74050b03a2e0c1a3c5e Author: Bram Moolenaar <Bram@vim.org> Date: Wed Oct 19 20:07:09 2022 +0100 patch 9.0.0801: the modifyOtherKeys flag is set when it should not 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)
author Bram Moolenaar <Bram@vim.org>
date Wed, 19 Oct 2022 21:15:03 +0200
parents 208ea15f4c23
children 464a04119e94
files src/term.c src/version.c
diffstat 2 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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);
--- 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,