-/** \brief grow WRBUF larger */
-YAZ_EXPORT int wrbuf_grow(WRBUF b, int minsize);
-YAZ_EXPORT int wrbuf_write(WRBUF b, const char *buf, int size);
-YAZ_EXPORT int wrbuf_xmlputs_n(WRBUF b, const char *cp, int size);
-YAZ_EXPORT int wrbuf_puts(WRBUF b, const char *buf);
-YAZ_EXPORT int wrbuf_puts_replace_char(WRBUF b, const char *buf,
- const char from, const char to);
-YAZ_EXPORT int wrbuf_xmlputs(WRBUF b, const char *cp);
+/** \brief append constant size buffer to WRBUF
+ \param b WRBUF
+ \param buf buffer
+ \param size size of buffer
+ */
+YAZ_EXPORT void wrbuf_write(WRBUF b, const char *buf, size_t size);
+
+/** \brief inserts buffer into WRBUF at some position
+ \param b WRBUF
+ \param pos position (0=beginning)
+ \param buf buffer
+ \param size size of buffer
+ */
+YAZ_EXPORT void wrbuf_insert(WRBUF b, size_t pos, const char *buf, size_t size);
+
+/** \brief appends C-string to WRBUF
+ \param b WRBUF
+ \param buf C-string (0-terminated)
+ */
+YAZ_EXPORT void wrbuf_puts(WRBUF b, const char *buf);
+
+/** \brief appends C-string to WRBUF - void pointer variant
+ \param buf C-string
+ \param client_data assumed WRBUF
+*/
+YAZ_EXPORT void wrbuf_vp_puts(const char *buf, void *client_data);
+
+/** \brief writes buffer of certain size to WRBUF and XML encode (as CDATA)
+ \param b WRBUF
+ \param cp CDATA
+ \param size size of CDATA
+ */
+YAZ_EXPORT void wrbuf_xmlputs_n(WRBUF b, const char *cp, size_t size);
+
+/** \brief writes C-String to WRBUF and XML encode (as CDATA)
+ \param b WRBUF
+ \param cp CDATA buffer (0-terminated)
+ */
+YAZ_EXPORT void wrbuf_xmlputs(WRBUF b, const char *cp);
+
+/** \brief puts buf to WRBUF and replaces a single char
+ \param b WRBUF
+ \param buf buffer to append (C-string)
+ \param from character "from"
+ \param to charcter "to"
+*/
+YAZ_EXPORT void wrbuf_puts_replace_char(WRBUF b, const char *buf,
+ const char from, const char to);
+
+/** \brief writes C-string to WRBUF and escape non-ASCII characters
+ \param b WRBUF
+ \param str C-string
+
+ Non-ASCII characters will be presented as \\xDD .
+ */
+YAZ_EXPORT void wrbuf_puts_escaped(WRBUF b, const char *str);
+
+/** \brief writes buffer to WRBUF and escape non-ASCII characters
+ \param b WRBUF
+ \param buf buffer
+ \param len size of buffer
+
+ Non-ASCII characters will be presented as \\xDD .
+ */
+YAZ_EXPORT void wrbuf_write_escaped(WRBUF b, const char *buf, size_t len);
+
+/** \brief writes printf result to WRBUF
+ \param b WRBUF
+ \param fmt printf-like format
+ */