Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Do append the right buffer to the message when we switched to dynamic logs; be more...
[simgrid.git] / src / xbt / xbt_log_layout_simple.c
index ecfcf90..867294c 100644 (file)
@@ -25,22 +25,23 @@ static void xbt_log_layout_simple_dynamic(xbt_log_layout_t l,
                                          const char*fmt,
                                          xbt_log_appender_t app) {
    xbt_strbuff_t buff = xbt_strbuff_new();
+   char loc_buff[256];
    char *p;
    
-   /* Put every static information in the static buffer, and copy them in the dyn one */
-   p = ev->buffer;
-   p += snprintf(p,XBT_LOG_BUFF_SIZE-(p-ev->buffer),"[");
+   /* Put every static information in a static buffer, and copy them in the dyn one */
+   p = loc_buff;
+   p += snprintf(p,256-(p-ev->buffer),"[");
 
    if(strlen(xbt_procname()))
-     p += snprintf(p,XBT_LOG_BUFF_SIZE-(p-ev->buffer),"%s:%s:(%d) ", 
+     p += snprintf(p,256-(p-ev->buffer),"%s:%s:(%d) ", 
                   gras_os_myname(), xbt_procname(),(*xbt_getpid)());
-   p += snprintf(p,XBT_LOG_BUFF_SIZE-(p-ev->buffer),"%f] ", gras_os_time()-begin_of_time);
+   p += snprintf(p,256-(p-ev->buffer),"%f] ", gras_os_time()-begin_of_time);
    if (ev->priority != xbt_log_priority_info)
-     p += snprintf(p,XBT_LOG_BUFF_SIZE-(p-ev->buffer), "%s:%d: ", ev->fileName, ev->lineNum);
-   p += snprintf(p,XBT_LOG_BUFF_SIZE-(p-ev->buffer), "[%s/%s] ", 
+     p += snprintf(p,256-(p-ev->buffer), "%s:%d: ", ev->fileName, ev->lineNum);
+   p += snprintf(p,256-(p-ev->buffer), "[%s/%s] ", 
                 ev->cat->name, xbt_log_priority_names[ev->priority] );
    
-   xbt_strbuff_append(buff,ev->buffer);
+   xbt_strbuff_append(buff,loc_buff);
 
    vasprintf(&p,fmt,ev->ap_copy);
    xbt_strbuff_append(buff,p);
@@ -76,14 +77,18 @@ static void xbt_log_layout_simple_doit(xbt_log_layout_t l,
 
   p = ev->buffer;
   p += snprintf(p,XBT_LOG_BUFF_SIZE-(p-ev->buffer),"[");
+  check_overflow;
 
   /* Display the proc info if available */
-  if(strlen(xbt_procname()))
+  if(strlen(xbt_procname())) {
     p += snprintf(p,XBT_LOG_BUFF_SIZE-(p-ev->buffer),"%s:%s:(%d) ", 
                 gras_os_myname(), xbt_procname(),(*xbt_getpid)());
-
+    check_overflow;
+  }
+   
   /* Display the date */
   p += snprintf(p,XBT_LOG_BUFF_SIZE-(p-ev->buffer),"%f] ", gras_os_time()-begin_of_time);
+  check_overflow;
 
   /* Display file position if not INFO*/
   if (ev->priority != xbt_log_priority_info)