summaryrefslogtreecommitdiffstats
path: root/tty-keys.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-10-26 13:58:02 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-10-26 13:58:02 +0000
commitd0aa883e07c19040d23c2cd559850659323cdc90 (patch)
tree70b3358e2b5ebdc409a4eafe9acaa6785a2a727a /tty-keys.c
parentfcd3b260ac0a331b0295c2d21783013eaf9169db (diff)
As we always put the cursor keys into application mode, assume keys sent
with CSI have ctrl. Also add a couple of comments.
Diffstat (limited to 'tty-keys.c')
-rw-r--r--tty-keys.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/tty-keys.c b/tty-keys.c
index 5a7df479..c56f47a0 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -25,6 +25,10 @@
#include "tmux.h"
+/*
+ * Handle keys input from the outside terminal.
+ */
+
void tty_keys_add(struct tty *, const char *, int, int);
int tty_keys_mouse(char *, size_t, size_t *, struct mouse_event *);
@@ -67,21 +71,26 @@ struct tty_key_ent tty_keys[] = {
{ TTYC_KPP, NULL, KEYC_PPAGE, TTYKEY_CTRL },
{ TTYC_KCBT, NULL, KEYC_BTAB, TTYKEY_CTRL },
- /* Arrow keys. */
+ /*
+ * Arrow keys. There are several variants of these so just accept them.
+ * We always put the terminal into application keys mode so ctrl should
+ * swap between SS3 and CSI.
+ */
{ 0, "\033OA", KEYC_UP, TTYKEY_RAW },
{ 0, "\033OB", KEYC_DOWN, TTYKEY_RAW },
{ 0, "\033OC", KEYC_RIGHT, TTYKEY_RAW },
{ 0, "\033OD", KEYC_LEFT, TTYKEY_RAW },
- { 0, "\033[A", KEYC_UP, TTYKEY_RAW },
- { 0, "\033[B", KEYC_DOWN, TTYKEY_RAW },
- { 0, "\033[C", KEYC_RIGHT, TTYKEY_RAW },
- { 0, "\033[D", KEYC_LEFT, TTYKEY_RAW },
+ { 0, "\033[A", KEYC_UP|KEYC_CTRL, TTYKEY_RAW },
+ { 0, "\033[B", KEYC_DOWN|KEYC_CTRL, TTYKEY_RAW },
+ { 0, "\033[C", KEYC_RIGHT|KEYC_CTRL, TTYKEY_RAW },
+ { 0, "\033[D", KEYC_LEFT|KEYC_CTRL, TTYKEY_RAW },
{ 0, "\033Oa", KEYC_UP|KEYC_CTRL, TTYKEY_RAW },
{ 0, "\033Ob", KEYC_DOWN|KEYC_CTRL, TTYKEY_RAW },
{ 0, "\033Oc", KEYC_RIGHT|KEYC_CTRL, TTYKEY_RAW },
{ 0, "\033Od", KEYC_LEFT|KEYC_CTRL, TTYKEY_RAW },
+
{ 0, "\033[a", KEYC_UP|KEYC_SHIFT, TTYKEY_RAW },
{ 0, "\033[b", KEYC_DOWN|KEYC_SHIFT, TTYKEY_RAW },
{ 0, "\033[c", KEYC_RIGHT|KEYC_SHIFT, TTYKEY_RAW },