#define __WINT_TYPE__ unsigned short
#endif
+#undef __MINGW_EXTENSION
#if defined(__GNUC__) || defined(__GNUG__)
#define __MINGW_EXTENSION __extension__
#else
#define __MINGW_EXTENSION
#endif
-#ifdef UNICODE
-# define __MINGW_NAME_AW(func) func##W
-#else
-# define __MINGW_NAME_AW(func) func##A
+/* Special case nameless struct/union. */
+#ifndef __C89_NAMELESS
+#define __C89_NAMELESS __MINGW_EXTENSION
+
+#define __C89_NAMELESSSTRUCTNAME
+#define __C89_NAMELESSUNIONNAME
#endif
-#define __MINGW_TYPEDEF_AW(type) \
- typedef __MINGW_NAME_AW(type) type;
+
+#ifndef __GNU_EXTENSION
+#define __GNU_EXTENSION __MINGW_EXTENSION
+#endif
+
+/* MinGW-w64 has some additional C99 printf/scanf feature support.
+ So we add some helper macros to ease recognition of them. */
+#define __MINGW_HAVE_ANSI_C99_PRINTF 1
+#define __MINGW_HAVE_WIDE_C99_PRINTF 1
+#define __MINGW_HAVE_ANSI_C99_SCANF 1
+#define __MINGW_HAVE_WIDE_C99_SCANF 1
#endif /* _INC_CRTDEFS_MACRO */