X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Fmarcread.c;h=b3f5190b1388f47d7164b458b6dcec3edfe76144;hb=0851370c56015b5a552402a71ecc48c9bbe23989;hp=c85a951bb9b44cf7fafc94b9e8073bc1fd69f536;hpb=d9a9544ebf605f5141ced91c4cf2c2fc97b93539;p=idzebra-moved-to-github.git diff --git a/recctrl/marcread.c b/recctrl/marcread.c index c85a951..b3f5190 100644 --- a/recctrl/marcread.c +++ b/recctrl/marcread.c @@ -3,7 +3,7 @@ * All rights reserved. * Sebastian Hammer, Adam Dickmeiss * - * $Id: marcread.c,v 1.14 2002-05-13 14:13:43 adam Exp $ + * $Id: marcread.c,v 1.16 2002-07-05 12:43:30 adam Exp $ */ #include #include @@ -31,8 +31,7 @@ data1_node *grs_read_marc (struct grs_read_info *p) #if MARC_DEBUG FILE *outf = stdout; #endif - - data1_node *res_root; + data1_node *res_root, *res_top; char *absynName; data1_marctab *marctab; @@ -66,6 +65,7 @@ data1_node *grs_read_marc (struct grs_read_info *p) yaz_log (LOG_WARN, "cannot read MARC without an abstract syntax"); return 0; } + res_top = data1_mk_tag (p->dh, p->mem, absynName, 0, res_root); marctab = res_root->u.root.absyn->marc; @@ -94,7 +94,7 @@ data1_node *grs_read_marc (struct grs_read_info *p) int i, i0; char tag[4]; data1_node *res; - data1_node *parent = res_root; + data1_node *parent = res_top; memcpy (tag, buf+entry_p, 3); entry_p += 3; @@ -102,7 +102,7 @@ data1_node *grs_read_marc (struct grs_read_info *p) /* generate field node */ - res = data1_mk_tag_n (p->dh, p->mem, tag, 3, 0 /* attr */, res_root); + res = data1_mk_tag_n (p->dh, p->mem, tag, 3, 0 /* attr */, parent); #if MARC_DEBUG fprintf (outf, "%s ", tag); @@ -168,9 +168,7 @@ data1_node *grs_read_marc (struct grs_read_info *p) } if (i > i0) { - data1_node *res = data1_mk_tag (p->dh, p->mem, "@", 0 /* attr */, - parent); - data1_mk_text_n (p->dh, p->mem, buf + i0, i - i0, res); + data1_mk_text_n (p->dh, p->mem, buf + i0, i - i0, parent); } #if MARC_DEBUG fprintf (outf, "\n");