aboutsummaryrefslogtreecommitdiff
path: root/tty-keys.c
diff options
context:
space:
mode:
authornicm <nicm>2020-09-23 14:57:33 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2020-09-30 13:27:43 +0100
commit68c2d5c48dbb5e3ca40f7271f43a4dc2165068d7 (patch)
tree844f4cbe76ad4a863fa2b39632cb918f988ec328 /tty-keys.c
parentf70eda38175af89e05bf7b959128829375830143 (diff)
downloadrtmux-68c2d5c48dbb5e3ca40f7271f43a4dc2165068d7.tar.gz
rtmux-68c2d5c48dbb5e3ca40f7271f43a4dc2165068d7.tar.bz2
rtmux-68c2d5c48dbb5e3ca40f7271f43a4dc2165068d7.zip
Escape+Up and the other arrow keys should be kept as Escape+Up and not
converted to M-Up. Do not give them the implied meta flag so they don't match the M-Up entry in the output key tree. Fixes problem with vi reported by jsing@.
Diffstat (limited to 'tty-keys.c')
-rw-r--r--tty-keys.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/tty-keys.c b/tty-keys.c
index 19ad4f5b..941a9005 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -95,20 +95,25 @@ static const struct tty_default_key_raw tty_default_raw_keys[] = {
{ "\033OC", KEYC_RIGHT|KEYC_CURSOR },
{ "\033OD", KEYC_LEFT|KEYC_CURSOR },
- { "\033\033OA", KEYC_UP|KEYC_CURSOR|KEYC_META|KEYC_IMPLIED_META },
- { "\033\033OB", KEYC_DOWN|KEYC_CURSOR|KEYC_META|KEYC_IMPLIED_META },
- { "\033\033OC", KEYC_RIGHT|KEYC_CURSOR|KEYC_META|KEYC_IMPLIED_META },
- { "\033\033OD", KEYC_LEFT|KEYC_CURSOR|KEYC_META|KEYC_IMPLIED_META },
-
{ "\033[A", KEYC_UP|KEYC_CURSOR },
{ "\033[B", KEYC_DOWN|KEYC_CURSOR },
{ "\033[C", KEYC_RIGHT|KEYC_CURSOR },
{ "\033[D", KEYC_LEFT|KEYC_CURSOR },
- { "\033\033[A", KEYC_UP|KEYC_CURSOR|KEYC_META|KEYC_IMPLIED_META },
- { "\033\033[B", KEYC_DOWN|KEYC_CURSOR|KEYC_META|KEYC_IMPLIED_META },
- { "\033\033[C", KEYC_RIGHT|KEYC_CURSOR|KEYC_META|KEYC_IMPLIED_META },
- { "\033\033[D", KEYC_LEFT|KEYC_CURSOR|KEYC_META|KEYC_IMPLIED_META },
+ /*
+ * Meta arrow keys. These do not get the IMPLIED_META flag so they
+ * don't match the xterm-style meta keys in the output tree - Escape+Up
+ * should stay as Escape+Up and not become M-Up.
+ */
+ { "\033\033OA", KEYC_UP|KEYC_CURSOR|KEYC_META },
+ { "\033\033OB", KEYC_DOWN|KEYC_CURSOR|KEYC_META },
+ { "\033\033OC", KEYC_RIGHT|KEYC_CURSOR|KEYC_META },
+ { "\033\033OD", KEYC_LEFT|KEYC_CURSOR|KEYC_META },
+
+ { "\033\033[A", KEYC_UP|KEYC_CURSOR|KEYC_META },
+ { "\033\033[B", KEYC_DOWN|KEYC_CURSOR|KEYC_META },
+ { "\033\033[C", KEYC_RIGHT|KEYC_CURSOR|KEYC_META },
+ { "\033\033[D", KEYC_LEFT|KEYC_CURSOR|KEYC_META },
/* Other (xterm) "cursor" keys. */
{ "\033OH", KEYC_HOME },