parser-helper: Make parser_helper_log a function
authorTobias Brunner <tobias@strongswan.org>
Wed, 14 May 2014 15:19:41 +0000 (17:19 +0200)
committerTobias Brunner <tobias@strongswan.org>
Thu, 15 May 2014 09:28:10 +0000 (11:28 +0200)
src/libstrongswan/utils/parser_helper.c
src/libstrongswan/utils/parser_helper.h

index 5093166..403cca9 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <limits.h>
 #include <ctype.h>
+#include <stdarg.h>
 
 #include "parser_helper.h"
 
@@ -199,6 +200,32 @@ METHOD(parser_helper_t, destroy, void,
 /**
  * Described in header
  */
+void parser_helper_log(int level, parser_helper_t *ctx, char *fmt, ...)
+{
+       parser_helper_file_t *file;
+       char msg[8192];
+       va_list args;
+       int line;
+
+       va_start(args, fmt);
+       vsnprintf(msg, sizeof(msg), fmt, args);
+       va_end(args);
+
+       file = ctx->file_current(ctx);
+       line = ctx->get_lineno ? ctx->get_lineno(ctx->scanner) : 0;
+       if (file)
+       {
+               dbg(DBG_CFG, level, "%s:%d: %s", file->name, line, msg);
+       }
+       else
+       {
+               dbg(DBG_CFG, level, "%s", msg);
+       }
+}
+
+/**
+ * Described in header
+ */
 parser_helper_t *parser_helper_create(void *context)
 {
        private_parser_helper_t *this;
index 741582d..6a2c26c 100644 (file)
@@ -148,15 +148,7 @@ struct parser_helper_file_t {
  * @param fmt          error message format
  * @param ...          additional arguments
  */
-#define parser_helper_log(level, ctx, fmt, ...) ({ \
-       parser_helper_file_t *_file = (ctx)->file_current(ctx); \
-       int _line = (ctx)->get_lineno ? (ctx)->get_lineno((ctx)->scanner) : 0; \
-       if (_file) {\
-               DBG##level(DBG_CFG, "%s:%d: " fmt, _file->name, _line, ##__VA_ARGS__); \
-       } else { \
-               DBG##level(DBG_CFG, fmt, ##__VA_ARGS__); \
-       } \
-})
+void parser_helper_log(int level, parser_helper_t *ctx, char *fmt, ...);
 
 #define PARSER_DBG1(ctx, fmt, ...) parser_helper_log(1, ctx, fmt, ##__VA_ARGS__)
 #define PARSER_DBG2(ctx, fmt, ...) parser_helper_log(2, ctx, fmt, ##__VA_ARGS__)