- p = termlist(s->psession, &len);
- if (p)
- for (i = 0; i < len; i++)
- {
- wrbuf_puts(c->wrbuf, "\n<term>");
- wrbuf_printf(c->wrbuf, "<name>%s</name>", p[i]->term);
- wrbuf_printf(c->wrbuf, "<frequency>%d</frequency>", p[i]->frequency);
- wrbuf_puts(c->wrbuf, "</term>");
- }
+ while (*name)
+ {
+ char tname[256];
+ char *tp;
+
+ if (!(tp = strchr(name, ',')))
+ tp = name + strlen(name);
+ strncpy(tname, name, tp - name);
+ tname[tp - name] = '\0';
+
+ p = termlist(s->psession, tname, &len);
+ wrbuf_printf(c->wrbuf, "\n<list name=\"%s\">\n", tname);
+ if (p)
+ for (i = 0; i < len; i++)
+ {
+ wrbuf_puts(c->wrbuf, "\n<term>");
+ wrbuf_printf(c->wrbuf, "<name>%s</name>", p[i]->term);
+ wrbuf_printf(c->wrbuf, "<frequency>%d</frequency>", p[i]->frequency);
+ wrbuf_puts(c->wrbuf, "</term>");
+ }
+ wrbuf_puts(c->wrbuf, "\n</list>");
+ name = tp;
+ if (*name == ',')
+ name++;
+ }