+ *tp = all; /* append any ALL entries to the list */
+ }
+ new_element->name = nmem_strdup(data1_nmem_get (dh), name);
+ }
+ else if (!strcmp(cmd, "section"))
+ {
+ char name[512];
+ if (sscanf(args, "%511s", name) < 1)
+ {
+ logf(LOG_WARN, "Bad # of args to sub in %s: '%s'",
+ file, args);
+ continue;
+ }
+ cur_elements = nmem_malloc(data1_nmem_get(dh),
+ sizeof(*cur_elements));
+ cur_elements->next = res->sub_elements;
+ cur_elements->elements = NULL;
+ cur_elements->name = nmem_strdup (data1_nmem_get(dh), name);
+ res->sub_elements = cur_elements;
+
+ level = 0;
+ ppl[level] = &cur_elements->elements;
+ }
+ else if (!strcmp(cmd, "all"))
+ {
+ char *p;
+ data1_termlist **tp = &all;
+
+ if (all)
+ {
+ logf(LOG_WARN, "Too many ALL declarations in %s - ignored",
+ file);
+ continue;
+ }
+
+ p = args;
+ if (!res->attset)
+ {
+ logf(LOG_WARN, "No attset loaded in %s", file);
+ fclose(f);
+ return 0;