X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=util%2Findex_rules.c;h=50cc465b2945bfb659468b2509b529b8049579df;hb=42cd12e606db733d23606480a1ece262ebba77ed;hp=8f2fad32127741eeb18244325d29f41869acf1a9;hpb=2de23570d27a0d5f4683e4c9ebd9c13eab2fc2a1;p=idzebra-moved-to-github.git diff --git a/util/index_rules.c b/util/index_rules.c index 8f2fad3..50cc465 100644 --- a/util/index_rules.c +++ b/util/index_rules.c @@ -1,4 +1,4 @@ -/* $Id: index_rules.c,v 1.1 2007-10-23 12:26:26 adam Exp $ +/* $Id: index_rules.c,v 1.2 2007-10-24 13:55:55 adam Exp $ Copyright (C) 1995-2007 Index Data ApS @@ -26,16 +26,14 @@ #include #include "index_rules.h" -#include "rob_regexp.h" +#include #include #include #include struct zebra_index_rules_s { - WRBUF last_id; #if YAZ_HAVE_XML2 struct zebra_index_rule *rules; - struct zebra_index_rule *last_rule_match; xmlDocPtr doc; #endif }; @@ -112,8 +110,6 @@ zebra_index_rules_t zebra_index_rules_create_doc(xmlDocPtr doc) const xmlNode *top = xmlDocGetRootElement(doc); r->doc = doc; - r->last_rule_match = 0; - r->last_id = wrbuf_alloc(); *rp = 0; if (top && top->type == XML_ELEMENT_NODE && !strcmp((const char *) top->name, "indexrules")) @@ -161,27 +157,19 @@ void zebra_index_rules_destroy(zebra_index_rules_t r) xmlFreeDoc(r->doc); #endif - wrbuf_destroy(r->last_id); xfree(r); } const char *zebra_index_rule_lookup_str(zebra_index_rules_t r, const char *id) { #if YAZ_HAVE_XML2 - if (r->last_rule_match && !strcmp(wrbuf_cstr(r->last_id), id)) - return r->last_rule_match->id; - else - { - struct zebra_index_rule *rule = r->rules; + + struct zebra_index_rule *rule = r->rules; - wrbuf_rewind(r->last_id); - wrbuf_puts(r->last_id, id); - while (rule && !zebra_rob_regexp(rule->id, id)) - rule = rule->next; - r->last_rule_match = rule; - if (rule) - return rule->id; - } + while (rule && !yaz_match_glob(rule->id, id)) + rule = rule->next; + if (rule) + return rule->id; #endif return 0; }