projects
/
idzebra-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Towards 2.0.12
[idzebra-moved-to-github.git]
/
index
/
alvis.c
diff --git
a/index/alvis.c
b/index/alvis.c
index
cb98050
..
c926129
100644
(file)
--- a/
index/alvis.c
+++ b/
index/alvis.c
@@
-1,5
+1,5
@@
-/* $Id: alvis.c,v 1.10 2006-12-22 13:57:03 adam Exp $
- Copyright (C) 1995-2006
+/* $Id: alvis.c,v 1.14 2007-03-07 14:18:35 marc Exp $
+ Copyright (C) 1995-2007
Index Data ApS
This file is part of the Zebra server.
Index Data ApS
This file is part of the Zebra server.
@@
-345,6
+345,7
@@
static void filter_destroy(void *clientData)
{
struct filter_info *tinfo = clientData;
destroy_schemas(tinfo);
{
struct filter_info *tinfo = clientData;
destroy_schemas(tinfo);
+ xfree(tinfo->full_name);
if (tinfo->reader)
xmlFreeTextReader(tinfo->reader);
odr_destroy(tinfo->odr);
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 */,
p /* I/O handler */,
0 /* URL */,
0 /* encoding */,
- XML_PARSE_XINCLUDE);
+ XML_PARSE_XINCLUDE
+ | XML_PARSE_NOENT
+ | XML_PARSE_NONET);
}
if (!tinfo->reader)
return RECCTRL_EXTRACT_ERROR_GENERIC;
}
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 */,
xmlDocPtr doc = xmlReadIO(ioread_ex, ioclose_ex, p /* I/O handler */,
0 /* URL */,
0 /* encoding */,
- XML_PARSE_XINCLUDE);
+ XML_PARSE_XINCLUDE
+ | XML_PARSE_NOENT
+ | XML_PARSE_NONET);
if (!doc)
if (!doc)
- {
return RECCTRL_EXTRACT_ERROR_GENERIC;
return RECCTRL_EXTRACT_ERROR_GENERIC;
- }
+ /* else {
+ xmlNodePtr root = xmlDocGetRootElement(doc);
+ if (!root)
+ return RECCTRL_EXTRACT_ERROR_GENERIC;
+ } */
+
return extract_doc(tinfo, p, doc);
}
else
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 */,
doc = xmlReadIO(ioread_ret, ioclose_ret, p /* I/O handler */,
0 /* URL */,
0 /* encoding */,
- XML_PARSE_XINCLUDE);
+ XML_PARSE_XINCLUDE | XML_PARSE_NOENT | XML_PARSE_NONET);
if (!doc)
{
p->diagnostic = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS;
if (!doc)
{
p->diagnostic = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS;