summaryrefslogtreecommitdiffstats
path: root/tty-keys.c
diff options
context:
space:
mode:
authornicm <nicm>2021-04-13 05:23:34 +0000
committernicm <nicm>2021-04-13 05:23:34 +0000
commit715835510beff71cb666600e0c139f82fd14cc2d (patch)
tree2ae79521f2c047ca6f50d73343710b2b264bd094 /tty-keys.c
parente6abe55134df1b9dc3b7dd7f3a65dff272a35bb7 (diff)
Handle C-Tab correctly with extended keys, GitHub issue 2642.
Diffstat (limited to 'tty-keys.c')
-rw-r--r--tty-keys.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/tty-keys.c b/tty-keys.c
index e88ff227..c0aceb32 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -953,11 +953,14 @@ tty_keys_extended_key(struct tty *tty, const char *buf, size_t len,
* Don't allow both KEYC_CTRL and as an implied modifier. Also convert
* C-X into C-x and so on.
*/
- if (nkey & KEYC_CTRL){
+ if (nkey & KEYC_CTRL) {
onlykey = (nkey & KEYC_MASK_KEY);
- if (onlykey < 32)
- onlykey = (nkey & ~KEYC_CTRL);
- else {
+ 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)