X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fcclfind.c;h=1d4f6c6f48b8a15c9a80f3bd60dffd65a4a4a107;hp=202e2a358f9cda69603c16557cd2d098c53501ad;hb=f36abe0a776fa52b972a3fec1b46b94e26814f22;hpb=c3d7d4a659e0c4c60507a29f475d99cbee878747 diff --git a/src/cclfind.c b/src/cclfind.c index 202e2a3..1d4f6c6 100644 --- a/src/cclfind.c +++ b/src/cclfind.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2013 Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ /** @@ -687,9 +687,14 @@ struct ccl_rpn_node *qualifiers_order(CCL_parser cclp, if (KIND == CCL_TOK_TERM) { size_t i; + int quote_mode = 0; for (i = 0; ilook_token->len; i++) { - if (cclp->look_token->name[i] == '-') + if (i > 0 && cclp->look_token->name[i] == '\\') + ; + else if (cclp->look_token->name[i] == '"') + quote_mode = !quote_mode; + else if (cclp->look_token->name[i] == '-' && !quote_mode) break; } @@ -797,7 +802,6 @@ struct ccl_rpn_node *qualifiers_order(CCL_parser cclp, ccl_add_attr_numeric(p, attset, CCL_BIB1_REL, rel); return p; } - cclp->error_code = CCL_ERR_TERM_EXPECTED; return NULL; }