summaryrefslogtreecommitdiffstats
path: root/tty-keys.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-11-30 16:44:03 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-11-30 16:44:03 +0000
commit29a5931c6a352f12fe4bcc1cb72cb96e073ddca6 (patch)
treeb7fef76523c8fc723b11e45c8cd89f18bf33568a /tty-keys.c
parent2182e1badcc161c6e6f1ef6dec21a57cc510299e (diff)
Handle partial xterm function key sequences.
Diffstat (limited to 'tty-keys.c')
-rw-r--r--tty-keys.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/tty-keys.c b/tty-keys.c
index 8f90b6ec..1319e09f 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -472,12 +472,15 @@ tty_keys_next(struct tty *tty)
goto partial_key;
}
-
/* Not found. Try to parse a key with an xterm-style modifier. */
- key = xterm_keys_find(buf, len, &size);
- if (key != KEYC_NONE) {
+ switch (xterm_keys_find(buf, len, &size, &key)) {
+ case 0: /* found */
evbuffer_drain(tty->event->input, size);
goto handle_key;
+ case -1: /* not found */
+ break;
+ case 1:
+ goto partial_key;
}
/* Skip the escape. */