logging.h: Add helpers so the log macros can have just one argument, needed for compi...
authorJerry Jacobs <jerry.jacobs@xor-gate.org>
Fri, 20 May 2016 16:12:41 +0000 (18:12 +0200)
committerJerry Jacobs <jerry.jacobs@xor-gate.org>
Fri, 20 May 2016 16:12:41 +0000 (18:12 +0200)
include/stlink/logging.h

index df816caedcf7dbc89382c752ee706aff0c77870f..81e5f598c993f7220ba65b0fa4d6f96cd19c5d66 100644 (file)
@@ -20,11 +20,18 @@ enum ugly_loglevel {
 int ugly_init(int maximum_threshold);
 int ugly_log(int level, const char *tag, const char *format, ...);
 
-#define DLOG(format, args...)   ugly_log(UDEBUG, __FILE__, format, ## args)
-#define ILOG(format, args...)   ugly_log(UINFO, __FILE__, format, ## args)
-#define WLOG(format, args...)   ugly_log(UWARN, __FILE__, format, ## args)
-#define ELOG(format, args...)   ugly_log(UERROR, __FILE__, format, ## args)
-#define fatal(format, args...)  ugly_log(UFATAL, __FILE__, format, ## args)
+/** @todo we need to write this in a more generic way, for now this should compile
+ on visual studio (See http://stackoverflow.com/a/8673872/1836746) */
+#define DLOG_HELPER(format, ...)   ugly_log(UDEBUG, __FILE__, format, __VA_ARGS__)
+#define DLOG(...) DLOG_HELPER(__VA_ARGS__, "")
+#define ILOG_HELPER(format, ...)   ugly_log(UINFO, __FILE__, format, __VA_ARGS__)
+#define ILOG(...) ILOG_HELPER(__VA_ARGS__, "")
+#define WLOG_HELPER(format, ...)   ugly_log(UWARN, __FILE__, format, __VA_ARGS__)
+#define WLOG(...) WLOG_HELPER(__VA_ARGS__, "")
+#define ELOG_HELPER(format, ...)   ugly_log(UERROR, __FILE__, format, __VA_ARGS__)
+#define ELOG(...) ELOG_HELPER(__VA_ARGS__, "")
+#define fatal_helper(format, ...)  ugly_log(UFATAL, __FILE__, format, __VA_ARGS__)
+#define fatal(...) fatal_helper(__VA_ARGS__, "")
 
 #ifdef __cplusplus
 }