X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=index%2Falvis.c;h=a752890d8acc320f689435f3f7a99e7c7f5145ae;hp=10c603af118dd304e7dca76e8cad9fc58046e128;hb=78b13a3ac6a79768fb609c14db2a8e0c94a9c4da;hpb=40294b8507793f9447a647bfe2f961d232091456 diff --git a/index/alvis.c b/index/alvis.c index 10c603a..a752890 100644 --- a/index/alvis.c +++ b/index/alvis.c @@ -1,8 +1,5 @@ -/* $Id: alvis.c,v 1.18 2007-08-21 07:49:18 adam Exp $ - Copyright (C) 1995-2007 - Index Data ApS - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) 1995-2008 Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -72,16 +69,6 @@ struct filter_info { static const char *zebra_xslt_ns = ZEBRA_SCHEMA_XSLT_NS; -static void set_param_xml(const char **params, const char *name, - const char *value, ODR odr) -{ - while (*params) - params++; - params[0] = name; - params[1] = value; - params[2] = 0; -} - static void set_param_str(const char **params, const char *name, const char *value, ODR odr) { @@ -398,10 +385,10 @@ static void index_node(struct filter_info *tinfo, struct recExtractCtrl *ctrl, } if (name_str) { - int prev_type = recWord->index_type; /* save default type */ + const char *prev_type = recWord->index_type; /* save default type */ if (type_str && *type_str) - recWord->index_type = *type_str; /* type was given */ + recWord->index_type = (const char *) type_str; /* type was given */ recWord->index_name = name_str; index_cdata(tinfo, ctrl, ptr->children, recWord); @@ -487,7 +474,8 @@ static int extract_doc(struct filter_info *tinfo, struct recExtractCtrl *p, xmlDocDumpMemory(doc, &buf_out, &len_out); if (p->flagShowRecords) fwrite(buf_out, len_out, 1, stdout); - (*p->setStoreData)(p, buf_out, len_out); + if (p->setStoreData) + (*p->setStoreData)(p, buf_out, len_out); xmlFree(buf_out); xmlFreeDoc(doc); @@ -573,7 +561,7 @@ static int filter_extract(void *clientData, struct recExtractCtrl *p) struct filter_info *tinfo = clientData; odr_reset(tinfo->odr); - if (tinfo->split_level == 0) + if (tinfo->split_level == 0 || p->setStoreData == 0) return extract_full(tinfo, p); else return extract_split(tinfo, p);