commit 4923119174766e57dc0afad20648b10b612adf57 parent cdd68825419d1fa2882f6771b1fb42b97fd189a6 Author: Benno Schulenberg <bensberg@telfort.nl> Date: Fri, 7 Aug 2020 18:46:55 +0200 tweaks: reshuffle some fragments, to make the next change easier Diffstat:
M | src/winio.c | | | 17 | +++++++++-------- |
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/src/winio.c b/src/winio.c @@ -935,20 +935,21 @@ int parse_kbinput(WINDOW *win) return keycode; } else if (escapes == 1) { escapes = 0; - /* Key codes out of ASCII range cannot form escape sequences. */ - if (keycode >= 0x80) { + /* Codes out of ASCII printable range cannot form an escape sequence. */ + if (keycode < 0x20 || 0x7E < keycode) { + if (keycode == '\t') + return SHIFT_TAB; #ifndef NANO_TINY - if (keycode == KEY_BACKSPACE) + else if (keycode == KEY_BACKSPACE) return CONTROL_SHIFT_DELETE; #endif - } else if (keycode == '\t') - return SHIFT_TAB; - else if (key_buffer_len == 0 || *key_buffer == ESC_CODE || + else if (!solitary) + meta_key = TRUE; + } else if (key_buffer_len == 0 || *key_buffer == ESC_CODE || (keycode != 'O' && keycode != '[')) { if (!shifted_metas) keycode = tolower(keycode); - if (!solitary || (0x20 <= keycode && keycode <= 0x7E)) - meta_key = TRUE; + meta_key = TRUE; } else keycode = parse_escape_sequence(keycode); } else {