lib/util: provide a dbgtext_va() function which takes va_list
authorStefan Metzmacher <metze@samba.org>
Tue, 16 Dec 2014 10:30:53 +0000 (11:30 +0100)
committerAmitay Isaacs <amitay@samba.org>
Wed, 17 Dec 2014 08:26:07 +0000 (09:26 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
lib/util/debug.c
lib/util/debug.h

index 750ad2597593714dacead736558ee9e4903bb91c..b050205bf10da22575064b7813a025a972e6c15e 100644 (file)
@@ -1063,17 +1063,14 @@ full:
 
 ***************************************************************************/
 
- bool dbgtext( const char *format_str, ... )
+static inline bool __dbgtext_va(const char *format_str, va_list ap) PRINTF_ATTRIBUTE(1,0);
+static inline bool __dbgtext_va(const char *format_str, va_list ap)
 {
-       va_list ap;
        char *msgbuf = NULL;
        bool ret = true;
        int res;
 
-       va_start(ap, format_str);
        res = vasprintf(&msgbuf, format_str, ap);
-       va_end(ap);
-
        if (res != -1) {
                format_debug_text(msgbuf);
        } else {
@@ -1082,3 +1079,20 @@ full:
        SAFE_FREE(msgbuf);
        return ret;
 }
+
+bool dbgtext_va(const char *format_str, va_list ap)
+{
+       return __dbgtext_va(format_str, ap);
+}
+
+bool dbgtext(const char *format_str, ... )
+{
+       va_list ap;
+       bool ret;
+
+       va_start(ap, format_str);
+       ret = __dbgtext_va(format_str, ap);
+       va_end(ap);
+
+       return ret;
+}
index 27c319b760d0a02063f6e7e8210e7c72171c5225..67d122f1bc1e7e42042a6fb39a72fc61512f909e 100644 (file)
@@ -42,6 +42,7 @@
 #define MAX_DEBUG_LEVEL 1000
 #endif
 
+bool dbgtext_va(const char *, va_list ap) PRINTF_ATTRIBUTE(1,0);
 bool dbgtext( const char *, ... ) PRINTF_ATTRIBUTE(1,2);
 bool dbghdrclass( int level, int cls, const char *location, const char *func);
 bool dbghdr( int level, const char *location, const char *func);