From 132d9540149f6e4c2dc9d466d9d3b03bd51f7256 Mon Sep 17 00:00:00 2001 From: Daniel Carl Date: Sat, 19 Oct 2013 16:44:37 +0200 Subject: [PATCH] Moved key mapping and label mapping array together. --- src/map.c | 66 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/src/map.c b/src/map.c index 0f51430..97fb581 100644 --- a/src/map.c +++ b/src/map.c @@ -74,6 +74,34 @@ static struct { {0, GDK_F12, 'F', '2'}, }; +static struct { + char *label; + int len; + char *ch; + int chlen; +} key_labels[] = { + {"", 4, "\n", 1}, + {"", 5, "\t", 1}, + {"", 7, CSI_STR "kB", 3}, + {"", 5, "\x1b", 1}, + {"", 4, CSI_STR "ku", 3}, + {"", 6, CSI_STR "kd", 3}, + {"", 6, CSI_STR "kl", 3}, + {"", 7, CSI_STR "kr", 3}, + {"", 4, CSI_STR "k1", 3}, + {"", 4, CSI_STR "k2", 3}, + {"", 4, CSI_STR "k3", 3}, + {"", 4, CSI_STR "k4", 3}, + {"", 4, CSI_STR "k5", 3}, + {"", 4, CSI_STR "k6", 3}, + {"", 4, CSI_STR "k7", 3}, + {"", 4, CSI_STR "k8", 3}, + {"", 4, CSI_STR "k9", 3}, + {"", 5, CSI_STR "k;", 3}, + {"", 5, CSI_STR "F1", 3}, + {"", 5, CSI_STR "F2", 3}, +}; + void map_cleanup(void) { @@ -514,38 +542,12 @@ static char *convert_keys(char *in, int inlen, int *len) */ static char *convert_keylabel(char *in, int inlen, int *len) { - static struct { - char *label; - int len; - char *ch; - int chlen; - } keys[] = { - {"", 4, "\n", 1}, - {"", 5, "\t", 1}, - {"", 7, CSI_STR "kB", 3}, - {"", 5, "\x1b", 1}, - {"", 4, CSI_STR "ku", 3}, - {"", 6, CSI_STR "kd", 3}, - {"", 6, CSI_STR "kl", 3}, - {"", 7, CSI_STR "kr", 3}, - {"", 4, CSI_STR "k1", 3}, - {"", 4, CSI_STR "k2", 3}, - {"", 4, CSI_STR "k3", 3}, - {"", 4, CSI_STR "k4", 3}, - {"", 4, CSI_STR "k5", 3}, - {"", 4, CSI_STR "k6", 3}, - {"", 4, CSI_STR "k7", 3}, - {"", 4, CSI_STR "k8", 3}, - {"", 4, CSI_STR "k9", 3}, - {"", 5, CSI_STR "k;", 3}, - {"", 5, CSI_STR "F1", 3}, - {"", 5, CSI_STR "F2", 3}, - }; - - for (int i = 0; i < LENGTH(keys); i++) { - if (inlen == keys[i].len && !strncmp(keys[i].label, in, inlen)) { - *len = keys[i].chlen; - return keys[i].ch; + for (int i = 0; i < LENGTH(key_labels); i++) { + if (inlen == key_labels[i].len + && !strncmp(key_labels[i].label, in, inlen) + ) { + *len = key_labels[i].chlen; + return key_labels[i].ch; } } *len = 0; -- 2.20.1