X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/aa2662427da4a4b81ea2e67561a223b9c4c3b4d0..4271eaaf4285cf1f7ea9b7da83a5ab7e2105f8aa:/include/xbt/log.h diff --git a/include/xbt/log.h b/include/xbt/log.h index 77f036b609..83a4fed65f 100644 --- a/include/xbt/log.h +++ b/include/xbt/log.h @@ -34,7 +34,6 @@ #define _XBT_LOG_H_ #include "xbt/misc.h" -#include "gras_config.h" #include SG_BEGIN_DECL() @@ -93,10 +92,12 @@ SG_BEGIN_DECL() /* The root of the category hierarchy. */ #define XBT_LOG_ROOT_CAT root -/* In strict ansi C, we are not allowed to initialize a variable with - * a non-constant value. But the whole tree of categories is - * connected by setting the address of the parent category as a field - * of the child one. +/* The whole tree of categories is connected by setting the address of + * the parent category as a field of the child one. + * + * In strict ansi C, we are allowed to initialize a variable with "a + * pointer to an lvalue designating an object of static storage + * duration" [ISO/IEC 9899:1999, Section 6.6]. * * Unfortunately, Visual C builder does not target any standard * compliance, and C99 is not an exception to this unfortunate rule. @@ -111,7 +112,7 @@ SG_BEGIN_DECL() * you don't want to see your child category become a child of root * directly. */ -#if defined(__STRICT_ANSI__) || defined(_MSC_VER) +#if defined(_MSC_VER) # define _XBT_LOG_PARENT_INITIALIZER(parent) NULL # define XBT_LOG_CONNECT(parent_cat,child) _XBT_LOGV(child).parent = &_XBT_LOGV(parent_cat) #else @@ -241,7 +242,7 @@ XBT_PUBLIC(void) xbt_log_control_set(const char *cs); /* * Do NOT access any members of this structure directly. FIXME: move to private? */ -#ifdef WIN32 +#ifdef _XBT_WIN32 #define XBT_LOG_BUFF_SIZE 16384 /* Size of the static string in which we build the log string */ #else #define XBT_LOG_BUFF_SIZE 2048 /* Size of the static string in which we build the log string */ @@ -266,7 +267,7 @@ XBT_PUBLIC(void) xbt_log_control_set(const char *cs); int lineNum; va_list ap; va_list ap_copy; /* need a copy to launch dynamic layouts when the static ones overflowed */ -#ifdef WIN32 +#ifdef _XBT_WIN32 char *buffer; #else char buffer[XBT_LOG_BUFF_SIZE]; @@ -389,21 +390,30 @@ XBT_PUBLIC_DATA(s_xbt_log_category_t) _XBT_LOGV(XBT_LOG_ROOT_CAT); * code. * Setting the LogEvent's valist member is done inside _log_logEvent. */ -#ifdef WIN32 -#define _XBT_LOG_PRE(catv, priority) do { \ - if (_XBT_LOG_ISENABLEDV(catv, priority)) { \ - s_xbt_log_event_t _log_ev = \ - {NULL,priority,__FILE__,_XBT_FUNCTION,__LINE__}; \ - _log_ev.cat = &(catv); \ - _log_ev.buffer = (char*) calloc(XBT_LOG_BUFF_SIZE + 1, sizeof(char)); \ - _xbt_log_event_log(&_log_ev +#ifdef _XBT_WIN32 +#include /* calloc */ +#define _XBT_LOG_PRE(catv, prio) do { \ + if (_XBT_LOG_ISENABLEDV(catv, prio)) { \ + s_xbt_log_event_t _log_ev; \ + _log_ev.cat = &(catv); \ + _log_ev.priority = (prio); \ + _log_ev.fileName = __FILE__; \ + _log_ev.functionName = _XBT_FUNCTION; \ + _log_ev.lineNum = __LINE__; \ + _log_ev.buffer = (char*) calloc(XBT_LOG_BUFF_SIZE + 1, sizeof(char)); \ + _xbt_log_event_log(&_log_ev #else -#define _XBT_LOG_PRE(catv, priority) do { \ - if (_XBT_LOG_ISENABLEDV(catv, priority)) { \ - s_xbt_log_event_t _log_ev = \ - {NULL,priority,__FILE__,_XBT_FUNCTION,__LINE__}; \ - _log_ev.cat = &(catv); \ - _xbt_log_event_log(&_log_ev \ +#include /* memset */ +#define _XBT_LOG_PRE(catv, prio) do { \ + if (_XBT_LOG_ISENABLEDV(catv, prio)) { \ + s_xbt_log_event_t _log_ev; \ + _log_ev.cat = &(catv); \ + _log_ev.priority = (prio); \ + _log_ev.fileName = __FILE__; \ + _log_ev.functionName = _XBT_FUNCTION; \ + _log_ev.lineNum = __LINE__; \ + memset(_log_ev.buffer, 0, XBT_LOG_BUFF_SIZE); \ + _xbt_log_event_log(&_log_ev #endif