X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsolr.c;h=16c5fa61a5e557037a217d1cba8073ec4fa53a24;hb=3c287bc1d48ee6a1f300054c2cebd0ba312bd5b9;hp=5c438314da3ac5d3b048b35372bbe7cc3a79bdfa;hpb=c18fa0350a008cd57973968334ccf8270026b2e0;p=yaz-moved-to-github.git diff --git a/src/solr.c b/src/solr.c index 5c43831..16c5fa6 100644 --- a/src/solr.c +++ b/src/solr.c @@ -26,7 +26,6 @@ #if YAZ_HAVE_XML2 #include #include -#endif static void extract_text_node(xmlNodePtr node, WRBUF wrbuf) { xmlNodePtr child; @@ -204,13 +203,14 @@ static int yaz_solr_decode_facet_counts(ODR o, xmlNodePtr root, return 0; } -static yaz_solr_decode_suggestion_values(xmlNodePtr ptr, WRBUF wrbuf) { +static void yaz_solr_decode_suggestion_values(xmlNodePtr listPptr, WRBUF wrbuf) +{ xmlNodePtr node; - for (node = ptr; node; node= node->next) { - if (!strcmp(ptr->name,"lst")) { + for (node = listPptr; node; node= node->next) { + if (!strcmp((char*) node->name, "lst")) { xmlNodePtr child; - for (child = ptr->children; child; child= child->next) { - if (match(child, "str", "name", "word")) { + for (child = node->children; child; child= child->next) { + if (match_xml_node_attribute(child, "str", "name", "word")) { wrbuf_puts(wrbuf, ""); extract_text_node(child, wrbuf); wrbuf_puts(wrbuf, "\n"); @@ -220,7 +220,8 @@ static yaz_solr_decode_suggestion_values(xmlNodePtr ptr, WRBUF wrbuf) { } } -static yaz_solr_decode_suggestion_lst(xmlNodePtr lstPtr, WRBUF wrbuf) { +static void yaz_solr_decode_suggestion_lst(xmlNodePtr lstPtr, WRBUF wrbuf) +{ xmlNodePtr node; for (node = lstPtr; node; node= node->next) { if (match_xml_node_attribute(node, "arr", "name", "suggestion")) { @@ -234,10 +235,10 @@ static void yaz_solr_decode_misspelled(xmlNodePtr lstPtr, WRBUF wrbuf) xmlNodePtr node; for (node = lstPtr; node; node= node->next) { - if (strcmp((const char*) node->name, "lst")) { + if (!strcmp((const char*) node->name, "lst")) { const char *misspelled = yaz_element_attribute_value_get(node, "lst", "name"); if (misspelled) { - wrbuf_printf(wrbuf, "", misspelled); + wrbuf_printf(wrbuf, "\n", misspelled); yaz_solr_decode_suggestion_lst(node->children, wrbuf); wrbuf_puts(wrbuf, "\n"); } @@ -260,6 +261,7 @@ static int yaz_solr_decode_spellcheck(ODR o, xmlNodePtr spellcheckPtr, Z_SRW_sea sr->suggestions = odr_strdup(o, wrbuf_cstr(wrbuf)); return 0; } +#endif int yaz_solr_decode_response(ODR o, Z_HTTP_Response *hres, Z_SRW_PDU **pdup) {