Add YAZ_EXPORT for wrbuf_vp_puts
[yaz-moved-to-github.git] / include / yaz / wrbuf.h
index b222216..1296538 100644 (file)
@@ -76,6 +76,12 @@ YAZ_EXPORT void wrbuf_write(WRBUF b, const char *buf, size_t size);
  */
 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
@@ -124,6 +130,19 @@ YAZ_EXPORT void wrbuf_printf(WRBUF b, const char *fmt, ...)
         __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
@@ -202,7 +221,7 @@ YAZ_EXPORT int wrbuf_grow(WRBUF b, size_t minsize);
 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