Fix compilation on Windows when wchar_t is a typedef instead of a native type (trigge...
authorhausmann <hausmann@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 Oct 2007 14:14:13 +0000 (14:14 +0000)
committerhausmann <hausmann@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 Oct 2007 14:14:13 +0000 (14:14 +0000)
Don't provide the wchar_t overloads then as they conflict with the unsigned short ones.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@26771 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/wtf/ASCIICType.h

index bbbd000fd9afa4c2ee28b7bd3b3dc290beaa0c94..dc51e5bcaafbddb95404c1c38134b35da406a5b3 100644 (file)
@@ -1,3 +1,20 @@
+2007-10-19  Simon Hausmann  <hausmann@kde.org>
+
+        Reviewed by Lars.
+
+        Fix compilation on Windows when wchar_t is a typedef instead of a native type (triggered by -Zc:wchar_t-).
+        Don't provide the wchar_t overloads then as they conflict with the unsigned short ones.
+
+        * wtf/ASCIICType.h:
+        (WTF::isASCIIAlpha):
+        (WTF::isASCIIAlphanumeric):
+        (WTF::isASCIIDigit):
+        (WTF::isASCIIHexDigit):
+        (WTF::isASCIILower):
+        (WTF::isASCIISpace):
+        (WTF::toASCIILower):
+        (WTF::toASCIIUpper):
+
 2007-10-19  Simon Hausmann  <hausmann@kde.org>
 
         Reviewed by Lars.
index 104e9775b24f434cfb1c8a515a820378d3da8779..ad0bb4990e042e132f900069fde68487f54d7f47 100644 (file)
@@ -29,6 +29,8 @@
 #ifndef WTF_ASCIICType_h
 #define WTF_ASCIICType_h
 
+#include <wtf/Platform.h>
+
 // The behavior of many of the functions in the <ctype.h> header is dependent
 // on the current locale. But in the WebKit project, all uses of those functions
 // are in code processing something that's not locale-specific. These equivalents
@@ -43,35 +45,51 @@ namespace WTF {
 
     inline bool isASCIIAlpha(char c) { return (c | 0x20) >= 'a' && (c | 0x20) <= 'z'; }
     inline bool isASCIIAlpha(unsigned short c) { return (c | 0x20) >= 'a' && (c | 0x20) <= 'z'; }
+#if !PLATFORM(WIN_OS) || defined(_NATIVE_WCHAR_T_DEFINED)
     inline bool isASCIIAlpha(wchar_t c) { return (c | 0x20) >= 'a' && (c | 0x20) <= 'z'; }
+#endif
 
     inline bool isASCIIAlphanumeric(char c) { return c >= '0' && c <= '9' || (c | 0x20) >= 'a' && (c | 0x20) <= 'z'; }
     inline bool isASCIIAlphanumeric(unsigned short c) { return c >= '0' && c <= '9' || (c | 0x20) >= 'a' && (c | 0x20) <= 'z'; }
+#if !PLATFORM(WIN_OS) || defined(_NATIVE_WCHAR_T_DEFINED)
     inline bool isASCIIAlphanumeric(wchar_t c) { return c >= '0' && c <= '9' || (c | 0x20) >= 'a' && (c | 0x20) <= 'z'; }
+#endif
 
     inline bool isASCIIDigit(char c) { return c >= '0' && c <= '9'; }
     inline bool isASCIIDigit(unsigned short c) { return c >= '0' && c <= '9'; }
+#if !PLATFORM(WIN_OS) || defined(_NATIVE_WCHAR_T_DEFINED)
     inline bool isASCIIDigit(wchar_t c) { return c >= '0' && c <= '9'; }
+#endif
 
     inline bool isASCIIHexDigit(char c) { return c >= '0' && c <= '9' || (c | 0x20) >= 'a' && (c | 0x20) <= 'f'; }
     inline bool isASCIIHexDigit(unsigned short c) { return c >= '0' && c <= '9' || (c | 0x20) >= 'a' && (c | 0x20) <= 'f'; }
+#if !PLATFORM(WIN_OS) || defined(_NATIVE_WCHAR_T_DEFINED)
     inline bool isASCIIHexDigit(wchar_t c) { return c >= '0' && c <= '9' || (c | 0x20) >= 'a' && (c | 0x20) <= 'f'; }
+#endif
 
     inline bool isASCIILower(char c) { return c >= 'a' && c <= 'z'; }
     inline bool isASCIILower(unsigned short c) { return c >= 'a' && c <= 'z'; }
+#if !PLATFORM(WIN_OS) || defined(_NATIVE_WCHAR_T_DEFINED)
     inline bool isASCIILower(wchar_t c) { return c >= 'a' && c <= 'z'; }
+#endif
 
     inline bool isASCIISpace(char c) { return c == '\t' || c == '\n' || c == '\v' || c =='\f' || c == '\r' || c == ' '; }
     inline bool isASCIISpace(unsigned short c) { return c == '\t' || c == '\n' || c == '\v' || c =='\f' || c == '\r' || c == ' '; }
+#if !PLATFORM(WIN_OS) || defined(_NATIVE_WCHAR_T_DEFINED)
     inline bool isASCIISpace(wchar_t c) { return c == '\t' || c == '\n' || c == '\v' || c =='\f' || c == '\r' || c == ' '; }
+#endif
 
     inline char toASCIILower(char c) { return c | ((c >= 'A' && c <= 'Z') << 5); }
     inline unsigned short toASCIILower(unsigned short c) { return c | ((c >= 'A' && c <= 'Z') << 5); }
+#if !PLATFORM(WIN_OS) || defined(_NATIVE_WCHAR_T_DEFINED)
     inline wchar_t toASCIILower(wchar_t c) { return c | ((c >= 'A' && c <= 'Z') << 5); }
+#endif
 
     inline char toASCIIUpper(char c) { return static_cast<char>(c & ~((c >= 'a' && c <= 'z') << 5)); }
     inline unsigned short toASCIIUpper(unsigned short c) { return static_cast<unsigned short>(c & ~((c >= 'a' && c <= 'z') << 5)); }
+#if !PLATFORM(WIN_OS) || defined(_NATIVE_WCHAR_T_DEFINED)
     inline wchar_t toASCIIUpper(wchar_t c) { return static_cast<wchar_t>(c & ~((c >= 'a' && c <= 'z') << 5)); }
+#endif
 
 }