\param cn CQL node (tree)
\param out buffer
\param max size of buffer (max chars to write)
- \returns length of resulting buffer
+ \retval 0 OK
+ \retval -1 conversion error
+ \retval -2 buffer too small (truncated)
*/
YAZ_EXPORT
int cql_to_ccl_buf(struct cql_node *cn, char *out, int max);
* See the file LICENSE for details.
*/
/**
- * \file xcqlutil.c
+ * \file cql2ccl.c
* \brief Implements CQL to XCQL conversion.
*/
#if HAVE_CONFIG_H
void *client_data);
static void pr_term(struct cql_node *cn,
- void (*pr)(const char *buf, void *client_data),
- void *client_data)
+ void (*pr)(const char *buf, void *client_data),
+ void *client_data)
{
while (cn)
{
pr(split_op, client_data);
pr(" ", client_data);
}
- return -1;
}
return 0;
}
int cql_to_ccl_buf(struct cql_node *cn, char *out, int max)
{
struct cql_buf_write_info info;
+ int r;
info.off = 0;
info.max = max;
info.buf = out;
- cql_to_ccl(cn, cql_buf_write_handler, &info);
+ r = cql_to_ccl(cn, cql_buf_write_handler, &info);
if (info.off >= 0)
info.buf[info.off] = '\0';
- return info.off;
+ else
+ return -2; /* buffer overflow */
+ return r;
}
/*