patch 8.2.1811: mapping Ctrl-key does not work for '{', '}' and '|'
Problem: Mapping Ctrl-key does not work for '{', '}' and '|'.
Solution: Remove the shift modifier. (closes #6457)
diff --git a/src/misc2.c b/src/misc2.c
index b69714a..6316b53 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -2974,7 +2974,8 @@
/*
* Some keys already have Shift included, pass them as normal keys.
- * Not when Ctrl is also used, because <C-H> and <C-S-H> are different.
+ * When Ctrl is also used <C-H> and <C-S-H> are different, but <C-S-{> should
+ * be <C-{>. Same for <C-S-}> and <C-S-|>.
* Also for <A-S-a> and <M-S-a>.
* This includes all printable ASCII characters except numbers and a-z.
*/
@@ -2989,6 +2990,11 @@
|| (key >= '[' && key <= '`')
|| (key >= '{' && key <= '~')))
return modifiers & ~MOD_MASK_SHIFT;
+
+ if (modifiers == (MOD_MASK_SHIFT | MOD_MASK_CTRL)
+ && (key == '{' || key == '}' || key == '|'))
+ return modifiers & ~MOD_MASK_SHIFT;
+
return modifiers;
}