X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=retrieval%2Fd1_absyn.c;h=453e9f190e335c8508a4c3d6b37814ca5c39ac4a;hb=4ed0df89283b51f12daddfcce1eff246e6962a08;hp=a708df617c590120ea3b67063875378cd35cb9cf;hpb=e77a0b69d06145878c5ba474b1ec0293e6015a18;p=yaz-moved-to-github.git diff --git a/retrieval/d1_absyn.c b/retrieval/d1_absyn.c index a708df6..453e9f1 100644 --- a/retrieval/d1_absyn.c +++ b/retrieval/d1_absyn.c @@ -4,7 +4,13 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: d1_absyn.c,v $ - * Revision 1.5 1996-05-09 07:27:43 quinn + * Revision 1.7 1996-06-10 08:56:01 quinn + * Work on Summary. + * + * Revision 1.6 1996/05/31 13:52:21 quinn + * Fixed uninitialized variable for local tags in abstract syntax. + * + * Revision 1.5 1996/05/09 07:27:43 quinn * Multiple local attributes values supported. * * Revision 1.4 1996/05/01 12:45:28 quinn @@ -113,7 +119,7 @@ data1_absyn *data1_read_absyn(char *file) char line[512], *r, cmd[512], args[512]; data1_absyn *res = 0; FILE *f; - data1_element **ppl[D1_MAX_NESTING]; + data1_element **ppl[D1_MAX_NESTING], *cur[D1_MAX_NESTING]; data1_esetname **esetpp; data1_maptab **maptabp; data1_marctab **marcp; @@ -139,6 +145,7 @@ data1_absyn *data1_read_absyn(char *file) marcp = &res->marc; res->elements = 0; ppl[0] = &res->elements; + cur[0] = 0; esetpp = &res->esetnames; for (;;) @@ -184,16 +191,17 @@ data1_absyn *data1_read_absyn(char *file) } if (i > level + 1) { - logf(LOG_WARN, "Bad level inc in %s in '%'", file, args); + logf(LOG_WARN, "Bad level inc in %s in '%s'", file, args); fclose(f); return 0; } level = i; - if (!(new = *ppl[level] = xmalloc(sizeof(*new)))) + if (!(new = cur[level] = *ppl[level] = xmalloc(sizeof(*new)))) abort; new->next = new->children = 0; new->tag = 0; new->termlists = 0; + new->parent = level ? cur[level - 1] : 0; tp = &new->termlists; ppl[level] = &new->next; ppl[level+1] = &new->children; @@ -225,6 +233,8 @@ data1_absyn *data1_read_absyn(char *file) nt->names->name = nt->value.string; nt->names->next = 0; nt->kind = DATA1K_string; + nt->next = 0; + nt->tagset = 0; } else {