X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsession.c;h=d388016d31a899cb0d63de3ebf849fae862fc285;hb=8b22d0dda50f29c25ec63e749b8c32738530498c;hp=9706e0e9de6402bc84fd5effbe9e067147f2142d;hpb=f2211b54b4e4254e1d96664ed4bf02513f7d85c2;p=pazpar2-moved-to-github.git diff --git a/src/session.c b/src/session.c index 9706e0e..d388016 100644 --- a/src/session.c +++ b/src/session.c @@ -1058,8 +1058,10 @@ void perform_termlist(struct http_channel *c, struct session *se, char **names; int num_names = 0; - if (name) - nmem_strsplit(nmem_tmp, ",", name, &names, &num_names); + if (!name) + name = "*"; + + nmem_strsplit(nmem_tmp, ",", name, &names, &num_names); session_enter(se); @@ -1067,17 +1069,18 @@ void perform_termlist(struct http_channel *c, struct session *se, { const char *tname; - wrbuf_puts(c->wrbuf, "wrbuf, names[j]); - wrbuf_puts(c->wrbuf, "\">\n"); - for (i = 0; i < se->num_termlists; i++) { tname = se->termlists[i].name; - if (num_names > 0 && !strcmp(names[j], tname)) + if (!strcmp(names[j], tname) || !strcmp(names[j], "*")) { struct termlist_score **p = 0; int len; + + wrbuf_puts(c->wrbuf, "wrbuf, tname); + wrbuf_puts(c->wrbuf, "\">\n"); + p = termlist_highscore(se->termlists[i].termlist, &len); if (p) { @@ -1099,14 +1102,19 @@ void perform_termlist(struct http_channel *c, struct session *se, wrbuf_puts(c->wrbuf, "\n"); } } + wrbuf_puts(c->wrbuf, "\n"); } } tname = "xtargets"; - if (num_names > 0 && !strcmp(names[j], tname)) + if (!strcmp(names[j], tname) || !strcmp(names[j], "*")) { + wrbuf_puts(c->wrbuf, "wrbuf, tname); + wrbuf_puts(c->wrbuf, "\">\n"); + targets_termlist_nb(c->wrbuf, se, num, c->nmem); + wrbuf_puts(c->wrbuf, "\n"); } - wrbuf_puts(c->wrbuf, "\n"); } session_leave(se); nmem_destroy(nmem_tmp);