ralloc: Use _vscprintf on MinGW.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Tue, 1 Nov 2011 06:58:29 +0000 (06:58 +0000)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Tue, 1 Nov 2011 08:47:39 +0000 (08:47 +0000)
MinGW uses MSVC's runtime DLLs for most of C runtime's functions, and
there has same semantics for vsnprintf.

Not sure how this worked until now -- maybe one of the internal
vsnprintf implementations was taking precedence.

src/glsl/ralloc.c

index f5f3934ac2c894414304716878f2972cd3402231..91e4bab2ebd45409b5aeebed950def1df5f42eef 100644 (file)
 #include <limits.h>
 #endif
 
+/* Some versions of MinGW are missing _vscprintf's declaration, although they
+ * still provide the symbol in the import library. */
+#ifdef __MINGW32__
+_CRTIMP int _vscprintf(const char *format, va_list argptr);
+#endif
+
 #include "ralloc.h"
 
 #ifdef __GNUC__
@@ -397,7 +403,7 @@ printf_length(const char *fmt, va_list untouched_args)
    va_list args;
    va_copy(args, untouched_args);
 
-#ifdef _MSC_VER
+#ifdef _WIN32
    /* We need to use _vcsprintf to calculate the size as vsnprintf returns -1
     * if the number of characters to write is greater than count.
     */