X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=recctrl%2Falvis.c;fp=recctrl%2Falvis.c;h=48de318eb0e2d18802b3ce6ac411f6006ed4eca8;hp=ec22ed700d7e5a04986755123d7be04ab06fd356;hb=8de067c78a432ef4fa197fa8240d2aa6d04ff99c;hpb=b1cd24579e181eb399c977fb59ddfdd22a5bc03e diff --git a/recctrl/alvis.c b/recctrl/alvis.c index ec22ed7..48de318 100644 --- a/recctrl/alvis.c +++ b/recctrl/alvis.c @@ -1,4 +1,4 @@ -/* $Id: alvis.c,v 1.15 2006-05-24 18:31:33 adam Exp $ +/* $Id: alvis.c,v 1.16 2006-05-29 13:48:43 marc Exp $ Copyright (C) 1995-2005 Index Data ApS @@ -31,6 +31,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include +#include #include #include @@ -352,11 +353,12 @@ static void index_node(struct filter_info *tinfo, struct recExtractCtrl *ctrl, static void index_record(struct filter_info *tinfo,struct recExtractCtrl *ctrl, xmlNodePtr ptr, RecWord *recWord) { + const char *type_str = "update"; + if (ptr && ptr->type == XML_ELEMENT_NODE && ptr->ns && !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 *rank_str = 0; struct _xmlAttr *attr; @@ -368,17 +370,20 @@ static void index_record(struct filter_info *tinfo,struct recExtractCtrl *ctrl, } if (id_str) sscanf(id_str, "%255s", ctrl->match_criteria); + if (rank_str) - { ctrl->staticrank = atoi(rank_str); - yaz_log(YLOG_LOG, "rank=%d",ctrl->staticrank); - } - else - yaz_log(YLOG_LOG, "no rank"); ptr = ptr->children; } - index_node(tinfo, ctrl, ptr, recWord); + + if (!strcmp("update", type_str)) + index_node(tinfo, ctrl, ptr, recWord); + else if (!strcmp("delete", type_str)) + yaz_log(YLOG_WARN, "alvis filter delete: to be implemented"); + else + yaz_log(YLOG_WARN, "alvis filter: unknown record type '%s'", + type_str); } static int extract_doc(struct filter_info *tinfo, struct recExtractCtrl *p,