X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Frecgrs.c;h=bc0c97423542c45a537250c5615ed19b6f6b001a;hb=c4e6b0ddb98fc8442bd1ec2b0f4340e99bea18cc;hp=77ce0aeec7fbf10b7306effbb0850b53c50b6e89;hpb=d9a9544ebf605f5141ced91c4cf2c2fc97b93539;p=idzebra-moved-to-github.git diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index 77ce0ae..bc0c974 100644 --- a/recctrl/recgrs.c +++ b/recctrl/recgrs.c @@ -2,7 +2,7 @@ * Copyright (C) 1994-2002, Index Data * All rights reserved. * - * $Id: recgrs.c,v 1.49 2002-05-13 14:13:43 adam Exp $ + * $Id: recgrs.c,v 1.52 2002-07-02 20:20:09 adam Exp $ */ #include @@ -136,7 +136,7 @@ static void index_xpath (data1_node *n, struct recExtractCtrl *p, case DATA1N_tag: for (nn = n; nn; nn = nn->parent) { - if (n->which == DATA1N_tag) + if (nn->which == DATA1N_tag) { size_t tlen = strlen(nn->u.tag.tag); if (tlen + flen > (sizeof(tag_path_full)-2)) @@ -145,7 +145,7 @@ static void index_xpath (data1_node *n, struct recExtractCtrl *p, flen += tlen; tag_path_full[flen++] = '/'; } - else if (n->which == DATA1N_root) + else if (nn->which == DATA1N_root) { size_t tlen = strlen(nn->u.root.type); if (tlen + flen > (sizeof(tag_path_full)-2)) @@ -513,6 +513,8 @@ static int grs_retrieve(void *clientData, struct recRetrieveCtrl *p) char *tagname; struct grs_handlers *h = (struct grs_handlers *) clientData; int requested_schema = VAL_NONE; + data1_marctab *marctab; + int dummy; mem = nmem_create(); gri.readf = p->readf; @@ -615,7 +617,7 @@ static int grs_retrieve(void *clientData, struct recRetrieveCtrl *p) * the overlap of schema and formatting which is inherent in the MARC * family) */ - logf (LOG_DEBUG, "grs_retrieve: syntax mapping"); + yaz_log (LOG_DEBUG, "grs_retrieve: syntax mapping"); if (node->u.root.absyn) for (map = node->u.root.absyn->maptabs; map; map = map->next) { @@ -631,7 +633,7 @@ static int grs_retrieve(void *clientData, struct recRetrieveCtrl *p) break; } } - logf (LOG_DEBUG, "grs_retrieve: schemaIdentifier"); + yaz_log (LOG_DEBUG, "grs_retrieve: schemaIdentifier"); if (node->u.root.absyn && node->u.root.absyn->reference != VAL_NONE && p->input_format == VAL_GRS1) @@ -691,10 +693,20 @@ static int grs_retrieve(void *clientData, struct recRetrieveCtrl *p) switch (p->output_format = (p->input_format != VAL_NONE ? p->input_format : VAL_SUTRS)) { - data1_marctab *marctab; - int dummy; case VAL_TEXT_XML: + data1_mk_tag_data_int (p->dh, node, "idzebra:size", p->recordSize, + mem); + if (p->score != -1) + data1_mk_tag_data_int (p->dh, node, "idzebra:score", + p->score, mem); + + data1_mk_tag_data_int (p->dh, node, "idzebra:localnumber", p->localno, + mem); + if (p->fname) + data1_mk_tag_data_text(p->dh, node, "idzebra:filename", + p->fname, mem); + if (!(p->rec_buf = data1_nodetoidsgml(p->dh, node, selected, &p->rec_len))) p->diagnostic = 238;