X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Falvis.c;h=c9261296880b599c1bf7789d5f6eed03b261a86d;hb=cf66499bac7c49c5bdd363a2c927295fa92f547a;hp=fad3671bdf1db5ac7641bbed666c055cf5f7bf24;hpb=c5365d8095f29747f5998028934cfc034d038673;p=idzebra-moved-to-github.git diff --git a/index/alvis.c b/index/alvis.c index fad3671..c926129 100644 --- a/index/alvis.c +++ b/index/alvis.c @@ -1,4 +1,4 @@ -/* $Id: alvis.c,v 1.12 2007-02-12 10:33:51 adam Exp $ +/* $Id: alvis.c,v 1.14 2007-03-07 14:18:35 marc Exp $ Copyright (C) 1995-2007 Index Data ApS @@ -345,6 +345,7 @@ static void filter_destroy(void *clientData) { struct filter_info *tinfo = clientData; destroy_schemas(tinfo); + xfree(tinfo->full_name); if (tinfo->reader) xmlFreeTextReader(tinfo->reader); odr_destroy(tinfo->odr); @@ -507,7 +508,9 @@ static int extract_split(struct filter_info *tinfo, struct recExtractCtrl *p) p /* I/O handler */, 0 /* URL */, 0 /* encoding */, - XML_PARSE_XINCLUDE|XML_PARSE_NOENT); + XML_PARSE_XINCLUDE + | XML_PARSE_NOENT + | XML_PARSE_NONET); } if (!tinfo->reader) return RECCTRL_EXTRACT_ERROR_GENERIC; @@ -550,11 +553,17 @@ static int extract_full(struct filter_info *tinfo, struct recExtractCtrl *p) xmlDocPtr doc = xmlReadIO(ioread_ex, ioclose_ex, p /* I/O handler */, 0 /* URL */, 0 /* encoding */, - XML_PARSE_XINCLUDE|XML_PARSE_NOENT); + XML_PARSE_XINCLUDE + | XML_PARSE_NOENT + | XML_PARSE_NONET); if (!doc) - { return RECCTRL_EXTRACT_ERROR_GENERIC; - } + /* else { + xmlNodePtr root = xmlDocGetRootElement(doc); + if (!root) + return RECCTRL_EXTRACT_ERROR_GENERIC; + } */ + return extract_doc(tinfo, p, doc); } else @@ -694,7 +703,7 @@ static int filter_retrieve (void *clientData, struct recRetrieveCtrl *p) doc = xmlReadIO(ioread_ret, ioclose_ret, p /* I/O handler */, 0 /* URL */, 0 /* encoding */, - XML_PARSE_XINCLUDE|XML_PARSE_NOENT); + XML_PARSE_XINCLUDE | XML_PARSE_NOENT | XML_PARSE_NONET); if (!doc) { p->diagnostic = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS;