X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Fpquery.c;h=eccf10b0e33592a937dfb4330b5fffeb53337d21;hb=3111fa3db35d0d3b76ba0f70a2c9ed83d5114c11;hp=20b93708dd1afe1ca87131e42bb040d42db2d1d7;hpb=3050c29a2d88f6af325f1fb9ae6d0927babf9193;p=yaz-moved-to-github.git diff --git a/util/pquery.c b/util/pquery.c index 20b9370..eccf10b 100644 --- a/util/pquery.c +++ b/util/pquery.c @@ -4,7 +4,25 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: pquery.c,v $ - * Revision 1.2 1995-05-26 08:56:11 adam + * Revision 1.8 1996-01-02 11:46:56 quinn + * Changed 'operator' to 'roperator' to avoid C++ conflict. + * + * Revision 1.7 1995/09/29 17:12:36 quinn + * Smallish + * + * Revision 1.6 1995/09/27 15:03:03 quinn + * Modified function heads & prototypes. + * + * Revision 1.5 1995/06/15 12:31:02 quinn + * *** empty log message *** + * + * Revision 1.4 1995/06/15 07:45:19 quinn + * Moving to v3. + * + * Revision 1.3 1995/06/14 11:06:35 adam + * Bug fix: Attributes wasn't interpreted correctly! + * + * Revision 1.2 1995/05/26 08:56:11 adam * New function: p_query_scan. * * Revision 1.1 1995/05/22 15:31:49 adam @@ -100,14 +118,25 @@ static Z_AttributesPlusTerm *rpn_term (ODR o, int num_attr, int *attr_list) if (num_attr) { int i; + int *attr_tmp; + zapt->attributeList = odr_malloc (o, num_attr * sizeof(*zapt->attributeList)); + + attr_tmp = odr_malloc (o, num_attr * 2 * sizeof(int)); + memcpy (attr_tmp, attr_list, num_attr * 2 * sizeof(int)); for (i = 0; i < num_attr; i++) { zapt->attributeList[i] = odr_malloc (o,sizeof(**zapt->attributeList)); - zapt->attributeList[i]->attributeType = &attr_list[2*i]; - zapt->attributeList[i]->attributeValue = &attr_list[2*i+1]; + zapt->attributeList[i]->attributeType = &attr_tmp[2*i]; +#ifdef Z_95 + zapt->attributeList[i]->attributeSet = 0; + zapt->attributeList[i]->which = Z_AttributeValue_numeric; + zapt->attributeList[i]->value.numeric = &attr_tmp[2*i+1]; +#else + zapt->attributeList[i]->attributeValue = &attr_tmp[2*i+1]; +#endif } } else @@ -158,7 +187,7 @@ static Z_Complex *rpn_complex (ODR o, int num_attr, int max_attr, zc = odr_malloc (o, sizeof(*zc)); zo = odr_malloc (o, sizeof(*zo)); - zc->operator = zo; + zc->roperator = zo; switch (query_look) { case 'a':