Browse Source

Add printing to rspamd_fstring_t.

tags/1.0.5
Vsevolod Stakhov 8 years ago
parent
commit
f6240cced0
2 changed files with 35 additions and 0 deletions
  1. 31
    0
      src/libutil/printf.c
  2. 4
    0
      src/libutil/printf.h

+ 31
- 0
src/libutil/printf.c View File

@@ -219,6 +219,18 @@ rspamd_printf_append_gstring (const gchar *buf, glong buflen, gpointer ud)
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, ...)
{
@@ -307,6 +319,25 @@ rspamd_vprintf_gstring (GString *s, const gchar *fmt, va_list args)
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); \

+ 4
- 0
src/libutil/printf.h View File

@@ -26,6 +26,7 @@
#define PRINTF_H_

#include "config.h"
#include "fstring.h"

/*
* supported formats:
@@ -78,6 +79,9 @@ gchar * rspamd_vsnprintf (gchar *buf, glong max, const gchar *fmt,
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,

Loading…
Cancel
Save