aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tty-keys.c60
1 files changed, 59 insertions, 1 deletions
diff --git a/tty-keys.c b/tty-keys.c
index 41253d67..d51d461e 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -896,7 +896,65 @@ tty_keys_extended_key(struct tty *tty, const char *buf, size_t len,
*size = end + 1;
/* Store the key and modifiers. */
- *key = number;
+ switch (number) {
+ case 2:
+ *key = KEYC_IC;
+ break;
+ case 3:
+ *key = KEYC_DC;
+ break;
+ case 5:
+ *key = KEYC_PPAGE;
+ break;
+ case 6:
+ *key = KEYC_NPAGE;
+ break;
+ case 7:
+ *key = KEYC_HOME;
+ break;
+ case 8:
+ *key = KEYC_END;
+ break;
+ case 11:
+ *key = KEYC_F1;
+ break;
+ case 12:
+ *key = KEYC_F2;
+ break;
+ case 13:
+ *key = KEYC_F3;
+ break;
+ case 14:
+ *key = KEYC_F4;
+ break;
+ case 15:
+ *key = KEYC_F5;
+ break;
+ case 17:
+ *key = KEYC_F6;
+ break;
+ case 18:
+ *key = KEYC_F7;
+ break;
+ case 19:
+ *key = KEYC_F8;
+ break;
+ case 20:
+ *key = KEYC_F9;
+ break;
+ case 21:
+ *key = KEYC_F10;
+ break;
+ case 23:
+ *key = KEYC_F11;
+ break;
+ case 24:
+ *key = KEYC_F12;
+ break;
+ default:
+ *key = number;
+ break;
+ }
switch (modifiers) {
case 2:
(*key) |= KEYC_SHIFT;