projects
/
yaz-moved-to-github.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5d212c6
)
GFS: No limit in RPN buf size in CQL to RPN conv
author
Adam Dickmeiss
<adam@indexdata.dk>
Mon, 21 May 2012 10:13:43 +0000
(12:13 +0200)
committer
Adam Dickmeiss
<adam@indexdata.dk>
Mon, 21 May 2012 10:13:43 +0000
(12:13 +0200)
src/seshigh.c
patch
|
blob
|
history
diff --git
a/src/seshigh.c
b/src/seshigh.c
index
d8142f6
..
2ac95fd
100644
(file)
--- a/
src/seshigh.c
+++ b/
src/seshigh.c
@@
-760,7
+760,7
@@
static int cql2pqf(ODR odr, const char *cql, cql_transform_t ct,
int r;
int srw_errcode = 0;
const char *add = 0;
int r;
int srw_errcode = 0;
const char *add = 0;
- char rpn_buf[5120];
+ WRBUF rpn_buf = wrbuf_alloc();
*sortkeys_p = 0;
r = cql_parser_string(cp, cql);
*sortkeys_p = 0;
r = cql_parser_string(cp, cql);
@@
-773,7
+773,7
@@
static int cql2pqf(ODR odr, const char *cql, cql_transform_t ct,
struct cql_node *cn = cql_parser_result(cp);
/* Syntax OK */
struct cql_node *cn = cql_parser_result(cp);
/* Syntax OK */
- r = cql_transform_buf(ct, cn, rpn_buf, sizeof(rpn_buf)-1);
+ r = cql_transform(ct, cn, wrbuf_vp_puts, rpn_buf);
if (r)
srw_errcode = cql_transform_error(ct, &add);
else
if (r)
srw_errcode = cql_transform_error(ct, &add);
else
@@
-799,7
+799,7
@@
static int cql2pqf(ODR odr, const char *cql, cql_transform_t ct,
/* Syntax & transform OK. */
/* Convert PQF string to Z39.50 to RPN query struct */
YAZ_PQF_Parser pp = yaz_pqf_create();
/* Syntax & transform OK. */
/* Convert PQF string to Z39.50 to RPN query struct */
YAZ_PQF_Parser pp = yaz_pqf_create();
- Z_RPNQuery *rpnquery = yaz_pqf_parse(pp, odr, rpn_buf);
+ Z_RPNQuery *rpnquery = yaz_pqf_parse(pp, odr, wrbuf_cstr(rpn_buf));
if (!rpnquery)
{
size_t off;
if (!rpnquery)
{
size_t off;
@@
-817,6
+817,7
@@
static int cql2pqf(ODR odr, const char *cql, cql_transform_t ct,
yaz_pqf_destroy(pp);
}
cql_parser_destroy(cp);
yaz_pqf_destroy(pp);
}
cql_parser_destroy(cp);
+ wrbuf_destroy(rpn_buf);
return srw_errcode;
}
return srw_errcode;
}