Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Allow gcc cross-compilation targetting windows
[simgrid.git] / src / xbt / snprintf.c
index 8ce12fe..e534d0b 100644 (file)
  */
 
 
-\f
 /* ============================================= */
 /* NO USER SERVICABLE PARTS FOLLOWING THIS POINT */
 /* ============================================= */
 #define LINUX_COMPATIBLE
 #endif
 
+#include "portable.h" /* to get a working stdarg.h */
+
 #include <sys/types.h>
 #include <string.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdarg.h>
 
-#include "portable.h" /* to get a working stdarg.h */
-
 #include <assert.h>
 #include <errno.h>
+#include "xbt/str.h"
 
 #ifdef isdigit
 #undef isdigit
 
 /* prototypes */
 
+
 #if defined(NEED_ASPRINTF)
 int asprintf   (char **ptr, const char *fmt, /*args*/ ...);
 #endif
-#if defined(NEED_VASPRINTF)
+#if defined(NEED_VASPRINTF) 
 int vasprintf  (char **ptr, const char *fmt, va_list ap);
 #endif
+
 #if defined(NEED_ASNPRINTF)
 int asnprintf  (char **ptr, size_t str_m, const char *fmt, /*args*/ ...);
 #endif
@@ -396,6 +398,13 @@ int vasnprintf (char **ptr, size_t str_m, const char *fmt, va_list ap);
 #if defined(HAVE_SNPRINTF)
 /* declare our portable snprintf  routine under name portable_snprintf  */
 /* declare our portable vsnprintf routine under name portable_vsnprintf */
+#  if defined(_MSC_VER) && (_MSC_VER >= 1400)
+#    define portable_snprintf  _snprintf
+#    define portable_vsnprintf  vsnprintf
+#  else
+#    define portable_snprintf  snprintf
+#    define portable_vsnprintf vsnprintf
+#  endif
 #else
 /* declare our portable routines under names snprintf and vsnprintf */
 #define portable_snprintf snprintf
@@ -1043,7 +1052,10 @@ char *bprintf(const char*fmt, ...) {
   char *res;
   
   va_start(ap, fmt);
-  vasprintf(&res,fmt,ap);
+  
+       
+       vasprintf(&res,fmt,ap);
+       
   va_end(ap);
   return res;
 }