]> git.sesse.net Git - vlc/commitdiff
Support for mingw32 gcc 4.4.0
authorJean-Baptiste Kempf <jb@videolan.org>
Mon, 28 Dec 2009 00:02:14 +0000 (01:02 +0100)
committerJean-Baptiste Kempf <jb@videolan.org>
Wed, 30 Dec 2009 01:14:41 +0000 (02:14 +0100)
This is meant to fix the *printf format strings.
This is compatible with mingw 4.2.1 and 4.3.0
I haven't find a better place where to put this code...

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
include/vlc_common.h

index d8dd5807a06619639439ea612f9466f2b156077e..d817166d6177d0286ae08bed958cbe9daf9377f7 100644 (file)
 # include <stdbool.h>
 #endif
 
+/* Try to fix format strings for all versions of mingw and mingw64 */
+#if defined( _WIN32 ) && defined( __USE_MINGW_ANSI_STDIO )
+ #undef PRId64
+ #define PRId64 "lld"
+ #undef PRIi64
+ #define PRIi64 "lli"
+ #undef PRIu64
+ #define PRIu64 "llu"
+ #undef PRIo64
+ #define PRIo64 "llo"
+ #undef PRIx64
+ #define PRIx64 "llx"
+ #define snprintf        __mingw_snprintf
+ #define vsnprintf       __mingw_vsnprintf
+#endif
+
 /* Format string sanity checks */
 #ifdef __GNUC__
-#   define LIBVLC_FORMAT(x,y) __attribute__ ((format(printf,x,y)))
+#   if defined( _WIN32 ) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 4
+#     define LIBVLC_FORMAT(x,y) __attribute__ ((format(gnu_printf,x,y)))
+#   else
+#     define LIBVLC_FORMAT(x,y) __attribute__ ((format(printf,x,y)))
+#   endif
 #   define LIBVLC_FORMAT_ARG(x) __attribute__ ((format_arg(x)))
 #   define LIBVLC_USED __attribute__ ((warn_unused_result))
 #   define LIBVLC_MALLOC __attribute__ ((malloc))