X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Frecgrs.c;h=46821bcbe9a5d9501f7904fd9feb31cc54ef9ff1;hb=687f4b034335c161ed1b7b04275857c7fbc69211;hp=5029f6f2e65abed82384b68995bf9170d11a0862;hpb=0b006645a0dbbd7a55d1ddcc1c2c57f83661479a;p=idzebra-moved-to-github.git diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index 5029f6f..46821bc 100644 --- a/recctrl/recgrs.c +++ b/recctrl/recgrs.c @@ -4,7 +4,13 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: recgrs.c,v $ - * Revision 1.11 1997-10-27 14:34:00 adam + * Revision 1.13 1997-10-31 12:35:44 adam + * Added a few log statements. + * + * Revision 1.12 1997/10/29 12:02:22 adam + * Using oid_ent_to_oid used instead of the non thread-safe oid_getoidbyent. + * + * Revision 1.11 1997/10/27 14:34:00 adam * Work on generic character mapping depending on "structure" field * in abstract syntax file. * @@ -396,10 +402,11 @@ static int dumpkeys(data1_node *n, struct recExtractCtrl *p, int level) static int grs_extract(struct recExtractCtrl *p) { data1_node *n; - NMEM mem = nmem_create(); + NMEM mem; struct grs_read_info gri; seqno = 0; + mem = nmem_create (); gri.readf = p->readf; gri.seekf = p->seekf; gri.tellf = p->tellf; @@ -496,9 +503,10 @@ static int grs_retrieve(struct recRetrieveCtrl *p) data1_node *new; data1_maptab *map; int res, selected = 0; - NMEM mem = nmem_create(); + NMEM mem; struct grs_read_info gri; + mem = nmem_create(); gri.readf = p->readf; gri.seekf = p->seekf; gri.tellf = p->tellf; @@ -508,12 +516,15 @@ static int grs_retrieve(struct recRetrieveCtrl *p) gri.mem = mem; gri.dh = p->dh; + logf (LOG_DEBUG, "grs_retrieve"); node = read_grs_type (&gri, p->subType); if (!node) { p->diagnostic = 2; + nmem_destroy (mem); return 0; } + logf (LOG_DEBUG, "grs_retrieve: score"); if (p->score >= 0 && (new = data1_insert_taggeddata(p->dh, node, node, "rank", @@ -524,6 +535,7 @@ static int grs_retrieve(struct recRetrieveCtrl *p) sprintf(new->u.data.data, "%d", p->score); new->u.data.len = strlen(new->u.data.data); } + logf (LOG_DEBUG, "grs_retrieve: localControlNumber"); if ((new = data1_insert_taggeddata(p->dh, node, node, "localControlNumber", mem))) { @@ -532,17 +544,19 @@ static int grs_retrieve(struct recRetrieveCtrl *p) sprintf(new->u.data.data, "%d", p->localno); new->u.data.len = strlen(new->u.data.data); } + logf (LOG_DEBUG, "grs_retrieve: schemaIdentifier"); if (p->input_format == VAL_GRS1 && node->u.root.absyn && node->u.root.absyn->reference != VAL_NONE) { oident oe; Odr_oid *oid; + int oidtmp[OID_SIZE]; oe.proto = PROTO_Z3950; oe.oclass = CLASS_SCHEMA; oe.value = node->u.root.absyn->reference; - if ((oid = oid_getoidbyent(&oe))) + if ((oid = oid_ent_to_oid (&oe, oidtmp))) { char tmp[128]; data1_handle dh = p->dh; @@ -569,6 +583,7 @@ static int grs_retrieve(struct recRetrieveCtrl *p) } } + logf (LOG_DEBUG, "grs_retrieve: schema mapping"); /* * Does the requested format match a known schema-mapping? (this reflects * the overlap of schema and formatting which is inherent in the MARC @@ -583,12 +598,13 @@ static int grs_retrieve(struct recRetrieveCtrl *p) if (!(node = data1_map_record(p->dh, onode, map, mem))) { p->diagnostic = 14; + nmem_destroy (mem); return 0; } - break; } + logf (LOG_DEBUG, "grs_retrieve: element spec"); if (p->comp && (res = process_comp(p->dh, node, p->comp)) > 0) { p->diagnostic = res; @@ -601,6 +617,7 @@ static int grs_retrieve(struct recRetrieveCtrl *p) else if (p->comp && !res) selected = 1; + logf (LOG_DEBUG, "grs_retrieve: transfer syntax mapping"); switch (p->output_format = (p->input_format != VAL_NONE ? p->input_format : VAL_SUTRS)) {