updated Deb control description so that IDZebra is not mentioned
[idzebra-moved-to-github.git] / index / alvis.c
index 10c603a..a752890 100644 (file)
@@ -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);