Sync OpenBSD patchset 458:

Support the (mostly new) function key+modifier caps (kIC-kIC7). Most of these
will be caught (soon) by the xterm keys code in xterm itself but some other
descriptions such as rxvt define them as well.
This commit is contained in:
Tiago Cunha
2009-10-28 23:01:44 +00:00
parent 8ff0d06d34
commit 1c4b7d33b1
3 changed files with 186 additions and 4 deletions

View File

@ -1,4 +1,4 @@
/* $Id: tty-keys.c,v 1.35 2009-10-28 22:57:55 tcunha Exp $ */
/* $Id: tty-keys.c,v 1.36 2009-10-28 23:01:44 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -122,6 +122,68 @@ struct tty_key_ent tty_keys[] = {
{ 0, "\033OM", KEYC_KP_ENTER, TTYKEY_RAW },
{ 0, "\033Op", KEYC_KP_ZERO, TTYKEY_RAW },
{ 0, "\033On", KEYC_KP_PERIOD, TTYKEY_RAW },
/* Key and modifier capabilities. */
{ TTYC_KDC2, NULL, KEYC_DC|KEYC_SHIFT, 0 },
{ TTYC_KDC3, NULL, KEYC_DC|KEYC_ESCAPE, 0 },
{ TTYC_KDC4, NULL, KEYC_DC|KEYC_SHIFT|KEYC_ESCAPE, 0 },
{ TTYC_KDC5, NULL, KEYC_DC|KEYC_CTRL, 0 },
{ TTYC_KDC6, NULL, KEYC_DC|KEYC_SHIFT|KEYC_CTRL, 0 },
{ TTYC_KDC7, NULL, KEYC_DC|KEYC_ESCAPE|KEYC_CTRL, 0 },
{ TTYC_KDN2, NULL, KEYC_DOWN|KEYC_SHIFT, 0 },
{ TTYC_KDN3, NULL, KEYC_DOWN|KEYC_ESCAPE, 0 },
{ TTYC_KDN4, NULL, KEYC_DOWN|KEYC_SHIFT|KEYC_ESCAPE, 0 },
{ TTYC_KDN5, NULL, KEYC_DOWN|KEYC_CTRL, 0 },
{ TTYC_KDN6, NULL, KEYC_DOWN|KEYC_SHIFT|KEYC_CTRL, 0 },
{ TTYC_KDN7, NULL, KEYC_DOWN|KEYC_ESCAPE|KEYC_CTRL, 0 },
{ TTYC_KEND2, NULL, KEYC_END|KEYC_SHIFT, 0 },
{ TTYC_KEND3, NULL, KEYC_END|KEYC_ESCAPE, 0 },
{ TTYC_KEND4, NULL, KEYC_END|KEYC_SHIFT|KEYC_ESCAPE, 0 },
{ TTYC_KEND5, NULL, KEYC_END|KEYC_CTRL, 0 },
{ TTYC_KEND6, NULL, KEYC_END|KEYC_SHIFT|KEYC_CTRL, 0 },
{ TTYC_KEND7, NULL, KEYC_END|KEYC_ESCAPE|KEYC_CTRL, 0 },
{ TTYC_KHOM2, NULL, KEYC_HOME|KEYC_SHIFT, 0 },
{ TTYC_KHOM3, NULL, KEYC_HOME|KEYC_ESCAPE, 0 },
{ TTYC_KHOM4, NULL, KEYC_HOME|KEYC_SHIFT|KEYC_ESCAPE, 0 },
{ TTYC_KHOM5, NULL, KEYC_HOME|KEYC_CTRL, 0 },
{ TTYC_KHOM6, NULL, KEYC_HOME|KEYC_SHIFT|KEYC_CTRL, 0 },
{ TTYC_KHOM7, NULL, KEYC_HOME|KEYC_ESCAPE|KEYC_CTRL, 0 },
{ TTYC_KIC2, NULL, KEYC_IC|KEYC_SHIFT, 0 },
{ TTYC_KIC3, NULL, KEYC_IC|KEYC_ESCAPE, 0 },
{ TTYC_KIC4, NULL, KEYC_IC|KEYC_SHIFT|KEYC_ESCAPE, 0 },
{ TTYC_KIC5, NULL, KEYC_IC|KEYC_CTRL, 0 },
{ TTYC_KIC6, NULL, KEYC_IC|KEYC_SHIFT|KEYC_CTRL, 0 },
{ TTYC_KIC7, NULL, KEYC_IC|KEYC_ESCAPE|KEYC_CTRL, 0 },
{ TTYC_KLFT2, NULL, KEYC_LEFT|KEYC_SHIFT, 0 },
{ TTYC_KLFT3, NULL, KEYC_LEFT|KEYC_ESCAPE, 0 },
{ TTYC_KLFT4, NULL, KEYC_LEFT|KEYC_SHIFT|KEYC_ESCAPE, 0 },
{ TTYC_KLFT5, NULL, KEYC_LEFT|KEYC_CTRL, 0 },
{ TTYC_KLFT6, NULL, KEYC_LEFT|KEYC_SHIFT|KEYC_CTRL, 0 },
{ TTYC_KLFT7, NULL, KEYC_LEFT|KEYC_ESCAPE|KEYC_CTRL, 0 },
{ TTYC_KNXT2, NULL, KEYC_NPAGE|KEYC_SHIFT, 0 },
{ TTYC_KNXT3, NULL, KEYC_NPAGE|KEYC_ESCAPE, 0 },
{ TTYC_KNXT4, NULL, KEYC_NPAGE|KEYC_SHIFT|KEYC_ESCAPE, 0 },
{ TTYC_KNXT5, NULL, KEYC_NPAGE|KEYC_CTRL, 0 },
{ TTYC_KNXT6, NULL, KEYC_NPAGE|KEYC_SHIFT|KEYC_CTRL, 0 },
{ TTYC_KNXT7, NULL, KEYC_NPAGE|KEYC_ESCAPE|KEYC_CTRL, 0 },
{ TTYC_KPRV2, NULL, KEYC_PPAGE|KEYC_SHIFT, 0 },
{ TTYC_KPRV3, NULL, KEYC_PPAGE|KEYC_ESCAPE, 0 },
{ TTYC_KPRV4, NULL, KEYC_PPAGE|KEYC_SHIFT|KEYC_ESCAPE, 0 },
{ TTYC_KPRV5, NULL, KEYC_PPAGE|KEYC_CTRL, 0 },
{ TTYC_KPRV6, NULL, KEYC_PPAGE|KEYC_SHIFT|KEYC_CTRL, 0 },
{ TTYC_KPRV7, NULL, KEYC_PPAGE|KEYC_ESCAPE|KEYC_CTRL, 0 },
{ TTYC_KRIT2, NULL, KEYC_RIGHT|KEYC_SHIFT, 0 },
{ TTYC_KRIT3, NULL, KEYC_RIGHT|KEYC_ESCAPE, 0 },
{ TTYC_KRIT4, NULL, KEYC_RIGHT|KEYC_SHIFT|KEYC_ESCAPE, 0 },
{ TTYC_KRIT5, NULL, KEYC_RIGHT|KEYC_CTRL, 0 },
{ TTYC_KRIT6, NULL, KEYC_RIGHT|KEYC_SHIFT|KEYC_CTRL, 0 },
{ TTYC_KRIT7, NULL, KEYC_RIGHT|KEYC_ESCAPE|KEYC_CTRL, 0 },
{ TTYC_KUP2, NULL, KEYC_UP|KEYC_SHIFT, 0 },
{ TTYC_KUP3, NULL, KEYC_UP|KEYC_ESCAPE, 0 },
{ TTYC_KUP4, NULL, KEYC_UP|KEYC_SHIFT|KEYC_ESCAPE, 0 },
{ TTYC_KUP5, NULL, KEYC_UP|KEYC_CTRL, 0 },
{ TTYC_KUP6, NULL, KEYC_UP|KEYC_SHIFT|KEYC_CTRL, 0 },
{ TTYC_KUP7, NULL, KEYC_UP|KEYC_ESCAPE|KEYC_CTRL, 0 },
};
RB_GENERATE(tty_keys, tty_key, entry, tty_keys_cmp);