X-Git-Url: http://git.indexdata.com/?p=yazpp-moved-to-github.git;a=blobdiff_plain;f=src%2Fyaz-cql2rpn.cpp;h=3aa57fc26b44e99fc6e5a4f6e9f4c652c800fa42;hp=3906dff95d7449f0983b6ee129a83516a11c0fb5;hb=6b22d0543d41bec8626f3ae7ac866bcab7de44bd;hpb=7411ed6df7fc0b535f83503f73d70e80f390e295 diff --git a/src/yaz-cql2rpn.cpp b/src/yaz-cql2rpn.cpp index 3906dff..3aa57fc 100644 --- a/src/yaz-cql2rpn.cpp +++ b/src/yaz-cql2rpn.cpp @@ -1,13 +1,11 @@ -/* - * Copyright (c) 1998-2004, Index Data. +/* This file is part of the yazpp toolkit. + * Copyright (C) 1998-2009 Index Data and Mike Taylor * See the file LICENSE for details. - * - * $Id: yaz-cql2rpn.cpp,v 1.8 2005-06-25 15:53:19 adam Exp $ */ #include #include -#include +#include using namespace yazpp_1; @@ -28,6 +26,15 @@ void Yaz_cql2rpn::set_pqf_file(const char *fname) m_transform = cql_transform_open_fname(fname); } + +bool Yaz_cql2rpn::parse_spec_file(const char *fname, int *error) +{ + *error = 0; + cql_transform_close(m_transform); + m_transform = cql_transform_open_fname(fname); + return m_transform ? true : false; +} + int Yaz_cql2rpn::query_transform(const char *cql_query, Z_RPNQuery **rpnquery, ODR o, char **addinfop) @@ -40,12 +47,11 @@ int Yaz_cql2rpn::query_transform(const char *cql_query, int r = cql_parser_string(cp, cql_query); if (r) { - yaz_log(YLOG_LOG, "CQL Parse Error"); r = 10; } else { - char rpn_buf[1024]; + char rpn_buf[10240]; r = cql_transform_buf(m_transform, cql_parser_result(cp), rpn_buf, sizeof(rpn_buf)-1); if (!r) @@ -57,9 +63,7 @@ int Yaz_cql2rpn::query_transform(const char *cql_query, { size_t off; const char *pqf_msg; - int code = yaz_pqf_error(pp, &pqf_msg, &off); - yaz_log(YLOG_WARN, "PQF Parser Error %s (code %d)", - pqf_msg, code); + yaz_pqf_error(pp, &pqf_msg, &off); r = -1; } yaz_pqf_destroy(pp); @@ -67,8 +71,6 @@ int Yaz_cql2rpn::query_transform(const char *cql_query, else { r = cql_transform_error(m_transform, &addinfo); - yaz_log(YLOG_LOG, "CQL Transform Error %d %s", r, - addinfo ? addinfo : ""); } } cql_parser_destroy(cp); @@ -81,6 +83,7 @@ int Yaz_cql2rpn::query_transform(const char *cql_query, /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab