X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Frecgrs.c;h=57b144bcaaf7e9dba836c7cc6561071a13f2214c;hb=5adb31268b057741850de38eafd42baf8dc947ea;hp=aaa7cbae9004e2f500daa41b559c4513c41b55dc;hpb=ee469875edc1db23aae63746ec9fff6a7be8d4ab;p=idzebra-moved-to-github.git diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index aaa7cba..57b144b 100644 --- a/recctrl/recgrs.c +++ b/recctrl/recgrs.c @@ -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))