X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=zutil%2Fyaz-ccl.c;h=d6725034c4f2a35815f3f1638b7bb799fe62d319;hp=440972f3231a9d3bc2304230dfc62cd35727717f;hb=e5324215018e129dd19734acd0e683e5af748423;hpb=ece0783e15e266f33b30db9d55b2dcdbacb55ac6 diff --git a/zutil/yaz-ccl.c b/zutil/yaz-ccl.c index 440972f..d672503 100644 --- a/zutil/yaz-ccl.c +++ b/zutil/yaz-ccl.c @@ -1,10 +1,16 @@ /* - * Copyright (c) 1996-2000, Index Data. + * Copyright (c) 1996-2001, Index Data. * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * * $Log: yaz-ccl.c,v $ - * Revision 1.9 2000-11-27 14:16:55 adam + * Revision 1.11 2001-02-21 13:46:54 adam + * C++ fixes. + * + * Revision 1.10 2001/02/20 11:23:50 adam + * Updated ccl_pquery to consider local attribute set too. + * + * Revision 1.9 2000/11/27 14:16:55 adam * Fixed bug in ccl_rpn_simple regarding resultSetId's. * * Revision 1.8 2000/11/16 13:03:13 adam @@ -105,7 +111,7 @@ static Z_AttributesPlusTerm *ccl_rpn_term (ODR o, struct ccl_rpn_node *p) ident.oclass = CLASS_ATTSET; ident.proto = PROTO_Z3950; - ident.value = value; + ident.value = (oid_value) value; elements[i]->attributeSet = odr_oiddup (o, oid_ent_to_oid (&ident, oid)); } @@ -169,15 +175,15 @@ static Z_Complex *ccl_rpn_complex (ODR o, struct ccl_rpn_node *p) { case CCL_RPN_AND: zo->which = Z_Operator_and; - zo->u.and = odr_nullval(); + zo->u.op_and = odr_nullval(); break; case CCL_RPN_OR: zo->which = Z_Operator_or; - zo->u.and = odr_nullval(); + zo->u.op_or = odr_nullval(); break; case CCL_RPN_NOT: zo->which = Z_Operator_and_not; - zo->u.and = odr_nullval(); + zo->u.op_and_not = odr_nullval(); break; case CCL_RPN_PROX: zo->which = Z_Operator_prox; @@ -199,7 +205,7 @@ static Z_Complex *ccl_rpn_complex (ODR o, struct ccl_rpn_node *p) *zo->u.prox->relationType = Z_ProximityOperator_Prox_lessThan; zo->u.prox->which = Z_ProximityOperator_known; zo->u.prox->u.known = - odr_malloc (o, sizeof(*zo->u.prox->u.known)); + (Z_ProxUnit *) odr_malloc (o, sizeof(*zo->u.prox->u.known)); *zo->u.prox->u.known = Z_ProxUnit_word; #else *zo->u.prox->relationType = Z_Prox_lessThan; @@ -308,7 +314,13 @@ void ccl_pquery (WRBUF w, struct ccl_rpn_node *p) for (att = p->u.t.attr_list; att; att = att->next) { char tmpattr[128]; - sprintf(tmpattr, "@attr %d=%d ", att->type, att->value); + wrbuf_puts (w, "@attr "); + if (att->set) + { + wrbuf_puts (w, att->set); + wrbuf_puts (w, " "); + } + sprintf(tmpattr, "%d=%d ", att->type, att->value); wrbuf_puts (w, tmpattr); } wrbuf_puts (w, "{");