patch 9.0.1276: some mappings with Meta and Shift do not work
Problem: Some mappings with Meta and Shift do not work.
Solution: Apply the Shift modifier to the key. (issue #11913)
diff --git a/src/term.c b/src/term.c
index e19f9b2..d7cece3 100644
--- a/src/term.c
+++ b/src/term.c
@@ -5343,6 +5343,12 @@
int key = trail == 'u' ? arg[0] : arg[2];
int modifiers = decode_modifiers(arg[1]);
+
+ // Some terminals do not apply the Shift modifier to the key. To make
+ // mappings consistent we do it here. TODO: support more keys.
+ if ((modifiers & MOD_MASK_SHIFT) && key >= 'a' && key <= 'z')
+ key += 'A' - 'a';
+
return put_key_modifiers_in_typebuf(key, modifiers,
csi_len, offset, buf, bufsize, buflen);
}
diff --git a/src/version.c b/src/version.c
index 926cd7f..5bf3348 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1276,
+/**/
1275,
/**/
1274,