patch 8.1.2142: some key mappings do not work with modifyOtherKeys
Problem: Some key mappings do not work with modifyOtherKeys.
Solution: Remove the Shift modifier if it is already included in the key.
diff --git a/src/term.c b/src/term.c
index 27def15..e30506b 100644
--- a/src/term.c
+++ b/src/term.c
@@ -4847,8 +4847,17 @@
else
key = arg[2];
- // insert modifiers with KS_MODIFIER
modifiers = decode_modifiers(arg[1]);
+
+ // Some keys already have Shift included, pass them as
+ // normal keys.
+ if (modifiers == MOD_MASK_SHIFT
+ && ((key >= '@' && key <= 'Z')
+ || key == '^' || key == '_'
+ || (key >= '{' && key <= '~')))
+ modifiers = 0;
+
+ // insert modifiers with KS_MODIFIER
new_slen = modifiers2keycode(modifiers, &key, string);
slen = csi_len;