X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Frpn2cql.c;h=9fedba654d0ac1788d5e6dda1ed3e77b07147a16;hb=3c287bc1d48ee6a1f300054c2cebd0ba312bd5b9;hp=03963f437224e8fdf302255df16827f8fabd1fe5;hpb=e1f778342e0563a5cf8e5ca34d5be264afa1340e;p=yaz-moved-to-github.git diff --git a/src/rpn2cql.c b/src/rpn2cql.c index 03963f4..9fedba6 100644 --- a/src/rpn2cql.c +++ b/src/rpn2cql.c @@ -192,11 +192,14 @@ static int rpn2cql_simple(cql_transform_t ct, Z_Term *term = apt->term; const char *sterm = 0; size_t lterm = 0; + Odr_int trunc = lookup_truncation(apt->attributes); + size_t i; + int must_quote = 0; wrbuf_rewind(w); ret = rpn2cql_attr(ct, apt->attributes, w); - switch(term->which) + switch (term->which) { case Z_Term_general: lterm = term->u.general->len; @@ -210,25 +213,17 @@ static int rpn2cql_simple(cql_transform_t ct, lterm = strlen(sterm); break; default: - ret = -1; cql_transform_set_error(ct, YAZ_BIB1_TERM_TYPE_UNSUPP, 0); + return -1; } - if (term) + if (trunc <= 3 || trunc == 100 || trunc == 102 || trunc == 104) { - size_t i; - int must_quote = 0; - Odr_int trunc = lookup_truncation(apt->attributes); - - if (trunc > 3 && trunc != 100 && trunc != 102) - { - cql_transform_set_error( - ct, YAZ_BIB1_UNSUPP_TRUNCATION_ATTRIBUTE, 0); - ret = -1; - } for (i = 0 ; i < lterm; i++) if (strchr(" ()=>u.complex->roperator; + Z_ProximityOperator *prox; int r; if (nested) @@ -301,7 +307,7 @@ static int rpn2cql_structure(cql_transform_t ct, break; case Z_Operator_prox: { pr(" prox", client_data); - Z_ProximityOperator *prox = op->u.prox; + prox = op->u.prox; /* No way to express Odr_bool *exclusion -- ignore it */ if (prox->distance) { char buf[21]; /* Enough for any 64-bit int */