*/
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
+*/
+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
__attribute__ ((format (printf, 2, 3)))
#endif
;
+
+/** \brief general writer of string using iconv and cdata
+ \param b WRBUF
+ \param cd iconv handle (0 for no conversion)
+ \param buf buffer
+ \param size size of buffer
+ \param cdata non-zero for CDATA; 0 for cdata
+ \returns -1 if invalid sequence was encountered (truncation in effect)
+ \returns 0 if buffer could be converted and written
+*/
+int wrbuf_iconv_write_x(WRBUF b, yaz_iconv_t cd, const char *buf,
+ size_t size, int cdata);
+
/** \brief iconv converts buffer and appends to WRBUF
\param b WRBUF
\param cd iconv handle
YAZ_EXPORT const char *wrbuf_cstr(WRBUF b);
#define wrbuf_putc(b, c) \
- (((b)->pos >= (b)->size ? wrbuf_grow(b, 1) : 0), \
+ ((void) ((b)->pos >= (b)->size ? wrbuf_grow(b, 1) : 0), \
(b)->buf[(b)->pos++] = (c), 0)
YAZ_END_CDECL