]> git.saurik.com Git - wxWidgets.git/commitdiff
enable tests using \u escapes for VC7; replaced compiler version checks for this...
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 31 Mar 2006 17:42:26 +0000 (17:42 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 31 Mar 2006 17:42:26 +0000 (17:42 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

tests/strings/unicode.cpp
tests/testprec.h

index 94f4c90e8cac408b158c409db50a3c3d40ebb63f..bf2aace2cceb4dd9c03224740726f228c5077d0e 100644 (file)
 #ifndef WX_PRECOMP
 #endif // WX_PRECOMP
 
+// ----------------------------------------------------------------------------
+// local functions
+// ----------------------------------------------------------------------------
+
+#if wxUSE_WCHAR_T && !wxUSE_UNICODE
+
+// in case wcscmp is missing
+static int wx_wcscmp(const wchar_t *s1, const wchar_t *s2)
+{
+    while (*s1 == *s2 && *s1 != 0)
+    {
+        s1++;
+        s2++;
+    }
+    return *s1 - *s2;
+}
+
+#endif // wxUSE_WCHAR_T && !wxUSE_UNICODE
+
 // ----------------------------------------------------------------------------
 // test class
 // ----------------------------------------------------------------------------
@@ -142,24 +161,10 @@ void UnicodeTestCase::Conversion()
 #endif
 }
 
-#if !wxUSE_UNICODE
-// in case wcscmp is missing
-//
-static int wx_wcscmp(const wchar_t *s1, const wchar_t *s2)
-{
-    while (*s1 == *s2 && *s1 != 0)
-    {
-        s1++;
-        s2++;
-    }
-    return *s1 - *s2;
-}
-#endif
-
 void
 UnicodeTestCase::DoTestConversion(const char *s,
-                                 const wchar_t *ws,
-                                 wxCSConv& conv)
+                                  const wchar_t *ws,
+                                  wxCSConv& conv)
 {
 #if wxUSE_UNICODE
     if ( ws )
@@ -193,21 +198,14 @@ void UnicodeTestCase::ConversionUTF7()
     {
         { "+-", L"+" },
         { "+--", L"+-" },
-        //\u isn't recognized on MSVC 6
-#if !defined(_MSC_VER)
-#if !defined(__GNUC__) || (__GNUC__ >= 3)
+
+#ifdef wxHAVE_U_ESCAPE
         { "+AKM-", L"\u00a3" },
-#endif
-#endif
-        // Windows accepts invalid UTF-7 strings and so does our UTF-7
-        // conversion code -- this is wrong IMO but the way it is for now
-        //
-        // notice that converting "+" still behaves as expected because the
-        // result is just an empty string, i.e. the same as if there were an
-        // error, but converting "a+" results in "a" while it really should
-        // fail
+#endif // wxHAVE_U_ESCAPE
+
+        // the following are invalid UTF-7 sequences
         { "+", NULL },
-        { "a+", L"a" },
+        { "a+", NULL },
     };
 
     wxCSConv conv(_T("utf-7"));
@@ -223,10 +221,8 @@ void UnicodeTestCase::ConversionUTF8()
     static const StringConversionData utf8data[] =
     {
         //\u isn't recognized on MSVC 6
-#if !defined(_MSC_VER)
-#if !defined(__GNUC__) || (__GNUC__ >= 3)
+#ifdef wxHAVE_U_ESCAPE
         { "\xc2\xa3", L"\u00a3" },
-#endif
 #endif
         { "\xc2", NULL },
     };
index 776407794f53142a88f1e9f91fee15317511ddb3..a794ef33f28f54fb5423b2c1544a10e198fc78c5 100644 (file)
@@ -1,3 +1,9 @@
-
 #include "wx/wxprec.h"
 #include "wx/cppunit.h"
+
+// define wxHAVE_U_ESCAPE if the compiler supports \uxxxx character constants
+#if (defined(__VISUALC__) && (__VISUALC__ >= 1300)) || \
+    (defined(__GNUC__) && (__GNUC__ >= 3))
+    #define wxHAVE_U_ESCAPE
+#endif
+