From 10aab825394541df3140bcb4e49b6a0e05997f8e Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Wed, 28 Oct 2009 23:03:51 +0000 Subject: 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. --- input-keys.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'input-keys.c') diff --git a/input-keys.c b/input-keys.c index 2b9dbe3b..7d503d57 100644 --- a/input-keys.c +++ b/input-keys.c @@ -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 @@ -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]; -- cgit