Problem: On a Belgian keyboard CTRL-] does not work.
Solution: Translate CTRL-$ into CTRL-]. (closes #11831)
}
else
{
- len = mb_char2bytes(key, string);
-
// Some keys need adjustment when the Ctrl modifier is used.
key = may_adjust_key_for_ctrl(modifiers, key);
+ len = mb_char2bytes(key, string);
+
// Remove the SHIFT modifier for keys where it's already included,
// e.g., '(', '!' and '*'.
modifiers = may_remove_shift_modifier(modifiers, key);
int
may_adjust_key_for_ctrl(int modifiers, int key)
{
- if (!(modifiers & MOD_MASK_CTRL))
+ if ((modifiers & MOD_MASK_CTRL) == 0)
return key;
if (ASCII_ISALPHA(key))
return '^';
if (key == '-')
return '_';
+
+ // On a Belgian keyboard AltGr $ is ']', on other keyboards '$' can only be
+ // obtained with Shift. Assume that '$' without shift implies a Belgian
+ // keyboard, where CTRL-$ means CTRL-].
+ if (key == '$' && (modifiers & MOD_MASK_SHIFT) == 0)
+ return ']';
+
return key;
}
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1302,
/**/
1301,
/**/