Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
nope sonar, that's not commented code
[simgrid.git] / src / xbt / snprintf.c
index 148a593..bf85795 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2005-2010, 2012-2016. The SimGrid Team.
+/* Copyright (c) 2005-2019. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  *   If not, I'll be glad to provide one.
  *
  * FEATURES
- * - careful adherence to specs regarding flags, field width and precision;
+ * - careful adherence to specs regarding flags, field width and precision
  * - good performance for large string handling (large format, large
  *   argument or large paddings). Performance is similar to system's sprintf
  *   and in several cases significantly better (make sure you compile with
  *   optimizations turned on, tell the compiler the code is strict ANSI
- *   if necessary to give it more freedom for optimizations);
- * - return value semantics per ISO/IEC 9899:1999 ("ISO C99");
- * - written in standard ISO/ANSI C - requires an ANSI C compiler.
+ *   if necessary to give it more freedom for optimizations)
+ * - return value semantics per ISO/IEC 9899:1999 ("ISO C99")
+ * - written in standard ISO/ANSI C - requires an ANSI C compiler
  *
  * [...]
  *
  *   http://www.ijs.si/software/snprintf/
  */
 
+/* find vasprintf in stdio.h */
+#ifndef _GNU_SOURCE
+#  define _GNU_SOURCE
+#endif
+#include <stdio.h>
+
 #include "xbt/sysdep.h"           /* xbt_abort() */
 #include "src/internal_config.h"  /* Do we need vasprintf? */
-#include <stdio.h>
 
-#if !defined(HAVE_VASPRINTF)
+#include <assert.h>
+
+#if !HAVE_VASPRINTF
 #include <stdarg.h> /* vsnprintf */
 int vasprintf(char **ptr, const char *fmt, va_list ap);
 int vasprintf(char **ptr, const char *fmt, va_list ap)
@@ -84,7 +91,7 @@ char *bvprintf(const char *fmt, va_list ap)
 
   if (vasprintf(&res, fmt, ap) < 0) {
     /* Do not want to use xbt_die() here, as it uses the logging
-     * infrastucture and may fail to allocate memory too. */
+     * infrastructure and may fail to allocate memory too. */
     fprintf(stderr, "bprintf: vasprintf failed. Aborting.\n");
     xbt_abort();
   }