Rewrite xterm-keys code (both input and output) so that works (doesn't always

output the same modifiers, accepts all the possible input keys) and is more
understandable.
This commit is contained in:
Nicholas Marriott
2009-10-26 17:46:33 +00:00
parent c92c2bfb10
commit fd2ef18a70
5 changed files with 226 additions and 1 deletions

View File

@@ -341,6 +341,13 @@ tty_keys_next(struct tty *tty, int *key, struct mouse_event *mouse)
goto found;
}
/* Not found. Try to parse a key with an xterm-style modifier. */
*key = xterm_keys_find(buf, len, &size);
if (*key != KEYC_NONE) {
buffer_remove(tty->in, size);
goto found;
}
/* Escape but no key string. If the timer isn't started, start it. */
if (!(tty->flags & TTY_ESCAPE)) {
tv.tv_sec = 0;