From 671ab1bf8ffcb201405310b2b9d154cd600b3a46 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Sat, 10 Mar 2012 13:54:03 +0000 Subject: [PATCH] Handle XkbFiles without a name Signed-off-by: Daniel Stone --- src/xkbcomp/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/xkbcomp/keymap.c b/src/xkbcomp/keymap.c index 76e2bc8..fd973b0 100644 --- a/src/xkbcomp/keymap.c +++ b/src/xkbcomp/keymap.c @@ -60,7 +60,7 @@ CompileKeymap(XkbFile *file, unsigned merge) memset(§ions, 0, sizeof(sections)); mainType = file->type; - mainName = file->name; + mainName = file->name ? file->name : "(unnamed)"; switch (mainType) { case XkmSemanticsFile: @@ -86,11 +86,6 @@ CompileKeymap(XkbFile *file, unsigned merge) /* Check for duplicate entries in the input file */ for (file = (XkbFile *) file->defs; file; file = (XkbFile *) file->common.next) { - if (file->topName != mainName) { - free(file->topName); - file->topName = strdup(mainName); - } - if ((have & (1 << file->type)) != 0) { ERROR("More than one %s section in a %s file\n", @@ -139,6 +134,11 @@ CompileKeymap(XkbFile *file, unsigned merge) continue; } + if (!file->topName || strcmp(file->topName, mainName) != 0) { + free(file->topName); + file->topName = strdup(mainName); + } + have |= (1 << file->type); } -- 2.7.4