memset(§ions, 0, sizeof(sections));
mainType = file->type;
- mainName = file->name;
+ mainName = file->name ? file->name : "(unnamed)";
switch (mainType)
{
case XkmSemanticsFile:
/* 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",
continue;
}
+ if (!file->topName || strcmp(file->topName, mainName) != 0) {
+ free(file->topName);
+ file->topName = strdup(mainName);
+ }
+
have |= (1 << file->type);
}