From adfbce4fecf4d0de46fa241f8af27fd18d2f9de9 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 22 Jun 2011 22:58:04 +0000 Subject: [PATCH] Use strdup() even in strict ANSI mode with MinGW. 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 | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/include/wx/wxcrtbase.h b/include/wx/wxcrtbase.h index bda4ef8572..9b00b7f20d 100644 --- a/include/wx/wxcrtbase.h +++ b/include/wx/wxcrtbase.h @@ -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__) || \ -- 2.45.2