Work on new API. Locking system re-implemented
[idzebra-moved-to-github.git] / recctrl / recgrs.c
index aaa7cba..57b144b 100644 (file)
@@ -1,10 +1,25 @@
 /*
- * Copyright (C) 1994-2000, Index Data
+ * Copyright (C) 1994-2001, Index Data
  * All rights reserved.
- * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: recgrs.c,v $
- * Revision 1.37  2000-12-05 12:22:53  adam
+ * Revision 1.42  2002-02-20 17:30:01  adam
+ * Work on new API. Locking system re-implemented
+ *
+ * Revision 1.41  2001/05/22 21:01:47  adam
+ * Removed print of data1 tree on stdout so that inetd works again.
+ *
+ * Revision 1.40  2001/03/29 21:31:31  adam
+ * Fixed "record begin" for Tcl filter.
+ *
+ * Revision 1.39  2000/12/05 19:09:15  adam
+ * Fixed problem where indexer could crash if abstract syntax was undefined.
+ *
+ * Revision 1.38  2000/12/05 14:44:58  adam
+ * Fixed minor bug that could cause zmbol to break it data were emitted
+ * with not parent tags.
+ *
+ * Revision 1.37  2000/12/05 12:22:53  adam
  * Termlist source implemented (so that we can index values of XML/SGML
  * attributes).
  *
@@ -444,10 +459,9 @@ static int dumpkeys(data1_node *n, struct recExtractCtrl *p, int level)
                    printf("NULL\n");
            }
 
-           assert(par);
-
-           index_tag (par, n, p, level, &wrd);
-       }
+           if (par)
+               index_tag (par, n, p, level, &wrd);
+       }
        if (p->flagShowRecords && n->which == DATA1N_root)
        {
            printf("%*s-------------\n\n", level * 4, "");
@@ -494,10 +508,15 @@ static int grs_extract_sub(struct grs_handlers *h, struct recExtractCtrl *p,
         return RECCTRL_EXTRACT_EOF;
     oe.proto = PROTO_Z3950;
     oe.oclass = CLASS_SCHEMA;
+    if (!n->u.root.absyn)
+        return RECCTRL_EXTRACT_ERROR;
     oe.value = n->u.root.absyn->reference;
     if ((oid_ent_to_oid (&oe, oidtmp)))
        (*p->schemaAdd)(p, oidtmp);
 
+#if 0
+    data1_pr_tree (p->dh, n, stdout);
+#endif
     if (dumpkeys(n, p, 0) < 0)
     {
        data1_free_tree(p->dh, n);
@@ -773,6 +792,9 @@ static int grs_retrieve(void *clientData, struct recRetrieveCtrl *p)
     else if (p->comp && !res)
        selected = 1;
 
+#if 0
+    data1_pr_tree (p->dh, node, stdout);
+#endif
     logf (LOG_DEBUG, "grs_retrieve: transfer syntax mapping");
     switch (p->output_format = (p->input_format != VAL_NONE ?
                                p->input_format : VAL_SUTRS))