diff options
author | Martin Tournoij <martin@arp242.net> | 2021-07-13 14:34:32 +0800 |
---|---|---|
committer | Avi Halachmi (:avih) <avihpit@yahoo.com> | 2021-07-13 12:12:56 +0300 |
commit | 854404a6395a5d9d2129f34c1f9bb6ec58c7425b (patch) | |
tree | a91b0ee3faba9b35e3e6b4375314057f66f25e5d | |
parent | f223edb6160eb9e54c81179bc7698e18da3cb2e7 (diff) | |
download | mpv-854404a6395a5d9d2129f34c1f9bb6ec58c7425b.tar.bz2 mpv-854404a6395a5d9d2129f34c1f9bb6ec58c7425b.tar.xz |
terminal-unix: fix ^Z identification
When using "stty susp ''" to disable sending the TSTP signal with ^Z,
mpv didn't recognize ^Z correctly in the terminal:
[input] No key binding found for key 'Ctrl+2'.
Because ASCII 26 (^Z) and above were incorrectly considered ^<NUMBER>.
This commit moves the cutoff between letters/numbers from 25 to 26 so
that ^Z is now detected correctly as ^<LETTER>.
Additionally, it rephrases the ^<NUMBER> formula for clarity.
-rw-r--r-- | osdep/terminal-unix.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/osdep/terminal-unix.c b/osdep/terminal-unix.c index 86c3030cdd..1e7d874028 100644 --- a/osdep/terminal-unix.c +++ b/osdep/terminal-unix.c @@ -235,7 +235,8 @@ static void process_input(struct input_ctx *input_ctx, bool timeout) unsigned char c = buf.b[0]; skip_buf(&buf, 1); if (c < 32) { - c = c <= 25 ? (c + 'a' - 1) : (c - 25 + '2' - 1); + // 1..26 is ^A..^Z, and 27..31 is ^3..^7 + c = c <= 26 ? (c + 'a' - 1) : (c + '3' - 27); mods |= MP_KEY_MODIFIER_CTRL; } mp_input_put_key(input_ctx, c | mods); |