From f07041e17635e7ba0bcbb0adddc61059b5f510eb Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 23 Mar 2015 15:26:57 +0000 Subject: [PATCH] Add %e modifier for GError clever printing. --- src/libutil/printf.c | 19 +++++++++++++++++++ src/libutil/printf.h | 1 + 2 files changed, 20 insertions(+) diff --git a/src/libutil/printf.c b/src/libutil/printf.c index 5a04dc432..0cd043058 100644 --- a/src/libutil/printf.c +++ b/src/libutil/printf.c @@ -339,6 +339,7 @@ rspamd_vprintf_common (rspamd_printf_append_func func, guint width, sign, hex, humanize, bytes, frac_width, i; rspamd_fstring_t *v; GString *gs; + GError *err; gboolean bv; while (*fmt) { @@ -462,6 +463,24 @@ rspamd_vprintf_common (rspamd_printf_append_func func, continue; + case 'e': + err = va_arg (args, GError *); + + if (err) { + p = err->message; + + if (p == NULL) { + p = "(NULL)"; + } + } + else { + p = "unknown error"; + } + + slen = strlen (p); + RSPAMD_PRINTF_APPEND (p, slen); + break; + case 's': p = va_arg (args, gchar *); if (p == NULL) { diff --git a/src/libutil/printf.h b/src/libutil/printf.h index 2bc421143..d0db483d9 100644 --- a/src/libutil/printf.h +++ b/src/libutil/printf.h @@ -52,6 +52,7 @@ * %Z '\0' * %N '\n' * %c gchar + * %e GError * * %% % * */ -- 2.39.5