X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=retrieval%2Fd1_doespec.c;h=1f115b5524bc059a4c4d74dfd5982024c29b41dd;hb=03cb3a09ea39f9852123c7ef5ee6357950b0d2b8;hp=5914a678db5dc9b0fed4414c73a740e6fba5690f;hpb=85a2e7affad79fd8bd59b403ba7b5f7867d60523;p=yaz-moved-to-github.git diff --git a/retrieval/d1_doespec.c b/retrieval/d1_doespec.c index 5914a67..1f115b5 100644 --- a/retrieval/d1_doespec.c +++ b/retrieval/d1_doespec.c @@ -4,7 +4,16 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: d1_doespec.c,v $ - * Revision 1.7 1997-04-30 08:52:11 quinn + * Revision 1.10 1997-10-02 12:10:24 quinn + * Attempt to fix bug in especs + * + * Revision 1.9 1997/09/17 12:10:35 adam + * YAZ version 1.4. + * + * Revision 1.8 1997/05/14 06:54:02 adam + * C++ support. + * + * Revision 1.7 1997/04/30 08:52:11 quinn * Null * * Revision 1.6 1996/10/11 11:57:22 quinn @@ -48,7 +57,7 @@ static int match_children_wildpath(data1_node *n, Z_Espec1 *e, int i, * triple with an unknown set. */ static Z_Triple *find_triple(Z_Variant *var, oid_value universalset, - oid_value set, int class, int type) + oid_value set, int zclass, int type) { int i; oident *defaultsetent = oid_getentbyoid(var->globalVariantSetId); @@ -62,7 +71,7 @@ static Z_Triple *find_triple(Z_Variant *var, oid_value universalset, oid_value curset = cursetent ? cursetent->value : defaultset; if (set == curset && - *var->triples[i]->class == class && + *var->triples[i]->zclass == zclass && *var->triples[i]->type == type) return var->triples[i]; } @@ -74,7 +83,17 @@ static void mark_subtree(data1_node *n, int make_variantlist, int no_data, { data1_node *c; +#if 1 + if (n->which == DATA1N_tag) +#else if (n->which == DATA1N_tag && (!n->child || n->child->which != DATA1N_tag)) + /* + * This seems to cause multi-level elements to fall out when only a + * top-level elementRequest has been given... Problem is, I can't figure + * out what it was supposed to ACHIEVE.... delete when code has been + * verified. + */ +#endif { n->u.tag.node_selected = 1; n->u.tag.make_variantlist = make_variantlist; @@ -232,7 +251,7 @@ static int match_children(data1_node *n, Z_Espec1 *e, int i, Z_ETagUnit **t, return res; } -int data1_doespec1(data1_node *n, Z_Espec1 *e) +int data1_doespec1 (data1_handle dh, data1_node *n, Z_Espec1 *e) { int i;