YAZ_EXPORT
void cql_to_ccl_stdio(struct cql_node *cn, FILE *f);
+/** \brief converts CQL tree to CCL and writes result to buffer
+ \param cn CQL node (tree)
+ \param out buffer
+ \param max size of buffer (max chars to write)
+ \returns length of resulting buffer
+ */
+YAZ_EXPORT
+int cql_to_ccl_buf(struct cql_node *cn, char *out, int max);
+
/** \brief stream handle for file (used by cql_to_xml_stdio) */
YAZ_EXPORT
void cql_fputs(const char *buf, void *client_data);
cql_to_ccl(cn, cql_fputs, f);
}
-
+int cql_to_ccl_buf(struct cql_node *cn, char *out, int max)
+{
+ struct cql_buf_write_info info;
+ info.off = 0;
+ info.max = max;
+ info.buf = out;
+ cql_to_ccl(cn, cql_buf_write_handler, &info);
+ if (info.off >= 0)
+ info.buf[info.off] = '\0';
+ return info.off;
+}
/*
* Local variables: