+/* Defines XCLOGn(...) which behave like CLOGn(...), except that the
+ * given category is not passed through _XBT_LOGV before use.
+ */
+#ifdef XBT_CLOG_
+# define XBT_XCLOG(c, p, ...) XBT_CLOG_((*(c)), p, __VA_ARGS__)
+# define XCLOG0(...) XBT_XCLOG(__VA_ARGS__)
+# define XCLOG1(...) XBT_XCLOG(__VA_ARGS__)
+# define XCLOG2(...) XBT_XCLOG(__VA_ARGS__)
+# define XCLOG3(...) XBT_XCLOG(__VA_ARGS__)
+# define XCLOG4(...) XBT_XCLOG(__VA_ARGS__)
+# define XCLOG5(...) XBT_XCLOG(__VA_ARGS__)
+# define XCLOG6(...) XBT_XCLOG(__VA_ARGS__)
+#else
+# define XCLOG0(c, p, f) _XBT_LOG_PRE((*(c)),p) ,f _XBT_LOG_POST
+# define XCLOG1(c, p, f,a1) _XBT_LOG_PRE((*(c)),p) ,f,a1 _XBT_LOG_POST
+# define XCLOG2(c, p, f,a1,a2) _XBT_LOG_PRE((*(c)),p) ,f,a1,a2 _XBT_LOG_POST
+# define XCLOG3(c, p, f,a1,a2,a3) _XBT_LOG_PRE((*(c)),p) ,f,a1,a2,a3 _XBT_LOG_POST
+# define XCLOG4(c, p, f,a1,a2,a3,a4) _XBT_LOG_PRE((*(c)),p) ,f,a1,a2,a3,a4 _XBT_LOG_POST
+# define XCLOG5(c, p, f,a1,a2,a3,a4,a5) _XBT_LOG_PRE((*(c)),p) ,f,a1,a2,a3,a4,a5 _XBT_LOG_POST
+# define XCLOG6(c, p, f,a1,a2,a3,a4,a5,a6) _XBT_LOG_PRE((*(c)),p) ,f,a1,a2,a3,a4,a5,a6 _XBT_LOG_POST
+#endif
+
+/* Returns c-string "s" if n > 1, empty string "" otherwise. */
+#define ESSE(n) ((n) > 1 ? misc::str_esse : misc::str_nil)