X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=ccl%2Fcclfind.c;h=5702322b5c0ce90ce1293d3a7850723201afd657;hb=26d07328e36c41d39216d66d742d133cf7512995;hp=ec5e650e56f284b88494a61de4e2d4b986d39b29;hpb=e5324215018e129dd19734acd0e683e5af748423;p=yaz-moved-to-github.git diff --git a/ccl/cclfind.c b/ccl/cclfind.c index ec5e650..5702322 100644 --- a/ccl/cclfind.c +++ b/ccl/cclfind.c @@ -45,7 +45,14 @@ * Europagate, 1995 * * $Log: cclfind.c,v $ - * Revision 1.21 2001-02-21 13:46:53 adam + * Revision 1.23 2001-03-20 11:22:58 adam + * CCL Truncation character may be defined. + * + * Revision 1.22 2001/03/07 13:24:40 adam + * Member and_not in Z_Operator is kept for backwards compatibility. + * Added support for definition of CCL operators in field spec file. + * + * Revision 1.21 2001/02/21 13:46:53 adam * C++ fixes. * * Revision 1.20 2000/11/16 13:03:12 adam @@ -330,6 +337,12 @@ static struct ccl_rpn_node *search_term_x (CCL_parser cclp, int and_list = 0; int or_list = 0; char *attset; + const char *truncation_aliases; + + truncation_aliases = + ccl_qual_search_special(cclp->bibset, "truncation"); + if (!truncation_aliases) + truncation_aliases = "?"; if (!qa) { @@ -367,7 +380,8 @@ static struct ccl_rpn_node *search_term_x (CCL_parser cclp, for (no = 0; no < max && is_term_ok(lookahead->kind, term_list); no++) { for (i = 0; ilen; i++) - if (truncation_value == -1 && lookahead->name[i] == '?') + if (truncation_value == -1 && strchr(truncation_aliases, + lookahead->name[i])) { if (no == 0 && i == 0 && lookahead->len >= 1) left_trunc = 1; @@ -905,6 +919,8 @@ struct ccl_rpn_node *ccl_parser_find (CCL_parser cclp, struct ccl_token *list) { struct ccl_rpn_node *p; + + cclp->look_token = list; p = find_spec (cclp, NULL); if (p && KIND != CCL_TOK_EOL)