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: input-keys.c,v 1.37 2009-10-28 23:00:21 tcunha Exp $ */
/* $Id: input-keys.c,v 1.38 2009-10-28 23:03:51 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -174,6 +174,18 @@ input_key(struct window_pane *wp, int key)
return;
}
/*
* Then try to look this up as an xterm key, if the flag to output them
* is set.
*/
if (options_get_number(&wp->window->options, "xterm-keys")) {
if ((out = xterm_keys_lookup(key)) != NULL) {
buffer_write(wp->out, out, strlen(out));
xfree(out);
return;
}
}
/* Otherwise look the key up in the table. */
for (i = 0; i < nitems(input_keys); i++) {
ike = &input_keys[i];