-# define XBT_CLOG_(cat, prio, f, ...) \
- fprintf(stderr,"%s:%d:" f "%c", __FILE__, __LINE__, __VA_ARGS__)
-# define XBT_CLOG(cat, prio, ...) XBT_CLOG_(cat, prio, __VA_ARGS__, '\n')
+# define XBT_CLOG(cat, prio, ...) \
+ _XBT_IF_ONE_ARG(_XBT_CLOG_ARG1, _XBT_CLOG_ARGN, __VA_ARGS__)(__VA_ARGS__)
+# define _XBT_CLOG_ARG1(f) \
+ fprintf(stderr,"%s:%d:\n" f, __FILE__, __LINE__)
+# define _XBT_CLOG_ARGN(f, ...) \
+ fprintf(stderr,"%s:%d:\n" f, __FILE__, __LINE__, __VA_ARGS__)