]> git.saurik.com Git - wxWidgets.git/commitdiff
Use strdup() even in strict ANSI mode with MinGW.
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 22 Jun 2011 22:58:04 +0000 (22:58 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 22 Jun 2011 22:58:04 +0000 (22:58 +0000)
MinGW headers define MSVC-compatible _strdup() even in strict ANSI mode so we
can always use it with MinGW.

This fixes a linking problem when wx itself was built without strict ANSI but
the program using it does use strict ANSI mode (e.g. due to the use of
-std=c++0x g++ option).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68025 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/wxcrtbase.h

index bda4ef85727db00b8bbea114269ef18f86faf853..9b00b7f20df556af25802ec37729b7c1ab571e67 100644 (file)
@@ -188,9 +188,12 @@ WXDLLIMPEXP_BASE void *calloc( size_t num, size_t size );
 #endif /* __WXWINCE__ */
 
 /* Almost all compiler have strdup(), but not quite all: CodeWarrior under
-   Mac and VC++ for Windows CE don't provide it; additionally, gcc under
-   Mac and OpenVMS do not have wcsdup: */
-#if defined(__VISUALC__) && __VISUALC__ >= 1400
+   Mac and VC++ for Windows CE don't provide it. Another special case is gcc in
+   strict ANSI mode: normally it doesn't provide strdup() but MinGW does
+   provide it under MSVC-compatible name so test for it before checking
+   __WX_STRICT_ANSI_GCC__. */
+#if (defined(__VISUALC__) && __VISUALC__ >= 1400) || \
+    defined(__MINGW32__)
     #define wxCRT_StrdupA _strdup
 #elif !((defined(__MWERKS__) && defined(__WXMAC__)) || \
         defined(__WXWINCE__) || \