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
Align alvis with xslt (again).
[idzebra-moved-to-github.git]
/
recctrl
/
alvis.c
diff --git
a/recctrl/alvis.c
b/recctrl/alvis.c
index
d2a7aba
..
8cdc8eb
100644
(file)
--- a/
recctrl/alvis.c
+++ b/
recctrl/alvis.c
@@
-1,4
+1,4
@@
-/* $Id: alvis.c,v 1.5 2005-08-19 21:40:17 adam Exp $
+/* $Id: alvis.c,v 1.6 2005-08-22 09:03:34 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
Copyright (C) 1995-2005
Index Data ApS
@@
-57,6
+57,9
@@
struct filter_info {
#define ZEBRA_SCHEMA_XSLT_NS "http://indexdata.dk/zebra/xslt/1"
#define ZEBRA_SCHEMA_XSLT_NS "http://indexdata.dk/zebra/xslt/1"
+#define XML_STRCMP(a,b) strcmp((char*)a, b)
+#define XML_STRLEN(a) strlen((char*)a)
+
static const char *zebra_xslt_ns = ZEBRA_SCHEMA_XSLT_NS;
static void set_param_xml(const char **params, const char *name,
static const char *zebra_xslt_ns = ZEBRA_SCHEMA_XSLT_NS;
static void set_param_xml(const char **params, const char *name,
@@
-93,9
+96,12
@@
static void set_param_int(const char **params, const char *name,
params[2] = 0;
}
params[2] = 0;
}
+#define ENABLE_INPUT_CALLBACK 1
+
+#if ENABLE_INPUT_CALLBACK
static int zebra_xmlInputMatchCallback (char const *filename)
{
static int zebra_xmlInputMatchCallback (char const *filename)
{
- /* yaz_log(YLOG_LOG, "match %s", filename); */
+ yaz_log(YLOG_LOG, "match %s", filename);
return 0;
}
return 0;
}
@@
-113,8
+119,9
@@
static int zebra_xmlInputCloseCallback (void * context)
{
return 0;
}
{
return 0;
}
+#endif
-static void *filter_init_xslt(Res res, RecType recType)
+static void *filter_init(Res res, RecType recType)
{
struct filter_info *tinfo = (struct filter_info *) xmalloc(sizeof(*tinfo));
tinfo->reader = 0;
{
struct filter_info *tinfo = (struct filter_info *) xmalloc(sizeof(*tinfo));
tinfo->reader = 0;
@@
-125,7
+132,7
@@
static void *filter_init_xslt(Res res, RecType recType)
tinfo->doc = 0;
tinfo->schemas = 0;
tinfo->doc = 0;
tinfo->schemas = 0;
-#if 0
+#if ENABLE_INPUT_CALLBACK
xmlRegisterDefaultInputCallbacks();
xmlRegisterInputCallbacks(zebra_xmlInputMatchCallback,
zebra_xmlInputOpenCallback,
xmlRegisterDefaultInputCallbacks();
xmlRegisterInputCallbacks(zebra_xmlInputMatchCallback,
zebra_xmlInputOpenCallback,
@@
-138,10
+145,10
@@
static void *filter_init_xslt(Res res, RecType recType)
static int attr_content(struct _xmlAttr *attr, const char *name,
const char **dst_content)
{
static int attr_content(struct _xmlAttr *attr, const char *name,
const char **dst_content)
{
- if (!strcmp(attr->name, name) && attr->children &&
+ if (!XML_STRCMP(attr->name, name) && attr->children &&
attr->children->type == XML_TEXT_NODE)
{
attr->children->type == XML_TEXT_NODE)
{
- *dst_content = attr->children->content;
+ *dst_content = (const char *)(attr->children->content);
return 1;
}
return 0;
return 1;
}
return 0;
@@
-174,13
+181,13
@@
static ZEBRA_RES create_schemas(struct filter_info *tinfo, const char *fname)
return ZEBRA_FAIL;
ptr = xmlDocGetRootElement(tinfo->doc);
if (!ptr || ptr->type != XML_ELEMENT_NODE ||
return ZEBRA_FAIL;
ptr = xmlDocGetRootElement(tinfo->doc);
if (!ptr || ptr->type != XML_ELEMENT_NODE ||
- strcmp(ptr->name, "schemaInfo"))
+ XML_STRCMP(ptr->name, "schemaInfo"))
return ZEBRA_FAIL;
for (ptr = ptr->children; ptr; ptr = ptr->next)
{
if (ptr->type != XML_ELEMENT_NODE)
continue;
return ZEBRA_FAIL;
for (ptr = ptr->children; ptr; ptr = ptr->next)
{
if (ptr->type != XML_ELEMENT_NODE)
continue;
- if (!strcmp(ptr->name, "schema"))
+ if (!XML_STRCMP(ptr->name, "schema"))
{
struct _xmlAttr *attr;
struct filter_schema *schema = xmalloc(sizeof(*schema));
{
struct _xmlAttr *attr;
struct filter_schema *schema = xmalloc(sizeof(*schema));
@@
-205,7
+212,7
@@
static ZEBRA_RES create_schemas(struct filter_info *tinfo, const char *fname)
xsltParseStylesheetFile(
(const xmlChar*) schema->stylesheet);
}
xsltParseStylesheetFile(
(const xmlChar*) schema->stylesheet);
}
- else if (!strcmp(ptr->name, "split"))
+ else if (!XML_STRCMP(ptr->name, "split"))
{
struct _xmlAttr *attr;
for (attr = ptr->properties; attr; attr = attr->next)
{
struct _xmlAttr *attr;
for (attr = ptr->properties; attr; attr = attr->next)
@@
-282,8
+289,8
@@
static void index_cdata(struct filter_info *tinfo, struct recExtractCtrl *ctrl,
index_cdata(tinfo, ctrl, ptr->children, recWord);
if (ptr->type != XML_TEXT_NODE)
continue;
index_cdata(tinfo, ctrl, ptr->children, recWord);
if (ptr->type != XML_TEXT_NODE)
continue;
- recWord->term_buf = ptr->content;
- recWord->term_len = strlen(ptr->content);
+ recWord->term_buf = (const char *)ptr->content;
+ recWord->term_len = XML_STRLEN(ptr->content);
(*ctrl->tokenAdd)(recWord);
}
}
(*ctrl->tokenAdd)(recWord);
}
}
@@
-295,9
+302,9
@@
static void index_node(struct filter_info *tinfo, struct recExtractCtrl *ctrl,
{
index_node(tinfo, ctrl, ptr->children, recWord);
if (ptr->type != XML_ELEMENT_NODE || !ptr->ns ||
{
index_node(tinfo, ctrl, ptr->children, recWord);
if (ptr->type != XML_ELEMENT_NODE || !ptr->ns ||
- strcmp(ptr->ns->href, zebra_xslt_ns))
+ XML_STRCMP(ptr->ns->href, zebra_xslt_ns))
continue;
continue;
- if (!strcmp(ptr->name, "index"))
+ if (!XML_STRCMP(ptr->name, "index"))
{
const char *name_str = 0;
const char *type_str = 0;
{
const char *name_str = 0;
const char *type_str = 0;
@@
-328,8
+335,8
@@
static void index_record(struct filter_info *tinfo,struct recExtractCtrl *ctrl,
xmlNodePtr ptr, RecWord *recWord)
{
if (ptr && ptr->type == XML_ELEMENT_NODE && ptr->ns &&
xmlNodePtr ptr, RecWord *recWord)
{
if (ptr && ptr->type == XML_ELEMENT_NODE && ptr->ns &&
- !strcmp(ptr->ns->href, zebra_xslt_ns)
- && !strcmp(ptr->name, "record"))
+ !XML_STRCMP(ptr->ns->href, zebra_xslt_ns)
+ && !XML_STRCMP(ptr->name, "record"))
{
const char *type_str = "update";
const char *id_str = 0;
{
const char *type_str = "update";
const char *id_str = 0;
@@
-433,11
+440,11
@@
static int extract_split(struct filter_info *tinfo, struct recExtractCtrl *p)
{
xmlNodePtr ptr = xmlTextReaderExpand(tinfo->reader);
xmlNodePtr ptr2 = xmlCopyNode(ptr, 1);
{
xmlNodePtr ptr = xmlTextReaderExpand(tinfo->reader);
xmlNodePtr ptr2 = xmlCopyNode(ptr, 1);
- xmlDocPtr doc = xmlNewDoc("1.0");
+ xmlDocPtr doc = xmlNewDoc((const xmlChar*) "1.0");
xmlDocSetRootElement(doc, ptr2);
xmlDocSetRootElement(doc, ptr2);
- return extract_doc(tinfo, p, doc);
+ return extract_doc(tinfo, p, doc);
}
ret = xmlTextReaderRead(tinfo->reader);
}
}
ret = xmlTextReaderRead(tinfo->reader);
}
@@
-643,10
+650,10
@@
static int filter_retrieve (void *clientData, struct recRetrieveCtrl *p)
return 0;
}
return 0;
}
-static struct recType filter_type_alvis = {
+static struct recType filter_type = {
0,
"alvis",
0,
"alvis",
- filter_init_xslt,
+ filter_init,
filter_config,
filter_destroy,
filter_extract,
filter_config,
filter_destroy,
filter_extract,
@@
-661,6
+668,6
@@
idzebra_filter
#endif
[] = {
#endif
[] = {
- &filter_type_alvis,
+ &filter_type,
0,
};
0,
};