From: Vadim Zeitlin Date: Fri, 31 Mar 2006 17:42:26 +0000 (+0000) Subject: enable tests using \u escapes for VC7; replaced compiler version checks for this... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/8da7a00a942169fad951b0608683de01b74b4ac3?ds=sidebyside enable tests using \u escapes for VC7; replaced compiler version checks for this with wxHAVE_U_ESCAPE defined once and for all in testprec.h git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/tests/strings/unicode.cpp b/tests/strings/unicode.cpp index 94f4c90e8c..bf2aace2cc 100644 --- a/tests/strings/unicode.cpp +++ b/tests/strings/unicode.cpp @@ -20,6 +20,25 @@ #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 }, }; diff --git a/tests/testprec.h b/tests/testprec.h index 776407794f..a794ef33f2 100644 --- a/tests/testprec.h +++ b/tests/testprec.h @@ -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 +