return buflen;
}
+static glong
+rspamd_printf_append_fstring (const gchar *buf, glong buflen, gpointer ud)
+{
+ rspamd_fstring_t **dst = ud;
+
+ if (buflen > 0) {
+ *dst = rspamd_fstring_append (*dst, buf, buflen);
+ }
+
+ return buflen;
+}
+
glong
rspamd_fprintf (FILE *f, const gchar *fmt, ...)
{
return rspamd_vprintf_common (rspamd_printf_append_gstring, s, fmt, args);
}
+glong
+rspamd_printf_fstring (rspamd_fstring_t **s, const gchar *fmt, ...)
+{
+ va_list args;
+ glong r;
+
+ va_start (args, fmt);
+ r = rspamd_vprintf_fstring (s, fmt, args);
+ va_end (args);
+
+ return r;
+}
+
+glong
+rspamd_vprintf_fstring (rspamd_fstring_t **s, const gchar *fmt, va_list args)
+{
+ return rspamd_vprintf_common (rspamd_printf_append_fstring, s, fmt, args);
+}
+
#define RSPAMD_PRINTF_APPEND(buf, len) \
do { \
RSPAMD_PRINTF_APPEND_BUF(buf, len); \
#define PRINTF_H_
#include "config.h"
+#include "fstring.h"
/*
* supported formats:
glong rspamd_printf_gstring (GString *s, const gchar *fmt, ...);
glong rspamd_vprintf_gstring (GString *s, const gchar *fmt, va_list args);
+glong rspamd_printf_fstring (rspamd_fstring_t **s, const gchar *fmt, ...);
+glong rspamd_vprintf_fstring (rspamd_fstring_t **s, const gchar *fmt, va_list args);
+
glong rspamd_vprintf_common (rspamd_printf_append_func func,
gpointer apd,
const gchar *fmt,