X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=index%2Fmod_dom.c;h=864529ab3f04d989636e76c1d00fb8fff4933529;hb=87f0188b0b31dde5f5510a30b17a89f45384f271;hp=60cf180d2b836701e6a87144a9d3b7abb7048ff2;hpb=a49b6f2fc9cc5208800f0195647f61eb24997812;p=idzebra-moved-to-github.git diff --git a/index/mod_dom.c b/index/mod_dom.c index 60cf180..864529a 100644 --- a/index/mod_dom.c +++ b/index/mod_dom.c @@ -1,4 +1,4 @@ -/* $Id: mod_dom.c,v 1.37 2007-05-19 19:44:14 adam Exp $ +/* $Id: mod_dom.c,v 1.39 2007-08-31 07:02:24 adam Exp $ Copyright (C) 1995-2007 Index Data ApS @@ -1119,7 +1119,8 @@ static int convert_extract_doc(struct filter_info *tinfo, else xmlDocDumpMemory(store_doc ? store_doc : doc, &buf_out, &len_out); - (*p->setStoreData)(p, buf_out, len_out); + if (p->setStoreData) + (*p->setStoreData)(p, buf_out, len_out); xmlFree(buf_out); if (store_doc) @@ -1308,7 +1309,7 @@ static int filter_extract(void *clientData, struct recExtractCtrl *p) switch(input->type) { case DOM_INPUT_XMLREADER: - if (input->u.xmlreader.split_level == 0) + if (input->u.xmlreader.split_level == 0 || p->setStoreData == 0) return extract_xml_full(tinfo, input, p); else return extract_xml_split(tinfo, input, p); @@ -1360,6 +1361,7 @@ static int filter_retrieve (void *clientData, struct recRetrieveCtrl *p) { p->diagnostic = YAZ_BIB1_SPECIFIED_ELEMENT_SET_NAME_NOT_VALID_FOR_SPECIFIED_; + p->addinfo = odr_strdup(p->odr, esn); return 0; }