dump: add back kccgst names
authorRan Benita <ran234@gmail.com>
Wed, 11 Jul 2012 13:16:20 +0000 (16:16 +0300)
committerDaniel Stone <daniel@fooishbar.org>
Thu, 12 Jul 2012 23:11:29 +0000 (00:11 +0100)
Readd the component names to the keymap->names struct. This is used when
printing the component, e.g.

xkb_keymap {
xkb_keycodes "evdev+aliases(qwerty)" {

instead of

xkb_keymap {
xkb_keycodes {

This makes diffing against xkbcomp $DISPLAY a bit easier and is kind of
useful anyway.

Signed-off-by: Ran Benita <ran234@gmail.com>
src/alloc.c
src/keymap-dump.c
src/xkb-priv.h
src/xkbcomp/compat.c
src/xkbcomp/keycodes.c
src/xkbcomp/keytypes.c
src/xkbcomp/symbols.c
test/data/keymaps/dump.data

index d474a64..e9f2dfb 100644 (file)
@@ -352,6 +352,11 @@ XkbcFreeNames(struct xkb_keymap *keymap)
         }
     }
 
+    free(names->keycodes);
+    free(names->symbols);
+    free(names->keytypes);
+    free(names->compat);
+
     for (i = 0; i < XkbNumVirtualMods; i++)
         free(names->vmods[i]);
     for (i = 0; i < XkbNumIndicators; i++)
index 08d4979..91f8506 100644 (file)
@@ -311,7 +311,12 @@ write_keycodes(struct xkb_keymap *keymap, char **buf, size_t *size,
     struct xkb_key_alias *alias;
     int i;
 
-    write_buf(keymap, buf, size, offset, "\txkb_keycodes {\n");
+    if (keymap->names->keycodes)
+        write_buf(keymap, buf, size, offset, "\txkb_keycodes \"%s\" {\n",
+                  keymap->names->keycodes);
+    else
+        write_buf(keymap, buf, size, offset, "\txkb_keycodes {\n");
+
     write_buf(keymap, buf, size, offset, "\t\tminimum = %d;\n",
               keymap->min_key_code);
     write_buf(keymap, buf, size, offset, "\t\tmaximum = %d;\n",
@@ -355,7 +360,12 @@ write_types(struct xkb_keymap *keymap, char **buf, size_t *size,
     int n;
     struct xkb_key_type *type;
 
-    write_buf(keymap, buf, size, offset, "\txkb_types {\n\n");
+    if (keymap->names->keytypes)
+        write_buf(keymap, buf, size, offset, "\txkb_types \"%s\" {\n\n",
+                  keymap->names->keytypes);
+    else
+        write_buf(keymap, buf, size, offset, "\txkb_types {\n\n");
+
     write_vmods(keymap, buf, size, offset);
 
     darray_foreach(type, keymap->map->types) {
@@ -632,7 +642,11 @@ write_compat(struct xkb_keymap *keymap, char **buf, size_t *size,
     int i;
     struct xkb_sym_interpret *interp;
 
-    write_buf(keymap, buf, size, offset, "\txkb_compatibility {\n\n");
+    if (keymap->names->compat)
+        write_buf(keymap, buf, size, offset, "\txkb_compatibility \"%s\" {\n\n",
+                  keymap->names->compat);
+    else
+        write_buf(keymap, buf, size, offset, "\txkb_compatibility {\n\n");
 
     write_vmods(keymap, buf, size, offset);
 
@@ -744,7 +758,11 @@ write_symbols(struct xkb_keymap *keymap, char **buf, size_t *size,
     int group, tmp;
     bool showActions;
 
-    write_buf(keymap, buf, size, offset, "\txkb_symbols {\n\n");
+    if (keymap->names->symbols)
+        write_buf(keymap, buf, size, offset, "\txkb_symbols \"%s\" {\n\n",
+                  keymap->names->symbols);
+    else
+        write_buf(keymap, buf, size, offset, "\txkb_symbols {\n\n");
 
     for (tmp = group = 0; group < XkbNumKbdGroups; group++) {
        if (!keymap->names->groups[group])
index 1b416bc..bfaa300 100644 (file)
@@ -320,6 +320,11 @@ struct xkb_key_alias {
 };
 
 struct xkb_names {
+    char *keycodes;
+    char *symbols;
+    char *keytypes;
+    char *compat;
+
     char *vmods[XkbNumVirtualMods];
     char *indicators[XkbNumIndicators];
     char *groups[XkbNumKbdGroups];
index d3e94c0..a45950a 100644 (file)
@@ -799,6 +799,12 @@ CompileCompatMap(XkbFile *file, struct xkb_keymap *keymap, enum merge_mode merge
         goto err_info;
     }
 
+    if (info.name) {
+        if (XkbcAllocNames(keymap, 0, 0) != Success)
+            goto err_info;
+        keymap->names->compat = strdup(info.name);
+    }
+
     if (info.nInterps > 0) {
         CopyInterps(&info, keymap->compat, true, XkbSI_Exactly);
         CopyInterps(&info, keymap->compat, true, XkbSI_AllOf | XkbSI_NoneOf);
index 5186432..cb4c09c 100644 (file)
@@ -846,6 +846,8 @@ CompileKeycodes(XkbFile *file, struct xkb_keymap *keymap, enum merge_mode merge)
         for (i = info.computedMin; i <= info.computedMax; i++)
             LongToKeyName(darray_item(info.names, i),
                           darray_item(keymap->names->keys, i).name);
+        if (info.name)
+            keymap->names->keycodes = strdup(info.name);
     } else {
         WSGO("Cannot create struct xkb_names in CompileKeycodes\n");
         goto err_info;
index ae2fbc1..5b0cd82 100644 (file)
@@ -1074,6 +1074,12 @@ CompileKeyTypes(XkbFile *file, struct xkb_keymap *keymap, enum merge_mode merge)
     if (info.errorCount != 0)
         goto err_info;
 
+    if (info.name) {
+        if (XkbcAllocNames(keymap, 0, 0) != Success)
+            goto err_info;
+        keymap->names->keytypes = strdup(info.name);
+    }
+
     i = info.nTypes;
     if ((info.stdPresent & XkbOneLevelMask) == 0)
         i++;
index 41957f1..6e633e2 100644 (file)
@@ -2116,6 +2116,9 @@ CompileSymbols(XkbFile *file, struct xkb_keymap *keymap, enum merge_mode merge)
         goto err_info;
     }
 
+    if (info.name)
+        keymap->names->symbols = strdup(info.name);
+
     /* now copy info into xkb. */
     ApplyAliases(keymap, &info.aliases);
 
index 8c24337..840e9d8 100644 (file)
@@ -1,5 +1,5 @@
 xkb_keymap {
-       xkb_keycodes {
+       xkb_keycodes "evdev+aliases(qwerty)" {
                minimum = 8;
                maximum = 255;
                 <ESC> = 9;
@@ -295,7 +295,7 @@ xkb_keymap {
                alias <LatM> = <AB07>;
        };
 
-       xkb_types {
+       xkb_types "complete" {
 
                virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
 
@@ -592,7 +592,7 @@ xkb_keymap {
                };
        };
 
-       xkb_compatibility {
+       xkb_compatibility "complete+caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4" {
 
                virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
 
@@ -1080,7 +1080,7 @@ xkb_keymap {
                };
        };
 
-       xkb_symbols {
+       xkb_symbols "pc+us+ru:2+ca(multix):3+de(neo):4+inet(evdev)" {
 
                name[group1]="English (US)";
                name[group2]="Russian";