X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Frecgrs.c;h=ea2dff03b4c3e7e6af924bef2c1988ea7cd9a3dc;hb=886253fb90810e512cacf4f02694645ead7a22e0;hp=03fb6d57d90846e6685300675c4b804b5f951ce3;hpb=df117f4652b6999cf689cf5e2e65f8d8541ab4b0;p=idzebra-moved-to-github.git diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index 03fb6d5..ea2dff0 100644 --- a/recctrl/recgrs.c +++ b/recctrl/recgrs.c @@ -1,10 +1,24 @@ /* - * 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.38 2000-12-05 14:44:58 adam + * Revision 1.43 2002-03-21 23:06:36 adam + * Source 'tag' in abs-file + * + * 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. * @@ -337,6 +351,11 @@ static void index_tag (data1_node *par, data1_node *n, wrd->string = n->u.data.data; wrd->length = n->u.data.len; } + else if (!strcmp (tlist->source, "tag") && n->which == DATA1N_tag) + { + wrd->string = n->u.tag.tag; + wrd->length = strlen(n->u.tag.tag); + } else if (sscanf (tlist->source, "attr(%511[^)])", xattr) == 1 && n->which == DATA1N_tag) { @@ -497,10 +516,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); @@ -776,6 +800,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))