]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/platform.h
fixing overrelease and out-of-bounds write, fixes #13725
[wxWidgets.git] / include / wx / platform.h
index 59b553c909601e77a62492593e8f704e9695f0d1..c91ac39e998e88fe1f5d4a5cb0896a3c317cf96b 100644 (file)
 #ifndef _WX_PLATFORM_H_
 #define _WX_PLATFORM_H_
 
 #ifndef _WX_PLATFORM_H_
 #define _WX_PLATFORM_H_
 
-
-
-/*
-    Codewarrior doesn't define any Windows symbols until some headers
-    are included
-*/
-#ifdef __MWERKS__
-#   include <stddef.h>
-
-#  if !defined(__WXMAC__) && !defined(__WINDOWS__) && !defined(WIN32) && !defined(_WIN32_WCE)
-#    define __PALMOS__ 0x05000000
-#  endif
-#endif
-
 #ifdef __WXMAC_XCODE__
 #    include <unistd.h>
 #    include <TargetConditionals.h>
 #    include <AvailabilityMacros.h>
 #ifdef __WXMAC_XCODE__
 #    include <unistd.h>
 #    include <TargetConditionals.h>
 #    include <AvailabilityMacros.h>
+#    ifndef MAC_OS_X_VERSION_10_4
+#       define MAC_OS_X_VERSION_10_4 1040
+#    endif
+#    ifndef MAC_OS_X_VERSION_10_5
+#       define MAC_OS_X_VERSION_10_5 1050
+#    endif
+#    ifndef MAC_OS_X_VERSION_10_6
+#       define MAC_OS_X_VERSION_10_6 1060
+#    endif
+#    ifndef MAC_OS_X_VERSION_10_7
+#       define MAC_OS_X_VERSION_10_7 1070
+#    endif
+#    ifndef MAC_OS_X_VERSION_10_8
+#       define MAC_OS_X_VERSION_10_8 1080
+#    endif
 #    include "wx/osx/config_xcode.h"
 #    ifndef __WXOSX__
 #        define __WXOSX__ 1
 #    include "wx/osx/config_xcode.h"
 #    ifndef __WXOSX__
 #        define __WXOSX__ 1
 #    endif
 #endif
 
 #    endif
 #endif
 
-#if defined(__PALMOS__)
-#   if __PALMOS__ == 0x06000000
-#       define __WXPALMOS6__ 1
-#   endif
-#   if __PALMOS__ == 0x05000000
-#       define __WXPALMOS5__ 1
-#   endif
-#   ifndef __WXPALMOS__
-#       define __WXPALMOS__ 1
-#   endif
-#   ifdef __WXMSW__
-#       undef __WXMSW__
-#   endif
-#   ifdef __WINDOWS__
-#       undef __WINDOWS__
-#   endif
-#   ifdef __WIN32__
-#       undef __WIN32__
-#   endif
-#   ifdef WIN32
-#       undef WIN32
-#   endif
-#   ifdef _WIN32
-#       undef _WIN32
-#   endif
-#endif
-
 #if defined(_WIN64)
 #    ifndef _WIN32
         /*
 #if defined(_WIN64)
 #    ifndef _WIN32
         /*
 #   define __WXHANDHELD__
 #endif
 
 #   define __WXHANDHELD__
 #endif
 
+#ifdef __ANDROID__
+#   define __WXANDROID__
+#   include "wx/android/config_android.h"
+#endif
+
 /*
    Include wx/setup.h for the Unix platform defines generated by configure and
    the library compilation options
 /*
    Include wx/setup.h for the Unix platform defines generated by configure and
    the library compilation options
  */
 #include "wx/setup.h"
 
  */
 #include "wx/setup.h"
 
-#ifdef __GCCXML__
-    /*
-        we're using gccxml to create an XML representation of the entire
-        wxWidgets interface; use a special setup_gccxml.h file to fix some
-        of the stuff #defined by the real setup.h
-    */
-    #include "wx/setup_gccxml.h"
-#endif
-
 /*
    Convenience for any optional classes that use the wxAnyButton base class.
  */
 /*
    Convenience for any optional classes that use the wxAnyButton base class.
  */
 #   endif
 #endif /* wxUSE_UNICODE */
 
 #   endif
 #endif /* wxUSE_UNICODE */
 
-#if defined( __MWERKS__ ) && !defined(__INTEL__)
-/* otherwise MSL headers bring in WIN32 dependant APIs */
-#undef UNICODE
-#endif
-
 
 /*
    test for old versions of Borland C, normally need at least 5.82, Turbo
 
 /*
    test for old versions of Borland C, normally need at least 5.82, Turbo
 #        endif
 #    endif
 
 #        endif
 #    endif
 
-/*
-   OS: Classic Mac OS
- */
-#elif defined(applec) || \
-      defined(THINK_C) || \
-      (defined(__MWERKS__) && !defined(__INTEL__))
-      /* MacOS */
-#    if !defined(wxSIZE_T_IS_UINT) && !defined(wxSIZE_T_IS_ULONG)
-#        define wxSIZE_T_IS_ULONG
-#    endif
-
 /*
    OS: OS/2
  */
 /*
    OS: OS/2
  */
 #    endif
 #    define wxSIZE_T_IS_UINT
 
 #    endif
 #    define wxSIZE_T_IS_UINT
 
-/*
-   OS: Palm OS
- */
-#elif defined(__PALMOS__)
-#    ifdef __WIN32__
-#        error "__WIN32__ should not be defined for PalmOS"
-#    endif
-#    ifdef __WINDOWS__
-#        error "__WINDOWS__ should not be defined for PalmOS"
-#    endif
-#    ifdef __WXMSW__
-#        error "__WXMSW__ should not be defined for PalmOS"
-#    endif
-
 /*
    OS: Otherwise it must be Windows
  */
 /*
    OS: Otherwise it must be Windows
  */
 
     /*
        define another standard symbol for Microsoft Visual C++: the standard
 
     /*
        define another standard symbol for Microsoft Visual C++: the standard
-       one (_MSC_VER) is also defined by Metrowerks compiler
+       one (_MSC_VER) is also defined by some other compilers.
      */
      */
-#    if defined(_MSC_VER) && !defined(__MWERKS__)
+#    if defined(_MSC_VER)
 #        define __VISUALC__ _MSC_VER
 
     /*
 #        define __VISUALC__ _MSC_VER
 
     /*
 #       define __VISUALC9__
 #   elif __VISUALC__ < 1700
 #       define __VISUALC10__
 #       define __VISUALC9__
 #   elif __VISUALC__ < 1700
 #       define __VISUALC10__
+#   elif __VISUALC__ < 1800
+#       define __VISUALC11__
 #   else
 #       pragma message("Please update wx/platform.h to recognize this VC++ version")
 #   endif
 #   else
 #       pragma message("Please update wx/platform.h to recognize this VC++ version")
 #   endif
     !defined(__WXPM__) && \
     !defined(__WXMOTIF__) && \
     !defined(__WXGTK__) && \
     !defined(__WXPM__) && \
     !defined(__WXMOTIF__) && \
     !defined(__WXGTK__) && \
-    !defined(__WXX11__) && \
-    !defined(__WXPALMOS__)
+    !defined(__WXX11__)
 #    include "wx/msw/gccpriv.h"
 #else
 #    undef wxCHECK_W32API_VERSION
 #    include "wx/msw/gccpriv.h"
 #else
 #    undef wxCHECK_W32API_VERSION
     checking for any OS X port (Carbon and Cocoa) and __WXMAC__ is an old name
     for it.
  */
     checking for any OS X port (Carbon and Cocoa) and __WXMAC__ is an old name
     for it.
  */
-#if defined(__WXOSX_CARBON__) || defined(__WXOSX_COCOA__) || defined(__WXOSX_IPHONE__) \
-        || (defined(__DARWIN__) && !wxUSE_GUI)
+#if defined(__WXOSX_CARBON__) || defined(__WXOSX_COCOA__) || defined(__WXOSX_IPHONE__)
 #   ifndef __WXOSX__
 #       define __WXOSX__ 1
 #   endif
 #   ifndef __WXOSX__
 #       define __WXOSX__ 1
 #   endif
 #        ifndef MAC_OS_X_VERSION_10_6
 #           define MAC_OS_X_VERSION_10_6 1060
 #        endif
 #        ifndef MAC_OS_X_VERSION_10_6
 #           define MAC_OS_X_VERSION_10_6 1060
 #        endif
+#        ifndef MAC_OS_X_VERSION_10_7
+#           define MAC_OS_X_VERSION_10_7 1070
+#        endif
+#        ifndef MAC_OS_X_VERSION_10_8
+#           define MAC_OS_X_VERSION_10_8 1080
+#        endif
 #    else
 #        error "only mach-o configurations are supported"
 #    endif
 #    else
 #        error "only mach-o configurations are supported"
 #    endif
 
 /* Choose which method we will use for updating menus
  * - in OnIdle, or when we receive a wxEVT_MENU_OPEN event.
 
 /* Choose which method we will use for updating menus
  * - in OnIdle, or when we receive a wxEVT_MENU_OPEN event.
- * Presently, only Windows and GTK+ support wxEVT_MENU_OPEN.
+ * Presently, only Windows, OS X and GTK+ support wxEVT_MENU_OPEN.
  */
 #ifndef wxUSE_IDLEMENUUPDATES
  */
 #ifndef wxUSE_IDLEMENUUPDATES
-#    if (defined(__WXMSW__) || defined(__WXGTK__)) && !defined(__WXUNIVERSAL__)
+#    if (defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXOSX__)) && !defined(__WXUNIVERSAL__)
 #        define wxUSE_IDLEMENUUPDATES 0
 #    else
 #        define wxUSE_IDLEMENUUPDATES 1
 #        define wxUSE_IDLEMENUUPDATES 0
 #    else
 #        define wxUSE_IDLEMENUUPDATES 1
 #    define wxUSE_WXDIB 1
 #endif
 
 #    define wxUSE_WXDIB 1
 #endif
 
-#if defined (__WXPALMOS__)
-#include "wx/palmos/missing.h"
-#endif /* __WXPALMOS__ */
-
-#if !defined (__WXPALMOS5__)
-#define POSSEC_APPBASE
-#define POSSEC_ARCHIVE
-#define POSSEC_CLNTDATA
-#define POSSEC_CMDLINE
-#define POSSEC_CONFIG
-#define POSSEC_DATETIME
-#define POSSEC_DATETIME2
-#define POSSEC_DATSTRM
-#define POSSEC_DIRCMN
-#define POSSEC_DYNARRAY
-#define POSSEC_DYNLIB
-#define POSSEC_DYNLOAD
-#define POSSEC_ENCCONV
-#define POSSEC_EXTENDED
-#define POSSEC_FFILE
-#define POSSEC_FILE
-#define POSSEC_FILECONF
-#define POSSEC_FILEFN
-#endif /* __WXPALMOS5__ */
-
 /*
     Optionally supported C++ features.
  */
 /*
     Optionally supported C++ features.
  */