components/wxwidgets/patches/wxwidgets-04-Tmacro.patch
author Vladimir Marek <Vladimir.Marek@oracle.com>
Tue, 10 May 2011 14:43:11 -0700
changeset 262 7e3572caa313
permissions -rw-r--r--
7031528 move wxGTK to userland
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
262
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     1
From 497270fcc17db1f0cb12d8aa2c49b74805c7195a Mon Sep 17 00:00:00 2001
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     2
From: Vadim Zeitlin <[email protected]>
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     3
Date: Wed, 9 Sep 2009 15:39:27 +0200
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     4
Subject: [PATCH 3/5] Don't define _T() when using Sun compiler if possible.
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     5
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     6
Avoid defining _T() if possible as it conflicts with the use of this
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     7
identifier in standard headers. Do still define it when building wx itself or
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     8
when the special symbol wxNEEDS__T is explicitly predefined.
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     9
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    10
See #10660.
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    11
---
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    12
 include/wx/wxchar.h |   50 +++++++++++++++++++++++++++++++-------------------
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    13
 1 files changed, 31 insertions(+), 19 deletions(-)
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    14
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    15
diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    16
index 2620fba..0850ef4 100644
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    17
--- a/include/wx/wxchar.h
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    18
+++ b/include/wx/wxchar.h
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    19
@@ -227,29 +227,41 @@
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    20
 #endif /* ASCII/Unicode */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    21
 
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    22
 /* ---------------------------------------------------------------------------- */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    23
-/* define _T() and related macros */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    24
+/* define wxT() and related macros */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    25
 /* ---------------------------------------------------------------------------- */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    26
 
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    27
-/* BSD systems define _T() to be something different in ctype.h, override it */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    28
-#if defined(__FreeBSD__) || defined(__DARWIN__)
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    29
-    #include <ctype.h>
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    30
-    #undef _T
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    31
+#if wxUSE_UNICODE
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    32
+    /* use wxCONCAT_HELPER so that x could be expanded if it's a macro */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    33
+    #define wxT(x) wxCONCAT_HELPER(L, x)
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    34
+#else /* !Unicode */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    35
+    #define wxT(x) x
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    36
+#endif /* Unicode/!Unicode */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    37
+
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    38
+/*
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    39
+    We define _T() as a synonym of wxT() for backwards compatibility and also
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    40
+    for the benefit of Windows programmers used to it. But this identifier is a
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    41
+    reserved one and this does create problems in practice, notably with Sun CC
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    42
+    which uses it in the recent versions of its standard headers. So avoid
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    43
+    defining it for this compiler at all, unless it was explicitly requested by
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    44
+    predefining wxNEEDS__T macro before including this header or if we're
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    45
+    building wx itself which does need and compiles fine thanks to the special
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    46
+    workarounds for Sun CC in wx/{before,after}std.h.
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    47
+ */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    48
+#ifndef wxNEEDS__T
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    49
+    #if defined(WXBUILDING) || !(defined (__SUNPRO_C) || defined(__SUNPRO_CC))
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    50
+        #define wxNEEDS__T
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    51
+    #endif
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    52
 #endif
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    53
 
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    54
-/* could already be defined by tchar.h (it's quasi standard) */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    55
-#ifndef _T
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    56
-    #if !wxUSE_UNICODE
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    57
-        #define _T(x) x
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    58
-    #else /* Unicode */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    59
-        /* use wxCONCAT_HELPER so that x could be expanded if it's a macro */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    60
-        #define _T(x) wxCONCAT_HELPER(L, x)
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    61
-    #endif /* ASCII/Unicode */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    62
-#endif /* !defined(_T) */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    63
-
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    64
-/* although global macros with such names are normally bad, we want to have */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    65
-/* another name for _T() which should be used to avoid confusion between _T() */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    66
-/* and _() in wxWidgets sources */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    67
-#define wxT(x)       _T(x)
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    68
+#ifdef wxNEEDS__T
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    69
+    /* BSDs define _T() to be something different in ctype.h, override it */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    70
+    #if defined(__FreeBSD__) || defined(__DARWIN__)
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    71
+        #include <ctype.h>
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    72
+    #endif
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    73
+    #undef _T
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    74
+
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    75
+    #define _T(x) wxT(x)
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    76
+#endif /* wxNEEDS__T */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    77
 
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    78
 /* this macro exists only for forward compatibility with wx 3.0 */
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    79
 #define wxS(x)       _T(x)
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    80
-- 
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    81
1.6.3.3
7e3572caa313 7031528 move wxGTK to userland
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    82