From bbb3509bc5c368ac480fdc6af00d5884eb5c1edc Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 13 Apr 2021 12:26:34 +0000 Subject: Change how extended ctrl keys are processed to fix C-S-Tab and C-;. --- tty-keys.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) (limited to 'tty-keys.c') diff --git a/tty-keys.c b/tty-keys.c index c0aceb32..040e7005 100644 --- a/tty-keys.c +++ b/tty-keys.c @@ -955,23 +955,19 @@ tty_keys_extended_key(struct tty *tty, const char *buf, size_t len, */ if (nkey & KEYC_CTRL) { onlykey = (nkey & KEYC_MASK_KEY); - if (onlykey < 32) { - if (onlykey != 9) - onlykey = (nkey & ~KEYC_CTRL); - else - onlykey = (9|KEYC_CTRL); - } else { - if (onlykey >= 97 && onlykey <= 122) - onlykey -= 96; - else if (onlykey >= 64 && onlykey <= 95) - onlykey -= 64; - else if (onlykey == 32) - onlykey = 0; - else if (onlykey == 63) - onlykey = 127; - onlykey |= ((nkey & KEYC_MASK_MODIFIERS) & ~KEYC_CTRL); - } - nkey = onlykey; + if (onlykey < 32 && onlykey != 9) + /* nothing */; + else if (onlykey >= 97 && onlykey <= 122) + onlykey -= 96; + else if (onlykey >= 64 && onlykey <= 95) + onlykey -= 64; + else if (onlykey == 32) + onlykey = 0; + else if (onlykey == 63) + onlykey = 127; + else + onlykey |= KEYC_CTRL; + nkey = onlykey|((nkey & KEYC_MASK_MODIFIERS) & ~KEYC_CTRL); } if (log_get_level() != 0) { -- cgit v1.2.3