X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fcclfind.c;h=30abcbe21e64e22fbf4851e6e15a7ad42b94b9e1;hp=efc094cd5607eb08c61dbde88379013f124415f8;hb=7d7e192def2fef342d235ea894eddb1e89edd714;hpb=65371f5d5f265a4c5ee43f784b2d8a6db1e0774a diff --git a/src/cclfind.c b/src/cclfind.c index efc094c..30abcbe 100644 --- a/src/cclfind.c +++ b/src/cclfind.c @@ -1,8 +1,6 @@ -/* - * Copyright (C) 1995-2008, Index Data ApS +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2011 Index Data * See the file LICENSE for details. - * - * $Id: cclfind.c,v 1.15 2008-01-09 21:32:27 adam Exp $ */ /** * \file cclfind.c @@ -13,6 +11,9 @@ * of lookahead in the handling of relational operations.. So * it's not really pure. */ +#if HAVE_CONFIG_H +#include +#endif #include #include @@ -249,15 +250,14 @@ static struct ccl_rpn_node *search_term_x(CCL_parser cclp, struct ccl_rpn_node *p; size_t no, i; int no_spaces = 0; - int left_trunc = 0; - int right_trunc = 0; - int mid_trunc = 0; int relation_value = -1; int position_value = -1; int structure_value = -1; int truncation_value = -1; int completeness_value = -1; int len = 0; + int left_trunc = 0; + int right_trunc = 0; size_t max = 200; if (and_list || or_list || !multi) max = 1; @@ -277,17 +277,9 @@ static struct ccl_rpn_node *search_term_x(CCL_parser cclp, for (i = 0; ilen; i++) if (lookahead->name[i] == ' ') no_spaces++; - else if (strchr(truncation_aliases[0], lookahead->name[i])) - { - if (no == 0 && i == 0 && lookahead->len >= 1) - left_trunc = 1; - else if (!is_term_ok(lookahead->next->kind, term_list) && - i == lookahead->len-1 && i >= 1) - right_trunc = 1; - else - mid_trunc = 1; - } len += 1+lookahead->len+lookahead->ws_prefix_len; + left_trunc = lookahead->left_trunc; + right_trunc = lookahead->right_trunc; lookahead = lookahead->next; } @@ -341,7 +333,6 @@ static struct ccl_rpn_node *search_term_x(CCL_parser cclp, if (truncation_value != -1) continue; truncation_value = attr->value.numeric; - left_trunc = right_trunc = mid_trunc = 0; break; case CCL_BIB1_COM: if (completeness_value != -1) @@ -376,13 +367,6 @@ static struct ccl_rpn_node *search_term_x(CCL_parser cclp, const char *src_str = cclp->look_token->name; size_t src_len = cclp->look_token->len; - if (i == 0 && left_trunc) - { - src_len--; - src_str++; - } - if (i == no-1 && right_trunc) - src_len--; if (p->u.t.term[0] && cclp->look_token->ws_prefix_len) { size_t len = strlen(p->u.t.term); @@ -1107,6 +1091,7 @@ struct ccl_rpn_node *ccl_find_str(CCL_bibset bibset, const char *str, /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab