]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix wx headers compilation in mingw32 strict ANSI mode.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 31 Oct 2009 15:58:05 +0000 (15:58 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 31 Oct 2009 15:58:05 +0000 (15:58 +0000)
Add checks for !defined(__STRICT_ANSI__) when checking for various common but
non-standard CRT extensions.

This allows compiling programs using wx with g++ -std=c++[0x] option (notice
that compiling wx itself using it still doesn't work).

Closes #11374.

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

include/wx/filefn.h
include/wx/wxcrtbase.h

index 1c6246b13e4b2b53efe883074d103790455acb80..364d83daa5b5b20de0d1e4e7f1ae00b2542da960 100644 (file)
@@ -344,7 +344,7 @@ enum wxFileKind
 
     // finally the default char-type versions
     #if wxUSE_UNICODE
-        #if wxUSE_UNICODE_MSLU
+        #if wxUSE_UNICODE_MSLU || defined(__STRICT_ANSI__)
             // implement the missing file functions in Win9x ourselves
             WXDLLIMPEXP_BASE int wxMSLU__wopen(const wxChar *name,
                                                int flags, int mode);
index d8a52480036145d95e3dbec760072f9e4ff6456e..09b4487019ea362b65fbde399da64e861e33e594 100644 (file)
@@ -57,7 +57,7 @@
    define it ourselves for them
  */
 #ifndef isascii
-    #if defined(__MWERKS__)
+    #if defined(__MWERKS__) || defined(__STRICT_ANSI__)
         #define wxNEED_ISASCII
     #elif defined(_WIN32_WCE)
         #if _WIN32_WCE <= 211
@@ -180,12 +180,12 @@ WXDLLIMPEXP_BASE void *calloc( size_t num, size_t size );
    Mac and OpenVMS do not have wcsdup: */
 #if defined(__VISUALC__) && __VISUALC__ >= 1400
     #define wxCRT_StrdupA _strdup
-#elif !(defined(__MWERKS__) && defined(__WXMAC__)) && !defined(__WXWINCE__)
+#elif !(defined(__MWERKS__) && defined(__WXMAC__)) && !defined(__WXWINCE__) && !defined(__STRICT_ANSI__)
     #define wxCRT_StrdupA strdup
 #endif
 
 // all compilers except Cygwin provide _wcsdup() under Windows
-#if defined(__WINDOWS__) && !defined(__CYGWIN__)
+#if defined(__WINDOWS__) && !defined(__CYGWIN__) && !defined(__STRICT_ANSI__)
     #define wxCRT_StrdupW _wcsdup
 #elif defined(HAVE_WCSDUP)
     #define wxCRT_StrdupW wcsdup
@@ -266,7 +266,7 @@ WXDLLIMPEXP_BASE void *calloc( size_t num, size_t size );
         (defined(__MWERKS__) && defined(__INTEL__))
     #define wxCRT_StricmpA _stricmp
     #define wxCRT_StrnicmpA _strnicmp
-#elif defined(__UNIX__) || defined(__GNUWIN32__)
+#elif defined(__UNIX__) || (defined(__GNUWIN32__) && !defined(__STRICT_ANSI__))
     #define wxCRT_StricmpA strcasecmp
     #define wxCRT_StrnicmpA strncasecmp
 /* #else -- use wxWidgets implementation */
@@ -460,7 +460,7 @@ WXDLLIMPEXP_BASE wchar_t *wxCRT_StrtokW(wchar_t *psz, const wchar_t *delim, wcha
 #else /* Unicode filenames */
     /* special case: these functions are missing under Win9x with Unicows so we
        have to implement them ourselves */
-    #if wxUSE_UNICODE_MSLU
+    #if wxUSE_UNICODE_MSLU || defined(__STRICT_ANSI__)
             WXDLLIMPEXP_BASE FILE* wxMSLU__wfopen(const wchar_t *name, const wchar_t *mode);
             WXDLLIMPEXP_BASE FILE* wxMSLU__wfreopen(const wchar_t *name, const wchar_t *mode, FILE *stream);
             WXDLLIMPEXP_BASE int wxMSLU__wrename(const wchar_t *oldname, const wchar_t *newname);
@@ -575,7 +575,7 @@ WXDLLIMPEXP_BASE wchar_t * wxCRT_GetenvW(const wchar_t *name);
         #define wxCRT_AtolW         watol
     /* else: use ANSI versions */
     #endif
-#elif defined(wxHAVE_TCHAR_SUPPORT)
+#elif defined(wxHAVE_TCHAR_SUPPORT) && !defined(__STRICT_ANSI__)
     #define  wxCRT_AtoiW           _wtoi
     #define  wxCRT_AtolW           _wtol
     /* _wtof doesn't exist */