Map control keys back to an ASCII uppercase letter when passing them on

as extended keys.
This commit is contained in:
nicm 2022-02-28 09:24:22 +00:00 committed by Nicholas Marriott
parent c030d6fe36
commit 9947f7416a

View File

@ -417,7 +417,7 @@ int
input_key(struct screen *s, struct bufferevent *bev, key_code key)
{
struct input_key_entry *ike;
key_code justkey, newkey, outkey;
key_code justkey, newkey, outkey, modifiers;
struct utf8_data ud;
char tmp[64], modifier;
@ -518,7 +518,12 @@ input_key(struct screen *s, struct bufferevent *bev, key_code key)
return (input_key(s, bev, key & ~KEYC_CTRL));
}
outkey = (key & KEYC_MASK_KEY);
switch (key & KEYC_MASK_MODIFIERS) {
modifiers = (key & KEYC_MASK_MODIFIERS);
if (outkey < ' ') {
outkey = 64 + outkey;
modifiers |= KEYC_CTRL;
}
switch (modifiers) {
case KEYC_SHIFT:
modifier = '2';
break;