Sync OpenBSD patchset 459:

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:
Tiago Cunha
2009-10-28 23:03:51 +00:00
parent 1c4b7d33b1
commit 10aab82539
4 changed files with 228 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* $Id: tty-keys.c,v 1.36 2009-10-28 23:01:44 tcunha Exp $ */
/* $Id: tty-keys.c,v 1.37 2009-10-28 23:03:51 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -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;