LCOV - code coverage report
Current view: top level - libreoffice/sal/qa/rtl/textenc - rtl_textcvt.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 204 225 90.7 %
Date: 2012-12-27 Functions: 18 18 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : 
      21             : #include "sal/config.h"
      22             : 
      23             : #include <cstddef>
      24             : #include <cstring>
      25             : 
      26             : #include <cppunit/TestFixture.h>
      27             : #include <cppunit/extensions/HelperMacros.h>
      28             : 
      29             : #include "rtl/string.hxx"
      30             : #include "rtl/tencinfo.h"
      31             : #include "rtl/textcvt.h"
      32             : #include "rtl/textenc.h"
      33             : #include "sal/types.h"
      34             : #include <sal/macros.h>
      35             : 
      36             : namespace {
      37             : 
      38             : struct SingleByteCharSet {
      39             :     rtl_TextEncoding m_nEncoding;
      40             :     sal_Unicode m_aMap[256];
      41             : };
      42             : 
      43          24 : void testSingleByteCharSet(SingleByteCharSet const & rSet) {
      44             :     sal_Char aText[256];
      45             :     sal_Unicode aUnicode[256];
      46          24 :     sal_Size nNumber = 0;
      47        6168 :     for (int i = 0; i < 256; ++i) {
      48        6144 :         if (rSet.m_aMap[i] != 0xFFFF) {
      49        5705 :             aText[nNumber++] = static_cast< sal_Char >(i);
      50             :         }
      51             :     }
      52             :     {
      53             :         rtl_TextToUnicodeConverter aConverter
      54          24 :             = rtl_createTextToUnicodeConverter(rSet.m_nEncoding);
      55             :         rtl_TextToUnicodeContext aContext
      56          24 :             = rtl_createTextToUnicodeContext(aConverter);
      57          24 :         CPPUNIT_ASSERT_MESSAGE("failure #1", aConverter && aContext);
      58             :         sal_Size nSize;
      59             :         sal_uInt32 nInfo;
      60             :         sal_Size nConverted;
      61             :         nSize = rtl_convertTextToUnicode(
      62             :             aConverter, aContext, aText, nNumber, aUnicode, nNumber,
      63             :             (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
      64             :              | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
      65             :              | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
      66          24 :             &nInfo, &nConverted);
      67          48 :         CPPUNIT_ASSERT_MESSAGE(
      68             :             "failure #2",
      69          24 :             nSize == nNumber && nInfo == 0 && nConverted == nNumber);
      70          24 :         rtl_destroyTextToUnicodeContext(aConverter, aContext);
      71          24 :         rtl_destroyTextToUnicodeConverter(aConverter);
      72             :     }
      73             :     {
      74          24 :         bool bSuccess = true;
      75          24 :         int j = 0;
      76        6168 :         for (int i = 0; i < 256; ++i) {
      77        6144 :             if (rSet.m_aMap[i] != 0xFFFF && aUnicode[j++] != rSet.m_aMap[i]) {
      78           0 :                 bSuccess = false;
      79           0 :                 break;
      80             :             }
      81             :         }
      82          24 :         CPPUNIT_ASSERT_MESSAGE("failure #3", bSuccess);
      83             :     }
      84          24 :     if (rSet.m_nEncoding == RTL_TEXTENCODING_ASCII_US) {
      85           1 :         nNumber = 128;
      86             :     }
      87             :     {
      88             :         rtl_UnicodeToTextConverter aConverter
      89          24 :             = rtl_createUnicodeToTextConverter(rSet.m_nEncoding);
      90             :         rtl_UnicodeToTextContext aContext
      91          24 :             = rtl_createUnicodeToTextContext(aConverter);
      92          24 :         CPPUNIT_ASSERT_MESSAGE("failure #4", aConverter && aContext);
      93             :         sal_Size nSize;
      94             :         sal_uInt32 nInfo;
      95             :         sal_Size nConverted;
      96             :         nSize = rtl_convertUnicodeToText(
      97             :             aConverter, aContext, aUnicode, nNumber, aText, nNumber,
      98             :             (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
      99             :              | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR),
     100          24 :             &nInfo, &nConverted);
     101          48 :         CPPUNIT_ASSERT_MESSAGE(
     102             :             "failure #5",
     103          24 :             nSize == nNumber && nInfo == 0 && nConverted == nNumber);
     104          24 :         rtl_destroyUnicodeToTextContext(aConverter, aContext);
     105          24 :         rtl_destroyUnicodeToTextConverter(aConverter);
     106             :     }
     107             :     {
     108          24 :         bool bSuccess = true;
     109          24 :         int j = 0;
     110        6168 :         for (int i = 0; i < 256; ++i) {
     111       11849 :             if (rSet.m_aMap[i] != 0xFFFF
     112        5705 :                 && aText[j++] != static_cast< sal_Char >(i))
     113             :             {
     114           0 :                 bSuccess = false;
     115           0 :                 break;
     116             :             }
     117             :         }
     118          24 :         CPPUNIT_ASSERT_MESSAGE("failure #6", bSuccess);
     119             :     }
     120        6168 :     for (int i = 0; i < 256; ++i) {
     121        6144 :         if (rSet.m_aMap[i] == 0xFFFF) {
     122         439 :             aText[0] = static_cast< sal_Char >(i);
     123             :             rtl_TextToUnicodeConverter aConverter
     124         439 :                 = rtl_createTextToUnicodeConverter(rSet.m_nEncoding);
     125             :             rtl_TextToUnicodeContext aContext
     126         439 :                 = rtl_createTextToUnicodeContext(aConverter);
     127         439 :             CPPUNIT_ASSERT_MESSAGE("failure #7", aConverter && aContext);
     128             :             sal_Size nSize;
     129             :             sal_uInt32 nInfo;
     130             :             sal_Size nConverted;
     131             :             nSize = rtl_convertTextToUnicode(
     132             :                 aConverter, aContext, aText, 1, aUnicode, 1,
     133             :                 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
     134             :                  | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
     135             :                  | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
     136         439 :                 &nInfo, &nConverted);
     137             : 
     138         439 :             sal_uInt32 nExpectedInfo = (RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_UNDEFINED);
     139             : 
     140         878 :             CPPUNIT_ASSERT_MESSAGE(
     141             :                 "failure #9",
     142             :                 (nSize == 0
     143             :                  && (nInfo == nExpectedInfo)
     144         439 :                  && nConverted == 0));
     145         439 :             rtl_destroyTextToUnicodeContext(aConverter, aContext);
     146         439 :             rtl_destroyTextToUnicodeConverter(aConverter);
     147             :         }
     148             :     }
     149          24 : }
     150             : 
     151             : int const TEST_STRING_SIZE = 1000;
     152             : 
     153             : struct ComplexCharSetTest {
     154             :     rtl_TextEncoding m_nEncoding;
     155             :     char const * m_pText;
     156             :     sal_Size m_nTextSize;
     157             :     sal_Unicode m_aUnicode[TEST_STRING_SIZE];
     158             :     sal_Size m_nUnicodeSize;
     159             :     bool m_bNoContext;
     160             :     bool m_bForward;
     161             :     bool m_bReverse;
     162             :     bool m_bGlobalSignature;
     163             :     sal_uInt32 m_nReverseUndefined;
     164             : };
     165             : 
     166          96 : void doComplexCharSetTest(ComplexCharSetTest const & rTest) {
     167          96 :     if (rTest.m_bForward) {
     168             :         sal_Unicode aUnicode[TEST_STRING_SIZE];
     169             :         rtl_TextToUnicodeConverter aConverter
     170          75 :             = rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
     171             :         rtl_TextToUnicodeContext aContext
     172          75 :             = rtl_createTextToUnicodeContext(aConverter);
     173          75 :         CPPUNIT_ASSERT_MESSAGE("failure #10", aConverter && aContext);
     174             :         sal_Size nSize;
     175             :         sal_uInt32 nInfo;
     176             :         sal_Size nConverted;
     177             :         nSize = rtl_convertTextToUnicode(
     178             :             aConverter, aContext,
     179             :             reinterpret_cast< sal_Char const * >(rTest.m_pText),
     180             :             rTest.m_nTextSize, aUnicode, TEST_STRING_SIZE,
     181             :             (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
     182             :              | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
     183             :              | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
     184             :              | RTL_TEXTTOUNICODE_FLAGS_FLUSH
     185             :              | (rTest.m_bGlobalSignature ?
     186             :                 RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0)),
     187          75 :             &nInfo, &nConverted);
     188         150 :         CPPUNIT_ASSERT_MESSAGE(
     189             :             "failure #11",
     190             :             (nSize == rTest.m_nUnicodeSize && nInfo == 0
     191          75 :              && nConverted == rTest.m_nTextSize));
     192          75 :         rtl_destroyTextToUnicodeContext(aConverter, aContext);
     193          75 :         rtl_destroyTextToUnicodeConverter(aConverter);
     194          75 :         bool bSuccess = true;
     195        1443 :         for (sal_Size i = 0; i < rTest.m_nUnicodeSize; ++i) {
     196        1368 :             if (aUnicode[i] != rTest.m_aUnicode[i]) {
     197           0 :                 bSuccess = false;
     198           0 :                 break;
     199             :             }
     200             :         }
     201          75 :         CPPUNIT_ASSERT_MESSAGE("failure #12", bSuccess);
     202             :     }
     203          96 :     if (rTest.m_bForward) {
     204             :         sal_Unicode aUnicode[TEST_STRING_SIZE];
     205             :         rtl_TextToUnicodeConverter aConverter
     206          75 :             = rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
     207             :         rtl_TextToUnicodeContext aContext
     208          75 :             = rtl_createTextToUnicodeContext(aConverter);
     209          75 :         CPPUNIT_ASSERT_MESSAGE("failure #13", aConverter && aContext);
     210          75 :         if (aContext != (rtl_TextToUnicodeContext) 1) {
     211          34 :             sal_Size nInput = 0;
     212          34 :             sal_Size nOutput = 0;
     213         969 :             for (bool bFlush = true; nInput < rTest.m_nTextSize || bFlush;) {
     214         901 :                 sal_Size nSrcBytes = 1;
     215             :                 sal_uInt32 nFlags
     216             :                     = (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
     217             :                        | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
     218             :                        | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
     219             :                        | (rTest.m_bGlobalSignature ?
     220         901 :                           RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0));
     221         901 :                 if (nInput >= rTest.m_nTextSize) {
     222          34 :                     nSrcBytes = 0;
     223          34 :                     nFlags |= RTL_TEXTTOUNICODE_FLAGS_FLUSH;
     224          34 :                     bFlush = false;
     225             :                 }
     226             :                 sal_uInt32 nInfo;
     227             :                 sal_Size nConverted;
     228             :                 sal_Size nSize = rtl_convertTextToUnicode(
     229             :                     aConverter, aContext,
     230             :                     reinterpret_cast< sal_Char const * >(rTest.m_pText + nInput),
     231             :                     nSrcBytes, aUnicode + nOutput, TEST_STRING_SIZE - nOutput,
     232         901 :                     nFlags, &nInfo, &nConverted);
     233         901 :                 nOutput += nSize;
     234         901 :                 nInput += nConverted;
     235        1802 :                 CPPUNIT_ASSERT_MESSAGE(
     236             :                     "failure #14",
     237         901 :                     (nInfo & ~RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) == 0);
     238             :             }
     239          68 :             CPPUNIT_ASSERT_MESSAGE(
     240             :                 "failure #15",
     241          34 :                 nOutput == rTest.m_nUnicodeSize && nInput == rTest.m_nTextSize);
     242          34 :             bool bSuccess = true;
     243         497 :             for (sal_Size i = 0; i < rTest.m_nUnicodeSize; ++i) {
     244         463 :                 if (aUnicode[i] != rTest.m_aUnicode[i]) {
     245           0 :                     bSuccess = false;
     246           0 :                     break;
     247             :                 }
     248             :             }
     249          34 :             CPPUNIT_ASSERT_MESSAGE("failure #16", bSuccess);
     250             :         }
     251          75 :         rtl_destroyTextToUnicodeContext(aConverter, aContext);
     252          75 :         rtl_destroyTextToUnicodeConverter(aConverter);
     253             :     }
     254          96 :     if (rTest.m_bNoContext && rTest.m_bForward) {
     255             :         sal_Unicode aUnicode[TEST_STRING_SIZE];
     256          45 :         int nSize = 0;
     257             :         rtl_TextToUnicodeConverter aConverter
     258          45 :             = rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
     259          45 :         CPPUNIT_ASSERT_MESSAGE("failure #17", aConverter);
     260        1058 :         for (sal_Size i = 0;;) {
     261        1058 :             if (i == rTest.m_nTextSize) {
     262             :                 goto done;
     263             :             }
     264        1013 :             sal_Char c1 = rTest.m_pText[i++];
     265             :             sal_Unicode aUC[2];
     266        1013 :             sal_uInt32 nInfo = 0;
     267             :             sal_Size nCvtBytes;
     268             :             sal_Size nChars = rtl_convertTextToUnicode(
     269             :                 aConverter, 0, &c1, 1, aUC, 2,
     270             :                 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
     271             :                  | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
     272             :                  | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
     273             :                  | (rTest.m_bGlobalSignature ?
     274             :                     RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0)),
     275        1013 :                 &nInfo, &nCvtBytes);
     276        1013 :             if ((nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) != 0) {
     277             :                 sal_Char sBuffer[10];
     278         617 :                 sBuffer[0] = c1;
     279         617 :                 sal_uInt16 nLen = 1;
     280        1863 :                 while ((nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) != 0
     281             :                        && nLen < 10)
     282             :                 {
     283         629 :                     if (i == rTest.m_nTextSize) {
     284             :                         goto done;
     285             :                     }
     286         629 :                     c1 = rTest.m_pText[i++];
     287         629 :                     sBuffer[nLen++] = c1;
     288             :                     nChars = rtl_convertTextToUnicode(
     289             :                         aConverter, 0, sBuffer, nLen, aUC, 2,
     290             :                         (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
     291             :                          | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
     292             :                          | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
     293             :                          | (rTest.m_bGlobalSignature ?
     294             :                             RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0)),
     295         629 :                         &nInfo, &nCvtBytes);
     296             :                 }
     297         617 :                 if (nChars == 1 && nInfo == 0) {
     298             :                     OSL_ASSERT(nCvtBytes == nLen);
     299         614 :                     aUnicode[nSize++] = aUC[0];
     300           3 :                 } else if (nChars == 2 && nInfo == 0) {
     301             :                     OSL_ASSERT(nCvtBytes == nLen);
     302           3 :                     aUnicode[nSize++] = aUC[0];
     303           3 :                     aUnicode[nSize++] = aUC[1];
     304             :                 } else {
     305             :                     OSL_ASSERT(
     306             :                         (nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) == 0
     307             :                         && nChars == 0 && nInfo != 0);
     308           0 :                     aUnicode[nSize++] = sBuffer[0];
     309           0 :                     i -= nLen - 1;
     310             :                 }
     311         396 :             } else if (nChars == 1 && nInfo == 0) {
     312             :                 OSL_ASSERT(nCvtBytes == 1);
     313         396 :                 aUnicode[nSize++] = aUC[0];
     314           0 :             } else if (nChars == 2 && nInfo == 0) {
     315             :                 OSL_ASSERT(nCvtBytes == 1);
     316           0 :                 aUnicode[nSize++] = aUC[0];
     317           0 :                 aUnicode[nSize++] = aUC[1];
     318             :             } else {
     319             :                 OSL_ASSERT(nChars == 0 && nInfo != 0);
     320           0 :                 aUnicode[nSize++] = c1;
     321             :             }
     322             :         }
     323             :     done:
     324          45 :         rtl_destroyTextToUnicodeConverter(aConverter);
     325          45 :         bool bSuccess = true;
     326        1061 :         for (sal_Size i = 0; i < rTest.m_nUnicodeSize; ++i) {
     327        1016 :             if (aUnicode[i] != rTest.m_aUnicode[i]) {
     328           0 :                 bSuccess = false;
     329           0 :                 break;
     330             :             }
     331             :         }
     332          45 :         CPPUNIT_ASSERT_MESSAGE("failure #18", bSuccess);
     333             :     }
     334          96 :     if (rTest.m_bReverse) {
     335             :         sal_Char aText[TEST_STRING_SIZE];
     336             :         rtl_UnicodeToTextConverter aConverter
     337          81 :             = rtl_createUnicodeToTextConverter(rTest.m_nEncoding);
     338             :         rtl_UnicodeToTextContext aContext
     339          81 :             = rtl_createUnicodeToTextContext(aConverter);
     340          81 :         CPPUNIT_ASSERT_MESSAGE("failure #19", aConverter && aContext);
     341             :         sal_Size nSize;
     342             :         sal_uInt32 nInfo;
     343             :         sal_Size nConverted;
     344             :         nSize = rtl_convertUnicodeToText(
     345             :             aConverter, aContext, rTest.m_aUnicode, rTest.m_nUnicodeSize, aText,
     346             :             TEST_STRING_SIZE,
     347             :             (rTest.m_nReverseUndefined | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR
     348             :              | RTL_UNICODETOTEXT_FLAGS_FLUSH
     349             :              | (rTest.m_bGlobalSignature ?
     350             :                 RTL_UNICODETOTEXT_FLAGS_GLOBAL_SIGNATURE : 0)),
     351          81 :             &nInfo, &nConverted);
     352         162 :         CPPUNIT_ASSERT_MESSAGE(
     353             :             "failure #20",
     354             :             (nSize == rTest.m_nTextSize
     355             :              && (nInfo == 0
     356             :                  || (nInfo == RTL_UNICODETOTEXT_INFO_UNDEFINED
     357             :                      && (rTest.m_nReverseUndefined
     358             :                          != RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR)))
     359          81 :              && nConverted == rTest.m_nUnicodeSize));
     360          81 :         rtl_destroyUnicodeToTextContext(aConverter, aContext);
     361          81 :         rtl_destroyUnicodeToTextConverter(aConverter);
     362          81 :         bool bSuccess = true;
     363        1533 :         for (sal_Size i = 0; i < rTest.m_nTextSize; ++i) {
     364        1452 :             if (aText[i] != rTest.m_pText[i]) {
     365           0 :                 bSuccess = false;
     366           0 :                 break;
     367             :             }
     368             :         }
     369          81 :         CPPUNIT_ASSERT_MESSAGE("failure #21", bSuccess);
     370             :     }
     371          96 : }
     372             : 
     373           5 : void doComplexCharSetCutTest(ComplexCharSetTest const & rTest) {
     374           5 :     if (rTest.m_bNoContext) {
     375             :         sal_Unicode aUnicode[TEST_STRING_SIZE];
     376             :         rtl_TextToUnicodeConverter aConverter
     377           5 :             = rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
     378           5 :         CPPUNIT_ASSERT_MESSAGE("failure #22", aConverter);
     379             :         sal_Size nSize;
     380             :         sal_uInt32 nInfo;
     381             :         sal_Size nConverted;
     382             :         nSize = rtl_convertTextToUnicode(
     383             :             aConverter, 0, reinterpret_cast< sal_Char const * >(rTest.m_pText),
     384             :             rTest.m_nTextSize, aUnicode, TEST_STRING_SIZE,
     385             :             (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
     386             :              | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
     387             :              | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
     388           5 :             &nInfo, &nConverted);
     389          10 :         CPPUNIT_ASSERT_MESSAGE(
     390             :             "failure #23",
     391             :             (nSize <= rTest.m_nUnicodeSize
     392             :              && (nInfo == RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
     393             :                  || (nInfo
     394             :                      == (RTL_TEXTTOUNICODE_INFO_ERROR
     395             :                          | RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL)))
     396           5 :              && nConverted < rTest.m_nTextSize));
     397           5 :         rtl_destroyTextToUnicodeConverter(aConverter);
     398           5 :         bool bSuccess = true;
     399           5 :         for (sal_Size i = 0; i < nSize; ++i) {
     400           0 :             if (aUnicode[i] != rTest.m_aUnicode[i]) {
     401           0 :                 bSuccess = false;
     402           0 :                 break;
     403             :             }
     404             :         }
     405           5 :         CPPUNIT_ASSERT_MESSAGE("failure #24", bSuccess);
     406             :     }
     407           5 : }
     408             : 
     409          21 : class Test: public CppUnit::TestFixture {
     410             : public:
     411             :     void testSingleByte();
     412             : 
     413             :     void testComplex();
     414             : 
     415             :     void testComplexCut();
     416             : 
     417             :     void testSRCBUFFERTOSMALL();
     418             : 
     419             :     void testMime();
     420             : 
     421             :     void testWindows();
     422             : 
     423             :     void testInfo();
     424             : 
     425           2 :     CPPUNIT_TEST_SUITE(Test);
     426           1 :     CPPUNIT_TEST(testSingleByte);
     427           1 :     CPPUNIT_TEST(testComplex);
     428           1 :     CPPUNIT_TEST(testComplexCut);
     429           1 :     CPPUNIT_TEST(testSRCBUFFERTOSMALL);
     430           1 :     CPPUNIT_TEST(testMime);
     431           1 :     CPPUNIT_TEST(testWindows);
     432           1 :     CPPUNIT_TEST(testInfo);
     433           2 :     CPPUNIT_TEST_SUITE_END();
     434             : };
     435             : 
     436           1 : void Test::testSingleByte() {
     437             :     static SingleByteCharSet const data[]
     438             :         = { { RTL_TEXTENCODING_MS_1250,
     439             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     440             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     441             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     442             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     443             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     444             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     445             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     446             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     447             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     448             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     449             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     450             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     451             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     452             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     453             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     454             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     455             :                 0x20AC,0xFFFF,0x201A,0xFFFF,0x201E,0x2026,0x2020,0x2021,
     456             :                 0xFFFF,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179,
     457             :                 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
     458             :                 0xFFFF,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A,
     459             :                 0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7,
     460             :                 0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B,
     461             :                 0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7,
     462             :                 0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C,
     463             :                 0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
     464             :                 0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
     465             :                 0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
     466             :                 0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
     467             :                 0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
     468             :                 0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
     469             :                 0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
     470             :                 0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 } },
     471             :             { RTL_TEXTENCODING_MS_1251,
     472             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     473             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     474             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     475             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     476             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     477             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     478             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     479             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     480             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     481             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     482             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     483             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     484             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     485             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     486             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     487             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     488             :                 0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021,
     489             :                 0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F,
     490             :                 0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
     491             :                 0xFFFF,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F,
     492             :                 0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7,
     493             :                 0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407,
     494             :                 0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7,
     495             :                 0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457,
     496             :                 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
     497             :                 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
     498             :                 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
     499             :                 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
     500             :                 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
     501             :                 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
     502             :                 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
     503             :                 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F } },
     504             :             { RTL_TEXTENCODING_MS_1252,
     505             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     506             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     507             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     508             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     509             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     510             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     511             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     512             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     513             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     514             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     515             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     516             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     517             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     518             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     519             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     520             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     521             :                 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
     522             :                 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0x017D,0xFFFF,
     523             :                 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
     524             :                 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0x017E,0x0178,
     525             :                 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
     526             :                 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
     527             :                 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
     528             :                 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
     529             :                 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
     530             :                 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
     531             :                 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
     532             :                 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
     533             :                 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
     534             :                 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
     535             :                 0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
     536             :                 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF } },
     537             :             { RTL_TEXTENCODING_MS_1253,
     538             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     539             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     540             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     541             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     542             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     543             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     544             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     545             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     546             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     547             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     548             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     549             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     550             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     551             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     552             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     553             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     554             :                 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
     555             :                 0xFFFF,0x2030,0xFFFF,0x2039,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     556             :                 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
     557             :                 0xFFFF,0x2122,0xFFFF,0x203A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     558             :                 0x00A0,0x0385,0x0386,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
     559             :                 0x00A8,0x00A9,0xFFFF,0x00AB,0x00AC,0x00AD,0x00AE,0x2015,
     560             :                 0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x00B5,0x00B6,0x00B7,
     561             :                 0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F,
     562             :                 0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,
     563             :                 0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,
     564             :                 0x03A0,0x03A1,0xFFFF,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,
     565             :                 0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF,
     566             :                 0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,
     567             :                 0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,
     568             :                 0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,
     569             :                 0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0xFFFF } },
     570             :             { RTL_TEXTENCODING_MS_1254,
     571             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     572             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     573             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     574             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     575             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     576             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     577             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     578             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     579             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     580             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     581             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     582             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     583             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     584             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     585             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     586             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     587             :                 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
     588             :                 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0xFFFF,0xFFFF,
     589             :                 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
     590             :                 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0xFFFF,0x0178,
     591             :                 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
     592             :                 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
     593             :                 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
     594             :                 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
     595             :                 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
     596             :                 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
     597             :                 0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
     598             :                 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF,
     599             :                 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
     600             :                 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
     601             :                 0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
     602             :                 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF } },
     603             :             { RTL_TEXTENCODING_APPLE_ROMAN,
     604             :               {   0x00,  0x01,  0x02,  0x03,  0x04,  0x05,  0x06,  0x07,
     605             :                   0x08,  0x09,  0x0A,  0x0B,  0x0C,  0x0D,  0x0E,  0x0F,
     606             :                   0x10,  0x11,  0x12,  0x13,  0x14,  0x15,  0x16,  0x17,
     607             :                   0x18,  0x19,  0x1A,  0x1B,  0x1C,  0x1D,  0x1E,  0x1F,
     608             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     609             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     610             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     611             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     612             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     613             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     614             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     615             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     616             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     617             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     618             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     619             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,  0x7F,
     620             :                 0x00C4,0x00C5,0x00C7,0x00C9,0x00D1,0x00D6,0x00DC,0x00E1,
     621             :                 0x00E0,0x00E2,0x00E4,0x00E3,0x00E5,0x00E7,0x00E9,0x00E8,
     622             :                 0x00EA,0x00EB,0x00ED,0x00EC,0x00EE,0x00EF,0x00F1,0x00F3,
     623             :                 0x00F2,0x00F4,0x00F6,0x00F5,0x00FA,0x00F9,0x00FB,0x00FC,
     624             :                 0x2020,0x00B0,0x00A2,0x00A3,0x00A7,0x2022,0x00B6,0x00DF,
     625             :                 0x00AE,0x00A9,0x2122,0x00B4,0x00A8,0x2260,0x00C6,0x00D8,
     626             :                 0x221E,0x00B1,0x2264,0x2265,0x00A5,0x00B5,0x2202,0x2211,
     627             :                 0x220F,0x03C0,0x222B,0x00AA,0x00BA,0x03A9,0x00E6,0x00F8,
     628             :                 0x00BF,0x00A1,0x00AC,0x221A,0x0192,0x2248,0x2206,0x00AB,
     629             :                 0x00BB,0x2026,0x00A0,0x00C0,0x00C3,0x00D5,0x0152,0x0153,
     630             :                 0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA,
     631             :                 0x00FF,0x0178,0x2044,0x20AC,0x2039,0x203A,0xFB01,0xFB02,
     632             :                 0x2021,0x00B7,0x201A,0x201E,0x2030,0x00C2,0x00CA,0x00C1,
     633             :                 0x00CB,0x00C8,0x00CD,0x00CE,0x00CF,0x00CC,0x00D3,0x00D4,
     634             :                 0xF8FF,0x00D2,0x00DA,0x00DB,0x00D9,0x0131,0x02C6,0x02DC,
     635             :                 0x00AF,0x02D8,0x02D9,0x02DA,0x00B8,0x02DD,0x02DB,0x02C7 } },
     636             :             { RTL_TEXTENCODING_IBM_437,
     637             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     638             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     639             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     640             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     641             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     642             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     643             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     644             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     645             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     646             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     647             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     648             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     649             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     650             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     651             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     652             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     653             :                 0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,
     654             :                 0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5,
     655             :                 0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,
     656             :                 0x00ff,0x00d6,0x00dc,0x00a2,0x00a3,0x00a5,0x20a7,0x0192,
     657             :                 0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,
     658             :                 0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,
     659             :                 0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
     660             :                 0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,
     661             :                 0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,
     662             :                 0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,
     663             :                 0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,
     664             :                 0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
     665             :                 0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,
     666             :                 0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,
     667             :                 0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,
     668             :                 0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0 } },
     669             :             // ...
     670             :             { RTL_TEXTENCODING_ASCII_US,
     671             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     672             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     673             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     674             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     675             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     676             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     677             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     678             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     679             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     680             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     681             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     682             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     683             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     684             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     685             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     686             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     687             :                 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, // !
     688             :                 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0x017D,0xFFFF, // !
     689             :                 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, // !
     690             :                 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0x017E,0x0178, // !
     691             :                   0xA0,  0xA1,  0xA2,  0xA3,  0xA4,  0xA5,  0xA6,  0xA7,
     692             :                   0xA8,  0xA9,  0xAA,  0xAB,  0xAC,  0xAD,  0xAE,  0xAF,
     693             :                   0xB0,  0xB1,  0xB2,  0xB3,  0xB4,  0xB5,  0xB6,  0xB7,
     694             :                   0xB8,  0xB9,  0xBA,  0xBB,  0xBC,  0xBD,  0xBE,  0xBF,
     695             :                   0xC0,  0xC1,  0xC2,  0xC3,  0xC4,  0xC5,  0xC6,  0xC7,
     696             :                   0xC8,  0xC9,  0xCA,  0xCB,  0xCC,  0xCD,  0xCE,  0xCF,
     697             :                   0xD0,  0xD1,  0xD2,  0xD3,  0xD4,  0xD5,  0xD6,  0xD7,
     698             :                   0xD8,  0xD9,  0xDA,  0xDB,  0xDC,  0xDD,  0xDE,  0xDF,
     699             :                   0xE0,  0xE1,  0xE2,  0xE3,  0xE4,  0xE5,  0xE6,  0xE7,
     700             :                   0xE8,  0xE9,  0xEA,  0xEB,  0xEC,  0xED,  0xEE,  0xEF,
     701             :                   0xF0,  0xF1,  0xF2,  0xF3,  0xF4,  0xF5,  0xF6,  0xF7,
     702             :                   0xF8,  0xF9,  0xFA,  0xFB,  0xFC,  0xFD,  0xFE,  0xFF } },
     703             :             { RTL_TEXTENCODING_ISO_8859_1,
     704             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     705             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     706             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     707             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     708             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     709             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     710             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     711             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     712             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     713             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     714             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     715             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     716             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     717             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     718             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     719             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     720             :                 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
     721             :                 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
     722             :                 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
     723             :                 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
     724             :                 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
     725             :                 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
     726             :                 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
     727             :                 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
     728             :                 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
     729             :                 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
     730             :                 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
     731             :                 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
     732             :                 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
     733             :                 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
     734             :                 0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
     735             :                 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF } },
     736             :             { RTL_TEXTENCODING_ISO_8859_2,
     737             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     738             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     739             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     740             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     741             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     742             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     743             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     744             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     745             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     746             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     747             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     748             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     749             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     750             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     751             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     752             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     753             :                 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
     754             :                 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
     755             :                 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
     756             :                 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
     757             :                 0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7,
     758             :                 0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B,
     759             :                 0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7,
     760             :                 0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C,
     761             :                 0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
     762             :                 0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
     763             :                 0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
     764             :                 0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
     765             :                 0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
     766             :                 0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
     767             :                 0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
     768             :                 0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 } },
     769             :             { RTL_TEXTENCODING_ISO_8859_3,
     770             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     771             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     772             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     773             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     774             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     775             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     776             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     777             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     778             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     779             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     780             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     781             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     782             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     783             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     784             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     785             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     786             :                 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
     787             :                 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
     788             :                 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
     789             :                 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
     790             :                 0x00A0,0x0126,0x02D8,0x00A3,0x00A4,0xFFFF,0x0124,0x00A7,
     791             :                 0x00A8,0x0130,0x015E,0x011E,0x0134,0x00AD,0xFFFF,0x017B,
     792             :                 0x00B0,0x0127,0x00B2,0x00B3,0x00B4,0x00B5,0x0125,0x00B7,
     793             :                 0x00B8,0x0131,0x015F,0x011F,0x0135,0x00BD,0xFFFF,0x017C,
     794             :                 0x00C0,0x00C1,0x00C2,0xFFFF,0x00C4,0x010A,0x0108,0x00C7,
     795             :                 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
     796             :                 0xFFFF,0x00D1,0x00D2,0x00D3,0x00D4,0x0120,0x00D6,0x00D7,
     797             :                 0x011C,0x00D9,0x00DA,0x00DB,0x00DC,0x016C,0x015C,0x00DF,
     798             :                 0x00E0,0x00E1,0x00E2,0xFFFF,0x00E4,0x010B,0x0109,0x00E7,
     799             :                 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
     800             :                 0xFFFF,0x00F1,0x00F2,0x00F3,0x00F4,0x0121,0x00F6,0x00F7,
     801             :                 0x011D,0x00F9,0x00FA,0x00FB,0x00FC,0x016D,0x015D,0x02D9 } },
     802             :             // ...
     803             :             { RTL_TEXTENCODING_ISO_8859_6,
     804             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     805             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     806             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     807             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     808             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     809             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     810             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     811             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     812             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     813             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     814             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     815             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     816             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     817             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     818             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     819             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     820             :                 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
     821             :                 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
     822             :                 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
     823             :                 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
     824             :                 0x00A0,0xFFFF,0xFFFF,0xFFFF,0x00A4,0xFFFF,0xFFFF,0xFFFF,
     825             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x060C,0x00AD,0xFFFF,0xFFFF,
     826             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     827             :                 0xFFFF,0xFFFF,0xFFFF,0x061B,0xFFFF,0xFFFF,0xFFFF,0x061F,
     828             :                 0xFFFF,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627,
     829             :                 0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F,
     830             :                 0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x0637,
     831             :                 0x0638,0x0639,0x063A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     832             :                 0x0640,0x0641,0x0642,0x0643,0x0644,0x0645,0x0646,0x0647,
     833             :                 0x0648,0x0649,0x064A,0x064B,0x064C,0x064D,0x064E,0x064F,
     834             :                 0x0650,0x0651,0x0652,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     835             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
     836             :             // ...
     837             :             { RTL_TEXTENCODING_ISO_8859_8,
     838             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     839             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     840             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     841             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     842             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     843             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     844             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     845             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     846             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     847             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     848             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     849             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     850             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     851             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     852             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     853             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     854             :                 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
     855             :                 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
     856             :                 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
     857             :                 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
     858             :                 0x00A0,0xFFFF,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
     859             :                 0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
     860             :                 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
     861             :                 0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0xFFFF,
     862             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     863             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     864             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     865             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x2017,
     866             :                 0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
     867             :                 0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
     868             :                 0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
     869             :                 0x05E8,0x05E9,0x05EA,0xFFFF,0xFFFF,0x200E,0x200F,0xFFFF } },
     870             :             // ...
     871             :             { RTL_TEXTENCODING_TIS_620,
     872             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     873             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     874             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     875             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     876             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     877             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     878             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     879             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     880             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     881             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     882             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     883             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     884             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     885             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     886             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     887             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     888             :                 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
     889             :                 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
     890             :                 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
     891             :                 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
     892             :                 0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07, // !
     893             :                 0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F,
     894             :                 0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17,
     895             :                 0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F,
     896             :                 0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27,
     897             :                 0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F,
     898             :                 0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37,
     899             :                 0x0E38,0x0E39,0x0E3A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x0E3F,
     900             :                 0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47,
     901             :                 0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F,
     902             :                 0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57,
     903             :                 0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
     904             :             { RTL_TEXTENCODING_MS_874,
     905             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     906             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     907             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     908             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     909             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     910             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     911             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     912             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     913             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     914             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     915             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     916             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     917             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     918             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     919             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     920             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     921             :                 0x20AC,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x2026,0xFFFF,0xFFFF,
     922             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     923             :                 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
     924             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     925             :                 0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07,
     926             :                 0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F,
     927             :                 0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17,
     928             :                 0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F,
     929             :                 0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27,
     930             :                 0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F,
     931             :                 0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37,
     932             :                 0x0E38,0x0E39,0x0E3A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x0E3F,
     933             :                 0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47,
     934             :                 0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F,
     935             :                 0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57,
     936             :                 0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
     937             :             { RTL_TEXTENCODING_MS_1255,
     938             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     939             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     940             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     941             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     942             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     943             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     944             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     945             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     946             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     947             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     948             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     949             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     950             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     951             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     952             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     953             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     954             :                 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
     955             :                 0x02C6,0x2030,0xFFFF,0x2039,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     956             :                 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
     957             :                 0x02DC,0x2122,0xFFFF,0x203A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     958             :                 0x00A0,0x00A1,0x00A2,0x00A3,0x20AA,0x00A5,0x00A6,0x00A7,
     959             :                 0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
     960             :                 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
     961             :                 0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
     962             :                 0x05B0,0x05B1,0x05B2,0x05B3,0x05B4,0x05B5,0x05B6,0x05B7,
     963             :                 0x05B8,0x05B9,0xFFFF,0x05BB,0x05BC,0x05BD,0x05BE,0x05BF,
     964             :                 0x05C0,0x05C1,0x05C2,0x05C3,0x05F0,0x05F1,0x05F2,0x05F3,
     965             :                 0x05F4,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
     966             :                 0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
     967             :                 0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
     968             :                 0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
     969             :                 0x05E8,0x05E9,0x05EA,0xFFFF,0xFFFF,0x200E,0x200F,0xFFFF } },
     970             :             { RTL_TEXTENCODING_MS_1256,
     971             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
     972             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
     973             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
     974             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
     975             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
     976             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
     977             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
     978             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
     979             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
     980             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
     981             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
     982             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
     983             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
     984             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
     985             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
     986             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
     987             :                 0x20AC,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
     988             :                 0x02C6,0x2030,0x0679,0x2039,0x0152,0x0686,0x0698,0x0688,
     989             :                 0x06AF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
     990             :                 0x06A9,0x2122,0x0691,0x203A,0x0153,0x200C,0x200D,0x06BA,
     991             :                 0x00A0,0x060C,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
     992             :                 0x00A8,0x00A9,0x06BE,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
     993             :                 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
     994             :                 0x00B8,0x00B9,0x061B,0x00BB,0x00BC,0x00BD,0x00BE,0x061F,
     995             :                 0x06C1,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627,
     996             :                 0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F,
     997             :                 0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x00D7,
     998             :                 0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643,
     999             :                 0x00E0,0x0644,0x00E2,0x0645,0x0646,0x0647,0x0648,0x00E7,
    1000             :                 0x00E8,0x00E9,0x00EA,0x00EB,0x0649,0x064A,0x00EE,0x00EF,
    1001             :                 0x064B,0x064C,0x064D,0x064E,0x00F4,0x064F,0x0650,0x00F7,
    1002             :                 0x0651,0x00F9,0x0652,0x00FB,0x00FC,0x200E,0x200F,0x06D2 } },
    1003             :             { RTL_TEXTENCODING_MS_1257,
    1004             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
    1005             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
    1006             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
    1007             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
    1008             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
    1009             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
    1010             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
    1011             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
    1012             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
    1013             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
    1014             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
    1015             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
    1016             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
    1017             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
    1018             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
    1019             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
    1020             :                 0x20AC,0xFFFF,0x201A,0xFFFF,0x201E,0x2026,0x2020,0x2021,
    1021             :                 0xFFFF,0x2030,0xFFFF,0x2039,0xFFFF,0x00A8,0x02C7,0x00B8,
    1022             :                 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
    1023             :                 0xFFFF,0x2122,0xFFFF,0x203A,0xFFFF,0x00AF,0x02DB,0xFFFF,
    1024             :                 0x00A0,0xFFFF,0x00A2,0x00A3,0x00A4,0xFFFF,0x00A6,0x00A7,
    1025             :                 0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,
    1026             :                 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
    1027             :                 0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,
    1028             :                 0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,
    1029             :                 0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,
    1030             :                 0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,
    1031             :                 0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,
    1032             :                 0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,
    1033             :                 0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,
    1034             :                 0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,
    1035             :                 0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9 } },
    1036             :             { RTL_TEXTENCODING_MS_1258,
    1037             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
    1038             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
    1039             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
    1040             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
    1041             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
    1042             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
    1043             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
    1044             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
    1045             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
    1046             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
    1047             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
    1048             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
    1049             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
    1050             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
    1051             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
    1052             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
    1053             :                 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
    1054             :                 0x02C6,0x2030,0xFFFF,0x2039,0x0152,0xFFFF,0xFFFF,0xFFFF,
    1055             :                 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
    1056             :                 0x02DC,0x2122,0xFFFF,0x203A,0x0153,0xFFFF,0xFFFF,0x0178,
    1057             :                 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
    1058             :                 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
    1059             :                 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
    1060             :                 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
    1061             :                 0x00C0,0x00C1,0x00C2,0x0102,0x00C4,0x00C5,0x00C6,0x00C7,
    1062             :                 0x00C8,0x00C9,0x00CA,0x00CB,0x0300,0x00CD,0x00CE,0x00CF,
    1063             :                 0x0110,0x00D1,0x0309,0x00D3,0x00D4,0x01A0,0x00D6,0x00D7,
    1064             :                 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x01AF,0x0303,0x00DF,
    1065             :                 0x00E0,0x00E1,0x00E2,0x0103,0x00E4,0x00E5,0x00E6,0x00E7,
    1066             :                 0x00E8,0x00E9,0x00EA,0x00EB,0x0301,0x00ED,0x00EE,0x00EF,
    1067             :                 0x0111,0x00F1,0x0323,0x00F3,0x00F4,0x01A1,0x00F6,0x00F7,
    1068             :                 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x01B0,0x20AB,0x00FF } },
    1069             :             { RTL_TEXTENCODING_KOI8_U, // RFC 2319
    1070             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
    1071             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
    1072             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
    1073             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
    1074             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
    1075             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
    1076             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
    1077             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
    1078             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
    1079             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
    1080             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
    1081             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
    1082             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
    1083             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
    1084             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
    1085             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
    1086             :                 0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524,
    1087             :                 0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590,
    1088             :                 0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248,
    1089             :                 0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7,
    1090             :                 0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457,
    1091             :                 0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x255D,0x255E,
    1092             :                 0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407,
    1093             :                 0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x256C,0x00A9,
    1094             :                 0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,
    1095             :                 0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,
    1096             :                 0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,
    1097             :                 0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A,
    1098             :                 0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,
    1099             :                 0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,
    1100             :                 0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,
    1101             :                 0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A } },
    1102             :             { RTL_TEXTENCODING_ADOBE_STANDARD,
    1103             :               { 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1104             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1105             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1106             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1107             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x2019,
    1108             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
    1109             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
    1110             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
    1111             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
    1112             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
    1113             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
    1114             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
    1115             :                 0x2018,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
    1116             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
    1117             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
    1118             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0xFFFF,
    1119             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1120             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1121             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1122             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1123             :                 0xFFFF,0x00A1,0x00A2,0x00A3,0x2215,0x00A5,0x0192,0x00A7,
    1124             :                 0x00A4,0x0027,0x201C,0x00AB,0x2039,0x203A,0xFB01,0xFB02,
    1125             :                 0xFFFF,0x2013,0x2020,0x2021,0x00B7,0xFFFF,0x00B6,0x2022,
    1126             :                 0x201A,0x201E,0x201D,0x00BB,0x2026,0x2030,0xFFFF,0x00BF,
    1127             :                 0xFFFF,0x0060,0x00B4,0x02C6,0x02DC,0x00AF,0x02D8,0x02D9,
    1128             :                 0x00A8,0xFFFF,0x02DA,0x00B8,0xFFFF,0x02DD,0x02DB,0x02C7,
    1129             :                 0x2014,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1130             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1131             :                 0xFFFF,0x00C6,0xFFFF,0x00AA,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1132             :                 0x0141,0x00D8,0x0152,0x00BA,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1133             :                 0xFFFF,0x00E6,0xFFFF,0xFFFF,0xFFFF,0x0131,0xFFFF,0xFFFF,
    1134             :                 0x0142,0x00F8,0x0153,0x00DF,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
    1135             :             { RTL_TEXTENCODING_ADOBE_SYMBOL,
    1136             :               { 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1137             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1138             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1139             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1140             :                 0x0020,0x0021,0x2200,0x0023,0x2203,0x0025,0x0026,0x220B,
    1141             :                 0x0028,0x0029,0x2217,0x002B,0x002C,0x2212,0x002E,0x002F,
    1142             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
    1143             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
    1144             :                 0x2245,0x0391,0x0392,0x03A7,0x0394,0x0395,0x03A6,0x0393,
    1145             :                 0x0397,0x0399,0x03D1,0x039A,0x039B,0x039C,0x039D,0x039F,
    1146             :                 0x03A0,0x0398,0x03A1,0x03A3,0x03A4,0x03A5,0x03C2,0x03A9,
    1147             :                 0x039E,0x03A8,0x0396,0x005B,0x2234,0x005D,0x22A5,0x005F,
    1148             :                 0xF8E5,0x03B1,0x03B2,0x03C7,0x03B4,0x03B5,0x03C6,0x03B3,
    1149             :                 0x03B7,0x03B9,0x03D5,0x03BA,0x03BB,0x03BC,0x03BD,0x03BF,
    1150             :                 0x03C0,0x03B8,0x03C1,0x03C3,0x03C4,0x03C5,0x03D6,0x03C9,
    1151             :                 0x03BE,0x03C8,0x03B6,0x007B,0x007C,0x007D,0x223C,0xFFFF,
    1152             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1153             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1154             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1155             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1156             :                 0x20AC,0x03D2,0x2032,0x2264,0x2215,0x221E,0x0192,0x2663,
    1157             :                 0x2666,0x2665,0x2660,0x2194,0x2190,0x2191,0x2192,0x2193,
    1158             :                 0x00B0,0x00B1,0x2033,0x2265,0x00D7,0x221D,0x2202,0x2022,
    1159             :                 0x00F7,0x2260,0x2261,0x2248,0x2026,0x23AF,0x23D0,0x21B5,
    1160             :                 0x2135,0x2111,0x211C,0x2118,0x2297,0x2295,0x2205,0x2229,
    1161             :                 0x222A,0x2283,0x2287,0x2284,0x2282,0x2286,0x2208,0x2209,
    1162             :                 0x2220,0x2207,0xF6DA,0xF6D9,0xF6DB,0x220F,0x221A,0x22C5,
    1163             :                 0x00AC,0x2227,0x2228,0x21D4,0x21D0,0x21D1,0x21D2,0x21D3,
    1164             :                 0x25CA,0x2329,0xF8E8,0xF8E9,0xF8EA,0x2211,0x239B,0x239C,
    1165             :                 0x239D,0x23A1,0x23A2,0x23A3,0x23A7,0x23A8,0x23A9,0x23AA,
    1166             :                 0xFFFF,0x232A,0x222B,0x2320,0x23AE,0x2321,0x239E,0x239F,
    1167             :                 0x23A0,0x23A4,0x23A5,0x23A6,0x23AB,0x23AC,0x23AD,0xFFFF } },
    1168             :             { RTL_TEXTENCODING_ADOBE_DINGBATS,
    1169             :               { 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1170             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1171             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1172             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1173             : // 20
    1174             :                 0x0020,0x2701,0x2702,0x2703,0x2704,0x260E,0x2706,0x2707,
    1175             :                 0x2708,0x2709,0x261B,0x261E,0x270C,0x270D,0x270E,0x270F,
    1176             :                 0x2710,0x2711,0x2712,0x2713,0x2714,0x2715,0x2716,0x2717,
    1177             :                 0x2718,0x2719,0x271A,0x271B,0x271C,0x271D,0x271E,0x271F,
    1178             : // 40
    1179             :                 0x2720,0x2721,0x2722,0x2723,0x2724,0x2725,0x2726,0x2727,
    1180             :                 0x2605,0x2729,0x272A,0x272B,0x272C,0x272D,0x272E,0x272F,
    1181             :                 0x2730,0x2731,0x2732,0x2733,0x2734,0x2735,0x2736,0x2737,
    1182             :                 0x2738,0x2739,0x273A,0x273B,0x273C,0x273D,0x273E,0x273F,
    1183             : // 60
    1184             :                 0x2740,0x2741,0x2742,0x2743,0x2744,0x2745,0x2746,0x2747,
    1185             :                 0x2748,0x2749,0x274A,0x274B,0x25CF,0x274D,0x25A0,0x274F,
    1186             :                 0x2750,0x2751,0x2752,0x25B2,0x25BC,0x25C6,0x2756,0x25D7,
    1187             :                 0x2758,0x2759,0x275A,0x275B,0x275C,0x275D,0x275E,0xFFFF,
    1188             : // 80
    1189             :                 0xF8D7,0xF8D8,0xF8D9,0xF8DA,0xF8DB,0xF8DC,0xF8DD,0xF8DE,
    1190             :                 0xF8DF,0xF8E0,0xF8E1,0xF8E2,0xF8E3,0xF8E4,0xFFFF,0xFFFF,
    1191             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1192             :                 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
    1193             : // A0
    1194             :                 0xFFFF,0x2761,0x2762,0x2763,0x2764,0x2765,0x2766,0x2767,
    1195             :                 0x2663,0x2666,0x2665,0x2660,0x2460,0x2461,0x2462,0x2463,
    1196             :                 0x2464,0x2465,0x2466,0x2467,0x2468,0x2469,0x2776,0x2777,
    1197             :                 0x2778,0x2779,0x277A,0x277B,0x277C,0x277D,0x277E,0x277F,
    1198             : // C0
    1199             :                 0x2780,0x2781,0x2782,0x2783,0x2784,0x2785,0x2786,0x2787,
    1200             :                 0x2788,0x2789,0x278A,0x278B,0x278C,0x278D,0x278E,0x278F,
    1201             :                 0x2790,0x2791,0x2792,0x2793,0x2794,0x2795,0x2796,0x2797,
    1202             :                 0x2798,0x2799,0x279A,0x279B,0x279C,0x279D,0x279E,0x279F,
    1203             : // E0
    1204             :                 0x27A0,0x27A1,0x27A2,0x27A3,0x27A4,0x27A5,0x27A6,0x27A7,
    1205             :                 0x27A8,0x27A9,0x27AA,0x27AB,0x27AC,0x27AD,0x27AE,0x27AF,
    1206             :                 0xFFFF,0x27B1,0x27B2,0x27B3,0x27B4,0x27B5,0x27B6,0x27B7,
    1207             :                 0x27B8,0x27B9,0x27BA,0x27BB,0x27BC,0x27BD,0x27BE,0xFFFF } },
    1208             :             { RTL_TEXTENCODING_PT154,
    1209             :               { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
    1210             :                 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
    1211             :                 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
    1212             :                 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
    1213             :                 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
    1214             :                 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
    1215             :                 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
    1216             :                 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
    1217             :                 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
    1218             :                 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
    1219             :                 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
    1220             :                 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
    1221             :                 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
    1222             :                 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
    1223             :                 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
    1224             :                 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
    1225             :                 0x0496,0x0492,0x04EE,0x0493,0x201E,0x2026,0x04B6,0x04AE,
    1226             :                 0x04B2,0x04AF,0x04A0,0x04E2,0x04A2,0x049A,0x04BA,0x04B8,
    1227             :                 0x0497,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
    1228             :                 0x04B3,0x04B7,0x04A1,0x04E3,0x04A3,0x049B,0x04BB,0x04B9,
    1229             :                 0x00A0,0x040E,0x045E,0x0408,0x04E8,0x0498,0x04B0,0x00A7,
    1230             :                 0x0401,0x00A9,0x04D8,0x00AB,0x00AC,0x04EF,0x00AE,0x049C,
    1231             :                 0x00B0,0x04B1,0x0406,0x0456,0x0499,0x04E9,0x00B6,0x00B7,
    1232             :                 0x0451,0x2116,0x04D9,0x00BB,0x0458,0x04AA,0x04AB,0x049D,
    1233             :                 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
    1234             :                 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
    1235             :                 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
    1236             :                 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
    1237             :                 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
    1238             :                 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
    1239             :                 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
    1240             :                 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F } } };
    1241          25 :     for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
    1242          24 :         testSingleByteCharSet(data[i]);
    1243             :     }
    1244           1 : }
    1245             : 
    1246           1 : void Test::testComplex() {
    1247             :     static ComplexCharSetTest const data[]
    1248             :         = { { RTL_TEXTENCODING_ASCII_US,
    1249             :               RTL_CONSTASCII_STRINGPARAM("\x01\"3De$~"),
    1250             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E },
    1251             :               7,
    1252             :               true,
    1253             :               true,
    1254             :               true,
    1255             :               false,
    1256             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1257             :             { RTL_TEXTENCODING_EUC_CN,
    1258             :               RTL_CONSTASCII_STRINGPARAM("\x01\"3De$~\xA1\xB9\xF0\xC5"),
    1259             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,
    1260             :                 0x300D,0x9E4B },
    1261             :               9,
    1262             :               true,
    1263             :               true,
    1264             :               true,
    1265             :               false,
    1266             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1267             :             { RTL_TEXTENCODING_EUC_TW,
    1268             :               RTL_CONSTASCII_STRINGPARAM(
    1269             :                   "\x01\"3De$~\xC5\xF0\x8E\xA4\xDC\xD9"),
    1270             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,
    1271             :                 0x4ED9,0xD87E,0xDD68 },
    1272             :               10,
    1273             :               true,
    1274             :               true,
    1275             :               true,
    1276             :               false,
    1277             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1278             :             { RTL_TEXTENCODING_GB_18030,
    1279             :               RTL_CONSTASCII_STRINGPARAM("\x01\"3De$~"),
    1280             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E },
    1281             :               7,
    1282             :               true,
    1283             :               true,
    1284             :               true,
    1285             :               false,
    1286             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1287             :             { RTL_TEXTENCODING_GB_18030,
    1288             :               RTL_CONSTASCII_STRINGPARAM("\x81\x40\xFE\xFE"),
    1289             :               { 0x4E02,0xE4C5 },
    1290             :               2,
    1291             :               true,
    1292             :               true,
    1293             :               true,
    1294             :               false,
    1295             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1296             :             { RTL_TEXTENCODING_GB_18030,
    1297             :               RTL_CONSTASCII_STRINGPARAM(
    1298             :                   "\x81\x30\xB1\x33\x81\x30\xD3\x30\x81\x36\xA5\x31"),
    1299             :               { 0x028A,0x0452,0x200F },
    1300             :               3,
    1301             :               true,
    1302             :               true,
    1303             :               true,
    1304             :               false,
    1305             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1306             :             { RTL_TEXTENCODING_GB_18030,
    1307             :               RTL_CONSTASCII_STRINGPARAM(
    1308             :                   "\xFE\x50\xFE\x51\xFE\x52\xFE\x53\xFE\x54\xFE\x55\xFE\x56"
    1309             :                   "\xFE\x57\xFE\x58\xFE\x59\xFE\x5A\xFE\x5B\xFE\x5C\xFE\x5D"
    1310             :                   "\xFE\x5E\xFE\x5F\xFE\x60\xFE\x61\xFE\x62\xFE\x63\xFE\x64"
    1311             :                   "\xFE\x65\xFE\x66\xFE\x67\xFE\x68\xFE\x69\xFE\x6A\xFE\x6B"
    1312             :                   "\xFE\x6C\xFE\x6D\xFE\x6E\xFE\x6F\xFE\x70\xFE\x71\xFE\x72"
    1313             :                   "\xFE\x73\xFE\x74\xFE\x75\xFE\x76\xFE\x77\xFE\x78\xFE\x79"
    1314             :                   "\xFE\x7A\xFE\x7B\xFE\x7C\xFE\x7D\xFE\x7E\xFE\x80\xFE\x81"
    1315             :                   "\xFE\x82\xFE\x83\xFE\x84\xFE\x85\xFE\x86\xFE\x87\xFE\x88"
    1316             :                   "\xFE\x89\xFE\x8A\xFE\x8B\xFE\x8C\xFE\x8D\xFE\x8E\xFE\x8F"
    1317             :                   "\xFE\x90\xFE\x91\xFE\x92\xFE\x93\xFE\x94\xFE\x95\xFE\x96"
    1318             :                   "\xFE\x97\xFE\x98\xFE\x99\xFE\x9A\xFE\x9B\xFE\x9C\xFE\x9D"
    1319             :                   "\xFE\x9E\xFE\x9F\xFE\xA0"),
    1320             :               { 0x2E81,0xE816,0xE817,0xE818,0x2E84,0x3473,0x3447,0x2E88,
    1321             :                 0x2E8B,0xE81E,0x359E,0x361A,0x360E,0x2E8C,0x2E97,0x396E,
    1322             :                 0x3918,0xE826,0x39CF,0x39DF,0x3A73,0x39D0,0xE82B,0xE82C,
    1323             :                 0x3B4E,0x3C6E,0x3CE0,0x2EA7,0xE831,0xE832,0x2EAA,0x4056,
    1324             :                 0x415F,0x2EAE,0x4337,0x2EB3,0x2EB6,0x2EB7,0xE83B,0x43B1,
    1325             :                 0x43AC,0x2EBB,0x43DD,0x44D6,0x4661,0x464C,0xE843,0x4723,
    1326             :                 0x4729,0x477C,0x478D,0x2ECA,0x4947,0x497A,0x497D,0x4982,
    1327             :                 0x4983,0x4985,0x4986,0x499F,0x499B,0x49B7,0x49B6,0xE854,
    1328             :                 0xE855,0x4CA3,0x4C9F,0x4CA0,0x4CA1,0x4C77,0x4CA2,0x4D13,
    1329             :                 0x4D14,0x4D15,0x4D16,0x4D17,0x4D18,0x4D19,0x4DAE,0xE864 },
    1330             :               80,
    1331             :               true,
    1332             :               true,
    1333             :               false,
    1334             :               false,
    1335             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1336             :             { RTL_TEXTENCODING_ISO_2022_JP,
    1337             :               RTL_CONSTASCII_STRINGPARAM("\x01\"3De$\\~"),
    1338             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E },
    1339             :               8,
    1340             :               false,
    1341             :               true,
    1342             :               true,
    1343             :               false,
    1344             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1345             :             { RTL_TEXTENCODING_ISO_2022_JP,
    1346             :               RTL_CONSTASCII_STRINGPARAM("\x1B(B\x01\"3De$\\~"),
    1347             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E },
    1348             :               8,
    1349             :               false,
    1350             :               true,
    1351             :               false,
    1352             :               false,
    1353             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1354             :             { RTL_TEXTENCODING_ISO_2022_JP,
    1355             :               RTL_CONSTASCII_STRINGPARAM("\x1B(J\x01\"3De$\\~"),
    1356             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x00A5,0x00AF },
    1357             :               8,
    1358             :               false,
    1359             :               true,
    1360             :               false,
    1361             :               false,
    1362             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1363             :             { RTL_TEXTENCODING_ISO_2022_JP,
    1364             :               RTL_CONSTASCII_STRINGPARAM("\x1B$B\x26\x21\x27\x71\x1B(B"),
    1365             :               { 0x0391,0x044F },
    1366             :               2,
    1367             :               false,
    1368             :               true,
    1369             :               true,
    1370             :               false,
    1371             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1372             :             { RTL_TEXTENCODING_ISO_2022_KR,
    1373             :               RTL_CONSTASCII_STRINGPARAM("\x1B$)C\x01\"3De$\\~"),
    1374             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E },
    1375             :               8,
    1376             :               false,
    1377             :               true,
    1378             :               true,
    1379             :               false,
    1380             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1381             :             { RTL_TEXTENCODING_ISO_2022_KR,
    1382             :               RTL_CONSTASCII_STRINGPARAM(
    1383             :                   "\x1B$)C\x0E\x25\x21\x0F\x0D\x0Ax\x0E\x48\x7E\x0F"),
    1384             :               { 0x2170,0x000D,0x000A,0x0078,0xD79D },
    1385             :               5,
    1386             :               false,
    1387             :               true,
    1388             :               true,
    1389             :               false,
    1390             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1391             :             { RTL_TEXTENCODING_ISO_2022_CN,
    1392             :               RTL_CONSTASCII_STRINGPARAM(
    1393             :                   "\x01\"3De$\\~\x1B$)G\x0E\x45\x70\x1B$*H\x1BN\x22\x22"
    1394             :                       "\x45\x70\x0F\x1B$)A\x0E\x26\x21\x0F"),
    1395             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E,
    1396             :                 0x4ED9,0x531F,0x4ED9,0x0391 },
    1397             :               12,
    1398             :               false,
    1399             :               true,
    1400             :               false,
    1401             :               false,
    1402             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1403             :             { RTL_TEXTENCODING_ISO_2022_CN,
    1404             :               RTL_CONSTASCII_STRINGPARAM(
    1405             :                   "\x01\"3De$\\~\x1B$)A\x0E\x26\x21\x1B$*H\x1BN\x22\x22"
    1406             :                       "\x26\x21\x0F\x0D\x0A\x1B$)A\x0E\x26\x21\x0F"),
    1407             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E,
    1408             :                 0x0391,0x531F,0x0391,0x000D,0x000A,0x0391 },
    1409             :               14,
    1410             :               false,
    1411             :               true,
    1412             :               true,
    1413             :               false,
    1414             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1415             :             // The following does not work as long as Big5-HKSCS maps to
    1416             :             // Unicode PUA instead of Plane 2.  Use the next two tests
    1417             :             // instead:
    1418             : //          { RTL_TEXTENCODING_BIG5_HKSCS,
    1419             : //            RTL_CONSTASCII_STRINGPARAM(
    1420             : //                "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
    1421             : //            { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100,
    1422             : //              0xFFED,0xD849,0xDD13,0x3000,0x9F98 },
    1423             : //            13,
    1424             : //            true,
    1425             : //            true,
    1426             : //            true,
    1427             : //            false,
    1428             : //            RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1429             :             { RTL_TEXTENCODING_BIG5_HKSCS,
    1430             :               RTL_CONSTASCII_STRINGPARAM(
    1431             :                   "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
    1432             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100,
    1433             :                 0xFFED,0xE01E,0x3000,0x9F98 },
    1434             :               12,
    1435             :               true,
    1436             :               true,
    1437             :               true,
    1438             :               false,
    1439             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1440             :             { RTL_TEXTENCODING_BIG5_HKSCS,
    1441             :               RTL_CONSTASCII_STRINGPARAM(
    1442             :                   "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
    1443             :               { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100,
    1444             :                 0xFFED,0xD849,0xDD13,0x3000,0x9F98 },
    1445             :               13,
    1446             :               true,
    1447             :               false,
    1448             :               true,
    1449             :               false,
    1450             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1451             :             { RTL_TEXTENCODING_BIG5_HKSCS,
    1452             :               RTL_CONSTASCII_STRINGPARAM(
    1453             :                   "\xC6\xA1\xC6\xCF\xC6\xD3\xC6\xD5\xC6\xD7\xC6\xDE\xC6\xDF"
    1454             :                   "\xC6\xFE\xC7\x40\xC7\x7E\xC7\xA1\xC7\xFE"),
    1455             :               { 0x2460,0xF6E0,0xF6E4,0xF6E6,0xF6E8,0xF6EF,0xF6F0,0x3058,
    1456             :                 0x3059,0x30A4,0x30A5,0x041A },
    1457             :               12,
    1458             :               true,
    1459             :               true,
    1460             :               true,
    1461             :               false,
    1462             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1463             :             { RTL_TEXTENCODING_BIG5_HKSCS,
    1464             :               RTL_CONSTASCII_STRINGPARAM("\x81\x40\x84\xFE"),
    1465             :               { 0xEEB8,0xF12B },
    1466             :               2,
    1467             :               true,
    1468             :               true,
    1469             :               true,
    1470             :               false,
    1471             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1472             :             { RTL_TEXTENCODING_BIG5_HKSCS,
    1473             :               RTL_CONSTASCII_STRINGPARAM(
    1474             :                   "\x81\x40\x8D\xFE\x8E\x40\xA0\xFE\xC6\xA1\xC8\xFE\xFA\x40"
    1475             :                   "\xFE\xFE"),
    1476             :               { 0xEEB8,0xF6B0,0xE311,0xEEB7,0xF6B1,0xF848,0xE000,0xE310 },
    1477             :               8,
    1478             :               true,
    1479             :               false,
    1480             :               true,
    1481             :               false,
    1482             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1483             :             { RTL_TEXTENCODING_BIG5_HKSCS,
    1484             :               RTL_CONSTASCII_STRINGPARAM("\xAD\xC5\x94\x55"),
    1485             :               { 0x5029,0x7250 },
    1486             :               2,
    1487             :               true,
    1488             :               true,
    1489             :               true,
    1490             :               false,
    1491             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1492             :             { RTL_TEXTENCODING_BIG5_HKSCS,
    1493             :               RTL_CONSTASCII_STRINGPARAM("\xFA\x5F\xA0\xE4"),
    1494             :               { 0x5029,0x7250 },
    1495             :               2,
    1496             :               true,
    1497             :               true,
    1498             :               false,
    1499             :               false,
    1500             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1501             :             { RTL_TEXTENCODING_BIG5_HKSCS,
    1502             :               RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"),
    1503             :               { 0xEE1B,0xEE59,0xEE5A,0xEEB7 },
    1504             :               4,
    1505             :               true,
    1506             :               false,
    1507             :               true,
    1508             :               false,
    1509             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1510             :             { RTL_TEXTENCODING_BIG5,
    1511             :               RTL_CONSTASCII_STRINGPARAM("\xA1\x45"),
    1512             :               { 0x2027 },
    1513             :               1,
    1514             :               true,
    1515             :               true,
    1516             :               true,
    1517             :               false,
    1518             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1519             :             { RTL_TEXTENCODING_BIG5,
    1520             :               RTL_CONSTASCII_STRINGPARAM(
    1521             :                   "\xC6\xCF\xC6\xD3\xC6\xD5\xC6\xD7\xC6\xDE\xC6\xDF"),
    1522             :               { 0x306B,0x306F,0x3071,0x3073,0x307A,0x307B },
    1523             :               6,
    1524             :               true,
    1525             :               true,
    1526             :               true,
    1527             :               false,
    1528             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1529             :             { RTL_TEXTENCODING_BIG5,
    1530             :               RTL_CONSTASCII_STRINGPARAM(
    1531             :                   "\xC7\xFD\xC7\xFE\xC8\x40\xC8\x7E\xC8\xA1\xC8\xFE"),
    1532             :               { 0xF7AA,0xF7AB,0xF7AC,0xF7EA,0xF7EB,0xF848 },
    1533             :               6,
    1534             :               true,
    1535             :               true,
    1536             :               true,
    1537             :               false,
    1538             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1539             :             { RTL_TEXTENCODING_BIG5,
    1540             :               RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"),
    1541             :               { 0xEE1B,0xEE59,0xEE5A,0xEEB7 },
    1542             :               4,
    1543             :               true,
    1544             :               true,
    1545             :               true,
    1546             :               false,
    1547             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1548             :             { RTL_TEXTENCODING_MS_950,
    1549             :               RTL_CONSTASCII_STRINGPARAM(
    1550             :                   "\xC6\xA1\xC6\xFE\xC7\x40\xC7\x7E\xC7\xA1\xC7\xFE\xC8\x40"
    1551             :                   "\xC8\x7E\xC8\xA1\xC8\xFE"),
    1552             :               { 0xF6B1,0xF70E,0xF70F,0xF74D,0xF74E,0xF7AB,0xF7AC,0xF7EA,
    1553             :                 0xF7EB,0xF848 },
    1554             :               10,
    1555             :               true,
    1556             :               true,
    1557             :               true,
    1558             :               false,
    1559             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1560             :             { RTL_TEXTENCODING_MS_950,
    1561             :               RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"),
    1562             :               { 0xEE1B,0xEE59,0xEE5A,0xEEB7 },
    1563             :               4,
    1564             :               true,
    1565             :               true,
    1566             :               true,
    1567             :               false,
    1568             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1569             : 
    1570             :             // Test Unicode beyond BMP:
    1571             : 
    1572             :             // FIXME The second m_bForward test (requiring a context) does not
    1573             :             // work for UTF7:
    1574             : //          { RTL_TEXTENCODING_UTF7,
    1575             : //            RTL_CONSTASCII_STRINGPARAM("+2EndEw-"),
    1576             : //            { 0xD849,0xDD13 },
    1577             : //            2,
    1578             : //            true,
    1579             : //            true,
    1580             : //            true,
    1581             : //            false,
    1582             : //            RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1583             :             { RTL_TEXTENCODING_UTF8,
    1584             :               RTL_CONSTASCII_STRINGPARAM("\xF0\xA2\x94\x93"),
    1585             :               { 0xD849,0xDD13 },
    1586             :               2,
    1587             :               true,
    1588             :               true,
    1589             :               true,
    1590             :               false,
    1591             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1592             :             { RTL_TEXTENCODING_GB_18030,
    1593             :               RTL_CONSTASCII_STRINGPARAM("\x95\x39\xC5\x37"),
    1594             :               { 0xD849,0xDD13 },
    1595             :               2,
    1596             :               true,
    1597             :               true,
    1598             :               true,
    1599             :               false,
    1600             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1601             :             { RTL_TEXTENCODING_BIG5_HKSCS,
    1602             :               RTL_CONSTASCII_STRINGPARAM("\xFA\x5E"),
    1603             :               { 0xD849,0xDD13 },
    1604             :               2,
    1605             :               true,
    1606             :               false,
    1607             :               true,
    1608             :               false,
    1609             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1610             : 
    1611             :             // Test GBK (aka CP936):
    1612             : 
    1613             :             { RTL_TEXTENCODING_GBK,
    1614             :               RTL_CONSTASCII_STRINGPARAM("\xFD\x7C\xC1\xFA\xFD\x9B"),
    1615             :               { 0x9F76,0x9F99,0x9FA5 },
    1616             :               3,
    1617             :               true,
    1618             :               true,
    1619             :               true,
    1620             :               false,
    1621             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1622             :             { RTL_TEXTENCODING_MS_936,
    1623             :               RTL_CONSTASCII_STRINGPARAM("\xFD\x7C\xC1\xFA\xFD\x9B"),
    1624             :               { 0x9F76,0x9F99,0x9FA5 },
    1625             :               3,
    1626             :               true,
    1627             :               true,
    1628             :               true,
    1629             :               false,
    1630             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1631             :             { RTL_TEXTENCODING_GBK,
    1632             :               RTL_CONSTASCII_STRINGPARAM(
    1633             :                   "\xFE\x50\xFE\x54\xFE\x55\xFE\x56"
    1634             :                   "\xFE\x57\xFE\x58\xFE\x5A\xFE\x5B\xFE\x5C\xFE\x5D"
    1635             :                   "\xFE\x5E\xFE\x5F\xFE\x60\xFE\x62\xFE\x63\xFE\x64"
    1636             :                   "\xFE\x65\xFE\x68\xFE\x69\xFE\x6A\xFE\x6B"
    1637             :                   "\xFE\x6E\xFE\x6F\xFE\x70\xFE\x71\xFE\x72"
    1638             :                   "\xFE\x73\xFE\x74\xFE\x75\xFE\x77\xFE\x78\xFE\x79"
    1639             :                   "\xFE\x7A\xFE\x7B\xFE\x7C\xFE\x7D\xFE\x80\xFE\x81"
    1640             :                   "\xFE\x82\xFE\x83\xFE\x84\xFE\x85\xFE\x86\xFE\x87\xFE\x88"
    1641             :                   "\xFE\x89\xFE\x8A\xFE\x8B\xFE\x8C\xFE\x8D\xFE\x8E\xFE\x8F"
    1642             :                   "\xFE\x92\xFE\x93\xFE\x94\xFE\x95\xFE\x96"
    1643             :                   "\xFE\x97\xFE\x98\xFE\x99\xFE\x9A\xFE\x9B\xFE\x9C\xFE\x9D"
    1644             :                   "\xFE\x9E\xFE\x9F"),
    1645             :               { 0x2E81,0x2E84,0x3473,0x3447,0x2E88,0x2E8B,0x359E,0x361A,
    1646             :                 0x360E,0x2E8C,0x2E97,0x396E,0x3918,0x39CF,0x39DF,0x3A73,
    1647             :                 0x39D0,0x3B4E,0x3C6E,0x3CE0,0x2EA7,0x2EAA,0x4056,0x415F,
    1648             :                 0x2EAE,0x4337,0x2EB3,0x2EB6,0x2EB7,0x43B1,0x43AC,0x2EBB,
    1649             :                 0x43DD,0x44D6,0x4661,0x464C,0x4723,0x4729,0x477C,0x478D,
    1650             :                 0x2ECA,0x4947,0x497A,0x497D,0x4982,0x4983,0x4985,0x4986,
    1651             :                 0x499F,0x499B,0x49B7,0x49B6,0x4CA3,0x4C9F,0x4CA0,0x4CA1,
    1652             :                 0x4C77,0x4CA2,0x4D13,0x4D14,0x4D15,0x4D16,0x4D17,0x4D18,
    1653             :                 0x4D19,0x4DAE },
    1654             :               66,
    1655             :               true,
    1656             :               true,
    1657             :               true,
    1658             :               false,
    1659             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1660             :             { RTL_TEXTENCODING_EUC_JP,
    1661             :               RTL_CONSTASCII_STRINGPARAM("?"),
    1662             :               { 0xFF0D },
    1663             :               1,
    1664             :               true,
    1665             :               false,
    1666             :               true,
    1667             :               false,
    1668             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK },
    1669             : 
    1670             :             // Test of "JIS X 0208 row 13" (taken from CP932; added to
    1671             :             // ISO-2022-JP and EUC-JP; 74 of the 83 characters introduce
    1672             :             // mappings to new Unicode characters):
    1673             :             { RTL_TEXTENCODING_MS_932,
    1674             :               RTL_CONSTASCII_STRINGPARAM(
    1675             :                   "\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46"
    1676             :                   "\x87\x47\x87\x48\x87\x49\x87\x4A\x87\x4B\x87\x4C\x87\x4D"
    1677             :                   "\x87\x4E\x87\x4F\x87\x50\x87\x51\x87\x52\x87\x53\x87\x54"
    1678             :                   "\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x87\x5A\x87\x5B"
    1679             :                   "\x87\x5C\x87\x5D\x87\x5F\x87\x60\x87\x61\x87\x62\x87\x63"
    1680             :                   "\x87\x64\x87\x65\x87\x66\x87\x67\x87\x68\x87\x69\x87\x6A"
    1681             :                   "\x87\x6B\x87\x6C\x87\x6D\x87\x6E\x87\x6F\x87\x70\x87\x71"
    1682             :                   "\x87\x72\x87\x73\x87\x74\x87\x75\x87\x7E\x87\x80\x87\x81"
    1683             :                   "\x87\x82\x87\x83\x87\x84\x87\x85\x87\x86\x87\x87\x87\x88"
    1684             :                   "\x87\x89\x87\x8A\x87\x8B\x87\x8C\x87\x8D\x87\x8E\x87\x8F"
    1685             :                   "\x87\x90\x87\x91\x87\x92\x87\x93\x87\x94\x87\x95\x87\x96"
    1686             :                   "\x87\x97\x87\x98\x87\x99\x87\x9A\x87\x9B\x87\x9C"),
    1687             :               { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
    1688             :                 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
    1689             :                 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
    1690             :                 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
    1691             :                 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
    1692             :                 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
    1693             :                 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
    1694             :                 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
    1695             :                 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
    1696             :                 0x2229,0x222A },
    1697             :               83,
    1698             :               true,
    1699             :               true,
    1700             :               false,
    1701             :               false,
    1702             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1703             :             { RTL_TEXTENCODING_SHIFT_JIS,
    1704             :               RTL_CONSTASCII_STRINGPARAM(
    1705             :                   "\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46"
    1706             :                   "\x87\x47\x87\x48\x87\x49\x87\x4A\x87\x4B\x87\x4C\x87\x4D"
    1707             :                   "\x87\x4E\x87\x4F\x87\x50\x87\x51\x87\x52\x87\x53\x87\x54"
    1708             :                   "\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x87\x5A\x87\x5B"
    1709             :                   "\x87\x5C\x87\x5D\x87\x5F\x87\x60\x87\x61\x87\x62\x87\x63"
    1710             :                   "\x87\x64\x87\x65\x87\x66\x87\x67\x87\x68\x87\x69\x87\x6A"
    1711             :                   "\x87\x6B\x87\x6C\x87\x6D\x87\x6E\x87\x6F\x87\x70\x87\x71"
    1712             :                   "\x87\x72\x87\x73\x87\x74\x87\x75\x87\x7E\x87\x80\x87\x81"
    1713             :                   "\x87\x82\x87\x83\x87\x84\x87\x85\x87\x86\x87\x87\x87\x88"
    1714             :                   "\x87\x89\x87\x8A\x87\x8B\x87\x8C\x87\x8D\x87\x8E\x87\x8F"
    1715             :                   "\x87\x90\x87\x91\x87\x92\x87\x93\x87\x94\x87\x95\x87\x96"
    1716             :                   "\x87\x97\x87\x98\x87\x99\x87\x9A\x87\x9B\x87\x9C"),
    1717             :               { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
    1718             :                 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
    1719             :                 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
    1720             :                 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
    1721             :                 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
    1722             :                 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
    1723             :                 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
    1724             :                 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
    1725             :                 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
    1726             :                 0x2229,0x222A },
    1727             :               83,
    1728             :               true,
    1729             :               true,
    1730             :               false,
    1731             :               false,
    1732             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1733             :             { RTL_TEXTENCODING_ISO_2022_JP,
    1734             :               RTL_CONSTASCII_STRINGPARAM(
    1735             :                   "\x1B$B\x2D\x21\x2D\x22\x2D\x23\x2D\x24\x2D\x25\x2D\x26"
    1736             :                   "\x2D\x27\x2D\x28\x2D\x29\x2D\x2A\x2D\x2B\x2D\x2C\x2D\x2D"
    1737             :                   "\x2D\x2E\x2D\x2F\x2D\x30\x2D\x31\x2D\x32\x2D\x33\x2D\x34"
    1738             :                   "\x2D\x35\x2D\x36\x2D\x37\x2D\x38\x2D\x39\x2D\x3A\x2D\x3B"
    1739             :                   "\x2D\x3C\x2D\x3D\x2D\x3E\x2D\x40\x2D\x41\x2D\x42\x2D\x43"
    1740             :                   "\x2D\x44\x2D\x45\x2D\x46\x2D\x47\x2D\x48\x2D\x49\x2D\x4A"
    1741             :                   "\x2D\x4B\x2D\x4C\x2D\x4D\x2D\x4E\x2D\x4F\x2D\x50\x2D\x51"
    1742             :                   "\x2D\x52\x2D\x53\x2D\x54\x2D\x55\x2D\x56\x2D\x5F\x2D\x60"
    1743             :                   "\x2D\x61\x2D\x62\x2D\x63\x2D\x64\x2D\x65\x2D\x66\x2D\x67"
    1744             :                   "\x2D\x68\x2D\x69\x2D\x6A\x2D\x6B\x2D\x6C\x2D\x6D\x2D\x6E"
    1745             :                   "\x2D\x6F\x2D\x70\x2D\x71\x2D\x72\x2D\x73\x2D\x74\x2D\x75"
    1746             :                   "\x2D\x76\x2D\x77\x2D\x78\x2D\x79\x2D\x7A\x2D\x7B\x2D\x7C"
    1747             :                   "\x1B(B"),
    1748             :               { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
    1749             :                 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
    1750             :                 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
    1751             :                 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
    1752             :                 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
    1753             :                 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
    1754             :                 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
    1755             :                 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
    1756             :                 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
    1757             :                 0x2229,0x222A },
    1758             :               83,
    1759             :               false,
    1760             :               true,
    1761             :               false,
    1762             :               false,
    1763             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1764             :             { RTL_TEXTENCODING_ISO_2022_JP,
    1765             :               RTL_CONSTASCII_STRINGPARAM(
    1766             :                   "\x1B$B\x2D\x21\x2D\x22\x2D\x23\x2D\x24\x2D\x25\x2D\x26"
    1767             :                   "\x2D\x27\x2D\x28\x2D\x29\x2D\x2A\x2D\x2B\x2D\x2C\x2D\x2D"
    1768             :                   "\x2D\x2E\x2D\x2F\x2D\x30\x2D\x31\x2D\x32\x2D\x33\x2D\x34"
    1769             :                   "\x2D\x35\x2D\x36\x2D\x37\x2D\x38\x2D\x39\x2D\x3A\x2D\x3B"
    1770             :                   "\x2D\x3C\x2D\x3D\x2D\x3E\x2D\x40\x2D\x41\x2D\x42\x2D\x43"
    1771             :                   "\x2D\x44\x2D\x45\x2D\x46\x2D\x47\x2D\x48\x2D\x49\x2D\x4A"
    1772             :                   "\x2D\x4B\x2D\x4C\x2D\x4D\x2D\x4E\x2D\x4F\x2D\x50\x2D\x51"
    1773             :                   "\x2D\x52\x2D\x53\x2D\x54\x2D\x55\x2D\x56\x2D\x5F\x2D\x60"
    1774             :                   "\x2D\x61\x2D\x62\x2D\x63\x2D\x64\x2D\x65\x2D\x66\x2D\x67"
    1775             :                   "\x2D\x68\x2D\x69\x2D\x6A\x2D\x6B\x2D\x6C\x2D\x6D\x2D\x6E"
    1776             :                   "\x2D\x6F\x2D\x73\x2D\x74\x2D\x78\x2D\x79\x1B(B"),
    1777             :               { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
    1778             :                 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
    1779             :                 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
    1780             :                 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
    1781             :                 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
    1782             :                 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
    1783             :                 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
    1784             :                 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x222E,0x2211,
    1785             :                 0x221F,0x22BF },
    1786             :               74,
    1787             :               false,
    1788             :               true,
    1789             :               true,
    1790             :               false,
    1791             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1792             :             { RTL_TEXTENCODING_EUC_JP,
    1793             :               RTL_CONSTASCII_STRINGPARAM(
    1794             :                   "\xAD\xA1\xAD\xA2\xAD\xA3\xAD\xA4\xAD\xA5\xAD\xA6\xAD\xA7"
    1795             :                   "\xAD\xA8\xAD\xA9\xAD\xAA\xAD\xAB\xAD\xAC\xAD\xAD\xAD\xAE"
    1796             :                   "\xAD\xAF\xAD\xB0\xAD\xB1\xAD\xB2\xAD\xB3\xAD\xB4\xAD\xB5"
    1797             :                   "\xAD\xB6\xAD\xB7\xAD\xB8\xAD\xB9\xAD\xBA\xAD\xBB\xAD\xBC"
    1798             :                   "\xAD\xBD\xAD\xBE\xAD\xC0\xAD\xC1\xAD\xC2\xAD\xC3\xAD\xC4"
    1799             :                   "\xAD\xC5\xAD\xC6\xAD\xC7\xAD\xC8\xAD\xC9\xAD\xCA\xAD\xCB"
    1800             :                   "\xAD\xCC\xAD\xCD\xAD\xCE\xAD\xCF\xAD\xD0\xAD\xD1\xAD\xD2"
    1801             :                   "\xAD\xD3\xAD\xD4\xAD\xD5\xAD\xD6\xAD\xDF\xAD\xE0\xAD\xE1"
    1802             :                   "\xAD\xE2\xAD\xE3\xAD\xE4\xAD\xE5\xAD\xE6\xAD\xE7\xAD\xE8"
    1803             :                   "\xAD\xE9\xAD\xEA\xAD\xEB\xAD\xEC\xAD\xED\xAD\xEE\xAD\xEF"
    1804             :                   "\xAD\xF0\xAD\xF1\xAD\xF2\xAD\xF3\xAD\xF4\xAD\xF5\xAD\xF6"
    1805             :                   "\xAD\xF7\xAD\xF8\xAD\xF9\xAD\xFA\xAD\xFB\xAD\xFC"),
    1806             :               { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
    1807             :                 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
    1808             :                 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
    1809             :                 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
    1810             :                 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
    1811             :                 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
    1812             :                 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
    1813             :                 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
    1814             :                 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
    1815             :                 0x2229,0x222A },
    1816             :               83,
    1817             :               true,
    1818             :               true,
    1819             :               false,
    1820             :               false,
    1821             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1822             :             { RTL_TEXTENCODING_EUC_JP,
    1823             :               RTL_CONSTASCII_STRINGPARAM(
    1824             :                   "\xAD\xA1\xAD\xA2\xAD\xA3\xAD\xA4\xAD\xA5\xAD\xA6\xAD\xA7"
    1825             :                   "\xAD\xA8\xAD\xA9\xAD\xAA\xAD\xAB\xAD\xAC\xAD\xAD\xAD\xAE"
    1826             :                   "\xAD\xAF\xAD\xB0\xAD\xB1\xAD\xB2\xAD\xB3\xAD\xB4\xAD\xB5"
    1827             :                   "\xAD\xB6\xAD\xB7\xAD\xB8\xAD\xB9\xAD\xBA\xAD\xBB\xAD\xBC"
    1828             :                   "\xAD\xBD\xAD\xBE\xAD\xC0\xAD\xC1\xAD\xC2\xAD\xC3\xAD\xC4"
    1829             :                   "\xAD\xC5\xAD\xC6\xAD\xC7\xAD\xC8\xAD\xC9\xAD\xCA\xAD\xCB"
    1830             :                   "\xAD\xCC\xAD\xCD\xAD\xCE\xAD\xCF\xAD\xD0\xAD\xD1\xAD\xD2"
    1831             :                   "\xAD\xD3\xAD\xD4\xAD\xD5\xAD\xD6\xAD\xDF\xAD\xE0\xAD\xE1"
    1832             :                   "\xAD\xE2\xAD\xE3\xAD\xE4\xAD\xE5\xAD\xE6\xAD\xE7\xAD\xE8"
    1833             :                   "\xAD\xE9\xAD\xEA\xAD\xEB\xAD\xEC\xAD\xED\xAD\xEE\xAD\xEF"
    1834             :                   "\xAD\xF3\xAD\xF4\xAD\xF8\xAD\xF9"),
    1835             :               { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
    1836             :                 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
    1837             :                 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
    1838             :                 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
    1839             :                 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
    1840             :                 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
    1841             :                 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
    1842             :                 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x222E,0x2211,
    1843             :                 0x221F,0x22BF },
    1844             :               74,
    1845             :               true,
    1846             :               true,
    1847             :               true,
    1848             :               false,
    1849             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1850             : 
    1851             :             { RTL_TEXTENCODING_EUC_JP,
    1852             :               RTL_CONSTASCII_STRINGPARAM("\xB9\xF5"),
    1853             :               { 0x9ED2 },
    1854             :               1,
    1855             :               true,
    1856             :               true,
    1857             :               true,
    1858             :               false,
    1859             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1860             : 
    1861             :             // Test ISO-8859-x/MS-125x range 0x80--9F:
    1862             : 
    1863             :             { RTL_TEXTENCODING_ISO_8859_1,
    1864             :               RTL_CONSTASCII_STRINGPARAM(
    1865             :                   "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
    1866             :                   "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
    1867             :                   "\x9E\x9F"),
    1868             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    1869             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    1870             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    1871             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    1872             :               32,
    1873             :               true,
    1874             :               true,
    1875             :               true,
    1876             :               false,
    1877             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1878             :             { RTL_TEXTENCODING_ISO_8859_2,
    1879             :               RTL_CONSTASCII_STRINGPARAM(
    1880             :                   "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
    1881             :                   "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
    1882             :                   "\x9E\x9F"),
    1883             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    1884             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    1885             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    1886             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    1887             :               32,
    1888             :               true,
    1889             :               true,
    1890             :               true,
    1891             :               false,
    1892             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1893             :             { RTL_TEXTENCODING_ISO_8859_3,
    1894             :               RTL_CONSTASCII_STRINGPARAM(
    1895             :                   "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
    1896             :                   "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
    1897             :                   "\x9E\x9F"),
    1898             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    1899             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    1900             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    1901             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    1902             :               32,
    1903             :               true,
    1904             :               true,
    1905             :               true,
    1906             :               false,
    1907             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1908             :             { RTL_TEXTENCODING_ISO_8859_4,
    1909             :               RTL_CONSTASCII_STRINGPARAM(
    1910             :                   "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
    1911             :                   "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
    1912             :                   "\x9E\x9F"),
    1913             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    1914             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    1915             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    1916             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    1917             :               32,
    1918             :               true,
    1919             :               true,
    1920             :               true,
    1921             :               false,
    1922             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1923             :             { RTL_TEXTENCODING_ISO_8859_5,
    1924             :               RTL_CONSTASCII_STRINGPARAM(
    1925             :                   "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
    1926             :                   "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
    1927             :                   "\x9E\x9F"),
    1928             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    1929             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    1930             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    1931             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    1932             :               32,
    1933             :               true,
    1934             :               true,
    1935             :               true,
    1936             :               false,
    1937             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1938             :             { RTL_TEXTENCODING_ISO_8859_6,
    1939             :               RTL_CONSTASCII_STRINGPARAM(
    1940             :                   "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
    1941             :                   "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
    1942             :                   "\x9E\x9F"),
    1943             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    1944             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    1945             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    1946             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    1947             :               32,
    1948             :               true,
    1949             :               true,
    1950             :               true,
    1951             :               false,
    1952             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1953             :             { RTL_TEXTENCODING_ISO_8859_7,
    1954             :               RTL_CONSTASCII_STRINGPARAM(
    1955             :                   "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
    1956             :                   "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
    1957             :                   "\x9E\x9F"),
    1958             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    1959             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    1960             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    1961             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    1962             :               32,
    1963             :               true,
    1964             :               true,
    1965             :               true,
    1966             :               false,
    1967             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1968             :             { RTL_TEXTENCODING_ISO_8859_8,
    1969             :               RTL_CONSTASCII_STRINGPARAM(
    1970             :                   "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
    1971             :                   "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
    1972             :                   "\x9E\x9F"),
    1973             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    1974             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    1975             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    1976             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    1977             :               32,
    1978             :               true,
    1979             :               true,
    1980             :               true,
    1981             :               false,
    1982             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1983             :             { RTL_TEXTENCODING_ISO_8859_9,
    1984             :               RTL_CONSTASCII_STRINGPARAM(
    1985             :                   "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
    1986             :                   "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
    1987             :                   "\x9E\x9F"),
    1988             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    1989             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    1990             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    1991             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    1992             :               32,
    1993             :               true,
    1994             :               true,
    1995             :               true,
    1996             :               false,
    1997             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    1998             :             { RTL_TEXTENCODING_ISO_8859_14,
    1999             :               RTL_CONSTASCII_STRINGPARAM(
    2000             :                   "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
    2001             :                   "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
    2002             :                   "\x9E\x9F"),
    2003             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2004             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2005             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2006             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2007             :               32,
    2008             :               true,
    2009             :               true,
    2010             :               true,
    2011             :               false,
    2012             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2013             :             { RTL_TEXTENCODING_ISO_8859_15,
    2014             :               RTL_CONSTASCII_STRINGPARAM(
    2015             :                   "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
    2016             :                   "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
    2017             :                   "\x9E\x9F"),
    2018             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2019             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2020             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2021             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2022             :               32,
    2023             :               true,
    2024             :               true,
    2025             :               true,
    2026             :               false,
    2027             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2028             :             { RTL_TEXTENCODING_MS_874,
    2029             :               RTL_CONSTASCII_STRINGPARAM(""),
    2030             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2031             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2032             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2033             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2034             :               32,
    2035             :               true,
    2036             :               false,
    2037             :               true,
    2038             :               false,
    2039             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2040             :             { RTL_TEXTENCODING_MS_1250,
    2041             :               RTL_CONSTASCII_STRINGPARAM(""),
    2042             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2043             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2044             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2045             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2046             :               32,
    2047             :               true,
    2048             :               false,
    2049             :               true,
    2050             :               false,
    2051             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2052             :             { RTL_TEXTENCODING_MS_1251,
    2053             :               RTL_CONSTASCII_STRINGPARAM(""),
    2054             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2055             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2056             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2057             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2058             :               32,
    2059             :               true,
    2060             :               false,
    2061             :               true,
    2062             :               false,
    2063             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2064             :             { RTL_TEXTENCODING_MS_1252,
    2065             :               RTL_CONSTASCII_STRINGPARAM(""),
    2066             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2067             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2068             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2069             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2070             :               32,
    2071             :               true,
    2072             :               false,
    2073             :               true,
    2074             :               false,
    2075             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2076             :             { RTL_TEXTENCODING_MS_1253,
    2077             :               RTL_CONSTASCII_STRINGPARAM(""),
    2078             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2079             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2080             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2081             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2082             :               32,
    2083             :               true,
    2084             :               false,
    2085             :               true,
    2086             :               false,
    2087             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2088             :             { RTL_TEXTENCODING_MS_1254,
    2089             :               RTL_CONSTASCII_STRINGPARAM(""),
    2090             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2091             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2092             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2093             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2094             :               32,
    2095             :               true,
    2096             :               false,
    2097             :               true,
    2098             :               false,
    2099             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2100             :             { RTL_TEXTENCODING_MS_1255,
    2101             :               RTL_CONSTASCII_STRINGPARAM(""),
    2102             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2103             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2104             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2105             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2106             :               32,
    2107             :               true,
    2108             :               false,
    2109             :               true,
    2110             :               false,
    2111             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2112             :             { RTL_TEXTENCODING_MS_1256,
    2113             :               RTL_CONSTASCII_STRINGPARAM(""),
    2114             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2115             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2116             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2117             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2118             :               32,
    2119             :               true,
    2120             :               false,
    2121             :               true,
    2122             :               false,
    2123             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2124             :             { RTL_TEXTENCODING_MS_1257,
    2125             :               RTL_CONSTASCII_STRINGPARAM(""),
    2126             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2127             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2128             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2129             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2130             :               32,
    2131             :               true,
    2132             :               false,
    2133             :               true,
    2134             :               false,
    2135             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2136             :             { RTL_TEXTENCODING_MS_1258,
    2137             :               RTL_CONSTASCII_STRINGPARAM(""),
    2138             :               { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
    2139             :                 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
    2140             :                 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
    2141             :                 0x009B,0x009C,0x009D,0x009E,0x009F },
    2142             :               32,
    2143             :               true,
    2144             :               false,
    2145             :               true,
    2146             :               false,
    2147             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2148             :             { RTL_TEXTENCODING_MS_949,
    2149             :               RTL_CONSTASCII_STRINGPARAM(
    2150             :                   "\xB0\xA1\xB0\xA2\x81\x41\x81\x42\xB0\xA3\x81\x43\x81\x44"
    2151             :                   "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7\x81\x45\x81\x46\x81\x47"
    2152             :                   "\x81\x48\x81\x49\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
    2153             :                   "\xB0\xAD\xB0\xAE\xB0\xAF\x81\x4A\xB0\xB0\xB0\xB1\xB0\xB2"),
    2154             :               { 0xAC00,0xAC01,0xAC02,0xAC03,0xAC04,0xAC05,0xAC06,0xAC07,0xAC08,
    2155             :                 0xAC09,0xAC0A,0xAC0B,0xAC0C,0xAC0D,0xAC0E,0xAC0F,0xAC10,0xAC11,
    2156             :                 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,0xAC18,0xAC19,0xAC1A,
    2157             :                 0xAC1B },
    2158             :               28,
    2159             :               true,
    2160             :               true,
    2161             :               true,
    2162             :               false,
    2163             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2164             :             { RTL_TEXTENCODING_MS_949,
    2165             :               RTL_CONSTASCII_STRINGPARAM(
    2166             :                   "\xC9\xA1\xC9\xA2\xC9\xA3\xC9\xFC\xC9\xFD\xC9\xFE"
    2167             :                   "\xFE\xA1\xFE\xA2\xFE\xA3\xFE\xFC\xFE\xFD\xFE\xFE"),
    2168             :               { 0xE000,0xE001,0xE002,0xE05B,0xE05C,0xE05D,
    2169             :                 0xE05E,0xE05F,0xE060,0xE0B9,0xE0BA,0xE0BB },
    2170             :               12,
    2171             :               true,
    2172             :               true,
    2173             :               true,
    2174             :               false,
    2175             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2176             :             { RTL_TEXTENCODING_EUC_KR,
    2177             :               RTL_CONSTASCII_STRINGPARAM(
    2178             :                   "\xB0\xA1\xB0\xA2"              "\xB0\xA3"
    2179             :                   "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7"
    2180             :                                   "\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
    2181             :                   "\xB0\xAD\xB0\xAE\xB0\xAF"      "\xB0\xB0\xB0\xB1\xB0\xB2"),
    2182             :               { 0xAC00,0xAC01,              0xAC04,              0xAC07,0xAC08,
    2183             :                 0xAC09,0xAC0A,                                   0xAC10,0xAC11,
    2184             :                 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,       0xAC19,0xAC1A,
    2185             :                 0xAC1B },
    2186             :               18,
    2187             :               true,
    2188             :               true,
    2189             :               true,
    2190             :               false,
    2191             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2192             :             { RTL_TEXTENCODING_EUC_KR,
    2193             :               RTL_CONSTASCII_STRINGPARAM(
    2194             :                   "\xB0\xA1\xB0\xA2"              "\xB0\xA3"
    2195             :                   "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7"
    2196             :                                   "\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
    2197             :                   "\xB0\xAD\xB0\xAE\xB0\xAF"      "\xB0\xB0\xB0\xB1\xB0\xB2"),
    2198             :               { 0xAC00,0xAC01,0xAC02,0xAC03,0xAC04,0xAC05,0xAC06,0xAC07,0xAC08,
    2199             :                 0xAC09,0xAC0A,0xAC0B,0xAC0C,0xAC0D,0xAC0E,0xAC0F,0xAC10,0xAC11,
    2200             :                 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,0xAC18,0xAC19,0xAC1A,
    2201             :                 0xAC1B },
    2202             :               28,
    2203             :               true,
    2204             :               false,
    2205             :               true,
    2206             :               false,
    2207             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2208             :             { RTL_TEXTENCODING_EUC_KR,
    2209             :               RTL_CONSTASCII_STRINGPARAM(
    2210             :                   "\xC9\xA1\xC9\xA2\xC9\xA3\xC9\xFC\xC9\xFD\xC9\xFE"
    2211             :                   "\xFE\xA1\xFE\xA2\xFE\xA3\xFE\xFC\xFE\xFD\xFE\xFE"),
    2212             :               { 0xE000,0xE001,0xE002,0xE05B,0xE05C,0xE05D,
    2213             :                 0xE05E,0xE05F,0xE060,0xE0B9,0xE0BA,0xE0BB },
    2214             :               12,
    2215             :               true,
    2216             :               true,
    2217             :               true,
    2218             :               false,
    2219             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2220             : 
    2221             :             // Test UTF-8:
    2222             : 
    2223             :             { RTL_TEXTENCODING_UTF8,
    2224             :               RTL_CONSTASCII_STRINGPARAM("\x00"),
    2225             :               { 0x0000 },
    2226             :               1,
    2227             :               false,
    2228             :               true,
    2229             :               true,
    2230             :               false,
    2231             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2232             :             { RTL_TEXTENCODING_UTF8,
    2233             :               RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF"),
    2234             :               { 0xFEFF },
    2235             :               1,
    2236             :               false,
    2237             :               true,
    2238             :               true,
    2239             :               false,
    2240             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2241             :             { RTL_TEXTENCODING_UTF8,
    2242             :               RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF\xEF\xBB\xBF"),
    2243             :               { 0xFEFF,0xFEFF },
    2244             :               2,
    2245             :               false,
    2246             :               true,
    2247             :               true,
    2248             :               false,
    2249             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2250             :             { RTL_TEXTENCODING_UTF8,
    2251             :               RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF"),
    2252             :               { 0 },
    2253             :               0,
    2254             :               false,
    2255             :               true,
    2256             :               true,
    2257             :               true,
    2258             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2259             :             { RTL_TEXTENCODING_UTF8,
    2260             :               RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF\xEF\xBB\xBF"),
    2261             :               { 0xFEFF },
    2262             :               1,
    2263             :               false,
    2264             :               true,
    2265             :               true,
    2266             :               true,
    2267             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2268             :             { RTL_TEXTENCODING_UTF8,
    2269             :               RTL_CONSTASCII_STRINGPARAM("\x01\x02\x7E\x7F"),
    2270             :               { 0x0001,0x0002,0x007E,0x007F },
    2271             :               4,
    2272             :               false,
    2273             :               true,
    2274             :               true,
    2275             :               false,
    2276             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2277             :             { RTL_TEXTENCODING_UTF8,
    2278             :               RTL_CONSTASCII_STRINGPARAM(
    2279             :                   "\xC0\x80\xE0\x80\x81\xF0\x80\x80\x82\xF8\x80\x80\x80\x83"
    2280             :                   "\xFC\x80\x80\x80\x80\x84"),
    2281             :               { 0x0000,0x0001,0x0002,0x0003,0x0004 },
    2282             :               5,
    2283             :               false,
    2284             :               true,
    2285             :               false,
    2286             :               false,
    2287             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2288             :             { RTL_TEXTENCODING_UTF8,
    2289             :               RTL_CONSTASCII_STRINGPARAM("\xED\xA1\x89\xED\xB4\x93"),
    2290             :               { 0xD849,0xDD13 },
    2291             :               2,
    2292             :               false,
    2293             :               true,
    2294             :               false,
    2295             :               false,
    2296             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2297             :             { RTL_TEXTENCODING_UTF8,
    2298             :               RTL_CONSTASCII_STRINGPARAM("\xED\xA1\x89\x41"),
    2299             :               { 0xD849,0x0041 },
    2300             :               2,
    2301             :               false,
    2302             :               true,
    2303             :               false,
    2304             :               false,
    2305             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2306             : 
    2307             :             // Test Java UTF-8:
    2308             : 
    2309             :             { RTL_TEXTENCODING_JAVA_UTF8,
    2310             :               RTL_CONSTASCII_STRINGPARAM(
    2311             :                   "\xEF\xBB\xBF\xC0\x80\x01\x20\x41\x7F\xED\xA0\x80"
    2312             :                   "\xED\xB0\x80"),
    2313             :               { 0xFEFF,0x0000,0x0001,0x0020,0x0041,0x007F,0xD800,0xDC00 },
    2314             :               8,
    2315             :               false,
    2316             :               true,
    2317             :               true,
    2318             :               true,
    2319             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2320             : 
    2321             :             // Bug #112949#:
    2322             : 
    2323             :             { RTL_TEXTENCODING_SHIFT_JIS,
    2324             :               RTL_CONSTASCII_STRINGPARAM("\x81\x63"),
    2325             :               { 0x2026 },
    2326             :               1,
    2327             :               false,
    2328             :               true,
    2329             :               true,
    2330             :               false,
    2331             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2332             :             { RTL_TEXTENCODING_SHIFT_JIS,
    2333             :               RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\xFF"),
    2334             :               { 0x00A0, 0x00A9, 0x2122, 0x2026 },
    2335             :               4,
    2336             :               false,
    2337             :               true,
    2338             :               false,
    2339             :               false,
    2340             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2341             :             { RTL_TEXTENCODING_SHIFT_JIS,
    2342             :               RTL_CONSTASCII_STRINGPARAM(""),
    2343             :               { 0x00A0, 0x00A9, 0x2122 },
    2344             :               3,
    2345             :               false,
    2346             :               false,
    2347             :               true,
    2348             :               false,
    2349             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2350             :             { RTL_TEXTENCODING_MS_932,
    2351             :               RTL_CONSTASCII_STRINGPARAM("\x81\x63"),
    2352             :               { 0x2026 },
    2353             :               1,
    2354             :               false,
    2355             :               true,
    2356             :               true,
    2357             :               false,
    2358             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2359             :             { RTL_TEXTENCODING_MS_932,
    2360             :               RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\xFF"),
    2361             :               { 0x00A0, 0x00A9, 0x2122, 0x2026 },
    2362             :               4,
    2363             :               false,
    2364             :               true,
    2365             :               false,
    2366             :               false,
    2367             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2368             :             { RTL_TEXTENCODING_MS_932,
    2369             :               RTL_CONSTASCII_STRINGPARAM(""),
    2370             :               { 0x00A0, 0x00A9, 0x2122 },
    2371             :               3,
    2372             :               false,
    2373             :               false,
    2374             :               true,
    2375             :               false,
    2376             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
    2377             :             { RTL_TEXTENCODING_APPLE_JAPANESE,
    2378             :               RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\x81\x63"),
    2379             :               { 0x00A0, 0x00A9, 0x2122, 0x2026 },
    2380             :               4,
    2381             :               false,
    2382             :               true,
    2383             :               true,
    2384             :               false,
    2385             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2386             :             { RTL_TEXTENCODING_APPLE_JAPANESE,
    2387             :               RTL_CONSTASCII_STRINGPARAM("\xFF"),
    2388             :               { 0x2026 },
    2389             :               1,
    2390             :               false,
    2391             :               true,
    2392             :               false,
    2393             :               false,
    2394             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2395             : 
    2396             :             { RTL_TEXTENCODING_ADOBE_STANDARD,
    2397             :               RTL_CONSTASCII_STRINGPARAM("\x20\x2D\xA4\xB4\xC5"),
    2398             :               { 0x0020, 0x002D, 0x2215, 0x00B7, 0x00AF },
    2399             :               5,
    2400             :               false,
    2401             :               true,
    2402             :               true,
    2403             :               false,
    2404             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2405             :             { RTL_TEXTENCODING_ADOBE_STANDARD,
    2406             :               RTL_CONSTASCII_STRINGPARAM("\x20\x2D\xA4\xB4\xC5"),
    2407             :               { 0x00A0, 0x00AD, 0x2044, 0x2219, 0x02C9 },
    2408             :               5,
    2409             :               false,
    2410             :               false,
    2411             :               true,
    2412             :               false,
    2413             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2414             : 
    2415             :             { RTL_TEXTENCODING_ADOBE_SYMBOL,
    2416             :               RTL_CONSTASCII_STRINGPARAM("\x20\x44\x57\x6D\xA4"),
    2417             :               { 0x0020, 0x0394, 0x03A9, 0x03BC, 0x2215 },
    2418             :               5,
    2419             :               false,
    2420             :               true,
    2421             :               true,
    2422             :               false,
    2423             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2424             :             { RTL_TEXTENCODING_ADOBE_SYMBOL,
    2425             :               RTL_CONSTASCII_STRINGPARAM("\x20\x44\x57\x6D\xA4"),
    2426             :               { 0x00A0, 0x2206, 0x2126, 0x00B5, 0x2044 },
    2427             :               5,
    2428             :               false,
    2429             :               false,
    2430             :               true,
    2431             :               false,
    2432             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2433             : 
    2434             :             // Bug #i62310#:
    2435             :             { RTL_TEXTENCODING_SHIFT_JIS,
    2436             :               RTL_CONSTASCII_STRINGPARAM(
    2437             :                   "\xF0\x40\xF0\x7E\xF0\x80\xF0\xFC\xF1\x40\xF9\xFC"),
    2438             :               { 0xE000, 0xE03E, 0xE03F, 0xE0BB, 0xE0BC, 0xE757 },
    2439             :               6,
    2440             :               true,
    2441             :               true,
    2442             :               true,
    2443             :               false,
    2444             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2445             : 
    2446             :             // Bug #i73103#:
    2447             :             { RTL_TEXTENCODING_MS_1258,
    2448             :               RTL_CONSTASCII_STRINGPARAM(
    2449             :                   "\xC0\x41\xDE\xE3\xD2\xD4\xEC\xFD\xF2"),
    2450             :               { 0x00C0, 0x0041, 0x0303, 0x0103, 0x0309, 0x00D4, 0x0301, 0x01B0,
    2451             :                 0x0323 },
    2452             :               9,
    2453             :               true,
    2454             :               true,
    2455             :               true,
    2456             :               false,
    2457             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2458             :             { RTL_TEXTENCODING_MS_1258,
    2459             :               RTL_CONSTASCII_STRINGPARAM(
    2460             :                   "\xC0\x41\xDE\xE3\xD2\xD4\xEC\xFD\xF2"),
    2461             :               { 0x00C0, 0x00C3, 0x1EB3, 0x1ED0, 0x1EF1 },
    2462             :               5,
    2463             :               false,
    2464             :               false,
    2465             :               true,
    2466             :               false,
    2467             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2468             :             { RTL_TEXTENCODING_ISCII_DEVANAGARI,
    2469             :               RTL_CONSTASCII_STRINGPARAM(
    2470             :                   "\xD7\xE6\x20\xD4\xCF\xE8\xD6\x20"
    2471             :                   "\xC8\xD8\xD1\xE1\x20\xB3\xCA\xDC"
    2472             :                   "\xCF\xC4\xDA\xD7\x20\xD8\xDB\xA2"
    2473             :                   "\xC4\xDE\x20\xB1\xCF\x20\xCC\xDD"
    2474             :                   "\xD7\xD1\xCC\xDA\xC6\x20\xC4\xE5"
    2475             :                   "\xC6\xE5\xA2\x20\xB3\xE1\x20\xB3"
    2476             :                   "\xBD\xE8\xBD\xCF\xC8\xC6\x20\xB3"
    2477             :                   "\xE5\x20\xC9\xBD\xB3\xDA\xCF\x20"
    2478             :                   "\xB8\xDD\xB3\xE1\x20\xC3\xE1\x20"
    2479             :                   "\xEA"),
    2480             :               { 0x0938, 0x094C, 0x0020, 0x0935, 0x0930, 0x094D, 0x0937, 0x0020,
    2481             :                 0x092A, 0x0939, 0x0932, 0x0947, 0x0020, 0x0915, 0x092C, 0x0940,
    2482             :                 0x0930, 0x0926, 0x093E, 0x0938, 0x0020, 0x0939, 0x093F, 0x0902,
    2483             :                 0x0926, 0x0942, 0x0020, 0x0914, 0x0930, 0x0020, 0x092E, 0x0941,
    2484             :                 0x0938, 0x0932, 0x092E, 0x093E, 0x0928, 0x0020, 0x0926, 0x094B,
    2485             :                 0x0928, 0x094B, 0x0902, 0x0020, 0x0915, 0x0947, 0x0020, 0x0915,
    2486             :                 0x091F, 0x094D, 0x091F, 0x0930, 0x092A, 0x0928, 0x0020, 0x0915,
    2487             :                 0x094B, 0x0020, 0x092B, 0x091F, 0x0915, 0x093E, 0x0930, 0x0020,
    2488             :                 0x091A, 0x0941, 0x0915, 0x0947, 0x0020, 0x0925, 0x0947, 0x0020,
    2489             :                 0x0964 },
    2490             :               73,
    2491             :               false,
    2492             :               true,
    2493             :               true,
    2494             :               false,
    2495             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2496             :             { RTL_TEXTENCODING_ISCII_DEVANAGARI,
    2497             :               RTL_CONSTASCII_STRINGPARAM("\xE8\xE8\xE8\xE9\xA1\xE9\xEA\xE9"),
    2498             :               { 0x094D, 0x200C, 0x094D, 0x200D, 0x0950, 0x93D },
    2499             :               6,
    2500             :               false,
    2501             :               true,
    2502             :               true,
    2503             :               false,
    2504             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }
    2505             :         };
    2506          97 :     for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
    2507          96 :         doComplexCharSetTest(data[i]);
    2508             :     }
    2509           1 : }
    2510             : 
    2511           1 : void Test::testComplexCut() {
    2512             :     static ComplexCharSetTest const data[]
    2513             :         = { { RTL_TEXTENCODING_EUC_JP,
    2514             :               RTL_CONSTASCII_STRINGPARAM("\xA1"),
    2515             :               { 0 },
    2516             :               0,
    2517             :               true,
    2518             :               true,
    2519             :               false,
    2520             :               false,
    2521             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2522             :             { RTL_TEXTENCODING_EUC_JP,
    2523             :               RTL_CONSTASCII_STRINGPARAM("\x8E"),
    2524             :               { 0 },
    2525             :               0,
    2526             :               true,
    2527             :               true,
    2528             :               false,
    2529             :               false,
    2530             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2531             :             { RTL_TEXTENCODING_EUC_JP,
    2532             :               RTL_CONSTASCII_STRINGPARAM("\x8F"),
    2533             :               { 0 },
    2534             :               0,
    2535             :               true,
    2536             :               true,
    2537             :               false,
    2538             :               false,
    2539             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2540             :             { RTL_TEXTENCODING_EUC_JP,
    2541             :               RTL_CONSTASCII_STRINGPARAM("\x8F\xA1"),
    2542             :               { 0 },
    2543             :               0,
    2544             :               true,
    2545             :               true,
    2546             :               false,
    2547             :               false,
    2548             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2549             :             { RTL_TEXTENCODING_EUC_CN,
    2550             :               RTL_CONSTASCII_STRINGPARAM("\xA1"),
    2551             :               { 0 },
    2552             :               0,
    2553             :               true,
    2554             :               true,
    2555             :               false,
    2556             :               false,
    2557             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR } /* ,
    2558             :             { RTL_TEXTENCODING_EUC_TW,
    2559             :               RTL_CONSTASCII_STRINGPARAM("\xA1"),
    2560             :               { 0 },
    2561             :               0,
    2562             :               true,
    2563             :               true,
    2564             :               false,
    2565             :               false,
    2566             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2567             :             { RTL_TEXTENCODING_EUC_TW,
    2568             :               RTL_CONSTASCII_STRINGPARAM("\x8E"),
    2569             :               { 0 },
    2570             :               0,
    2571             :               true,
    2572             :               true,
    2573             :               false,
    2574             :               false,
    2575             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2576             :             { RTL_TEXTENCODING_EUC_TW,
    2577             :               RTL_CONSTASCII_STRINGPARAM("\x8E\xA1"),
    2578             :               { 0 },
    2579             :               0,
    2580             :               true,
    2581             :               true,
    2582             :               false,
    2583             :               false,
    2584             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
    2585             :             { RTL_TEXTENCODING_EUC_TW,
    2586             :               RTL_CONSTASCII_STRINGPARAM("\x8E\xA1\xA1"),
    2587             :               { 0 },
    2588             :               0,
    2589             :               true,
    2590             :               true,
    2591             :               false,
    2592             :               false,
    2593             :               RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR } */ };
    2594           6 :     for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
    2595           5 :         doComplexCharSetCutTest(data[i]);
    2596             :     }
    2597           1 : }
    2598             : 
    2599           1 : void Test::testSRCBUFFERTOSMALL() {
    2600             :     rtl_TextToUnicodeConverter cv = rtl_createTextToUnicodeConverter(
    2601           1 :         RTL_TEXTENCODING_EUC_JP);
    2602             :     OSL_ASSERT(cv != NULL);
    2603           1 :     rtl_TextToUnicodeContext cx = rtl_createTextToUnicodeContext(cv);
    2604             :     OSL_ASSERT(cx != NULL);
    2605           1 :     char src = '\xA1';
    2606             :     sal_Unicode dst[10];
    2607             :     sal_uInt32 info;
    2608             :     sal_Size cvt;
    2609           2 :     CPPUNIT_ASSERT_EQUAL(
    2610             :         sal_Size(0),
    2611             :         rtl_convertTextToUnicode(
    2612             :             cv, cx, &src, 1, dst, sizeof dst / sizeof (sal_Unicode),
    2613             :             (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
    2614             :              RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
    2615             :              RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
    2616           1 :             &info, &cvt));
    2617           1 :     CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL, info);
    2618           1 :     CPPUNIT_ASSERT(cvt <= 1);
    2619           1 :     rtl_destroyTextToUnicodeContext(cv, cx);
    2620           1 :     rtl_destroyTextToUnicodeConverter(cv);
    2621           1 : }
    2622             : 
    2623           1 : void Test::testMime() {
    2624             :     struct Data {
    2625             :         char const * mime;
    2626             :         rtl_TextEncoding encoding;
    2627             :         bool reverse;
    2628             :     };
    2629             :     static Data const data[] = {
    2630             :         { "GBK", RTL_TEXTENCODING_GBK, false },
    2631             :         { "CP936", RTL_TEXTENCODING_GBK, false },
    2632             :         { "MS936", RTL_TEXTENCODING_GBK, false },
    2633             :         { "windows-936", RTL_TEXTENCODING_GBK, false },
    2634             : 
    2635             :         { "GB18030", RTL_TEXTENCODING_GB_18030, false },
    2636             : 
    2637             :         { "TIS-620", RTL_TEXTENCODING_TIS_620, true },
    2638             :         { "ISO-8859-11", RTL_TEXTENCODING_TIS_620, false }, // not registered
    2639             : 
    2640             :         { "CP874", RTL_TEXTENCODING_MS_874, false }, // not registered
    2641             :         { "MS874", RTL_TEXTENCODING_MS_874, false }, // not registered
    2642             :         { "windows-874", RTL_TEXTENCODING_MS_874, true }, // not registered
    2643             : 
    2644             :         { "ISO_8859-8:1988", RTL_TEXTENCODING_ISO_8859_8, false },
    2645             :         { "iso-ir-138", RTL_TEXTENCODING_ISO_8859_8, false },
    2646             :         { "ISO_8859-8", RTL_TEXTENCODING_ISO_8859_8, false },
    2647             :         { "ISO-8859-8", RTL_TEXTENCODING_ISO_8859_8, true },
    2648             :         { "hebrew", RTL_TEXTENCODING_ISO_8859_8, false },
    2649             :         { "csISOLatinHebrew", RTL_TEXTENCODING_ISO_8859_8, false },
    2650             : 
    2651             :         { "windows-1255", RTL_TEXTENCODING_MS_1255, true },
    2652             : 
    2653             :         { "IBM862", RTL_TEXTENCODING_IBM_862, true },
    2654             :         { "cp862", RTL_TEXTENCODING_IBM_862, false },
    2655             :         { "862", RTL_TEXTENCODING_IBM_862, false },
    2656             :         { "csPC862LatinHebrew", RTL_TEXTENCODING_IBM_862, false },
    2657             : 
    2658             :         { "ISO_8859-6:1987", RTL_TEXTENCODING_ISO_8859_6, false },
    2659             :         { "iso-ir-127", RTL_TEXTENCODING_ISO_8859_6, false },
    2660             :         { "ISO_8859-6", RTL_TEXTENCODING_ISO_8859_6, false },
    2661             :         { "ISO-8859-6", RTL_TEXTENCODING_ISO_8859_6, true },
    2662             :         { "ECMA-114", RTL_TEXTENCODING_ISO_8859_6, false },
    2663             :         { "ASMO-708", RTL_TEXTENCODING_ISO_8859_6, false },
    2664             :         { "arabic", RTL_TEXTENCODING_ISO_8859_6, false },
    2665             :         { "csISOLatinArabic", RTL_TEXTENCODING_ISO_8859_6, false },
    2666             : 
    2667             :         { "windows-1256", RTL_TEXTENCODING_MS_1256, true },
    2668             : 
    2669             :         { "IBM864", RTL_TEXTENCODING_IBM_864, true },
    2670             :         { "cp864", RTL_TEXTENCODING_IBM_864, false },
    2671             :         { "csIBM864", RTL_TEXTENCODING_IBM_864, false },
    2672             : 
    2673             :         { "KOI8-R", RTL_TEXTENCODING_KOI8_R, false },
    2674             :         { "csKOI8R", RTL_TEXTENCODING_KOI8_R, false },
    2675             :         { "koi8-r", RTL_TEXTENCODING_KOI8_R, true },
    2676             : 
    2677             :         { "KOI8-U", RTL_TEXTENCODING_KOI8_U, true },
    2678             : 
    2679             :         { "IBM860", RTL_TEXTENCODING_IBM_860, true },
    2680             :         { "cp860", RTL_TEXTENCODING_IBM_860, false },
    2681             :         { "860", RTL_TEXTENCODING_IBM_860, false },
    2682             :         { "csIBM860", RTL_TEXTENCODING_IBM_860, false },
    2683             : 
    2684             :         { "IBM861", RTL_TEXTENCODING_IBM_861, true },
    2685             :         { "cp861", RTL_TEXTENCODING_IBM_861, false },
    2686             :         { "861", RTL_TEXTENCODING_IBM_861, false },
    2687             :         { "cp-is", RTL_TEXTENCODING_IBM_861, false },
    2688             :         { "csIBM861", RTL_TEXTENCODING_IBM_861, false },
    2689             : 
    2690             :         { "IBM863", RTL_TEXTENCODING_IBM_863, true },
    2691             :         { "cp863", RTL_TEXTENCODING_IBM_863, false },
    2692             :         { "863", RTL_TEXTENCODING_IBM_863, false },
    2693             :         { "csIBM863", RTL_TEXTENCODING_IBM_863, false },
    2694             : 
    2695             :         { "IBM865", RTL_TEXTENCODING_IBM_865, true },
    2696             :         { "cp865", RTL_TEXTENCODING_IBM_865, false },
    2697             :         { "865", RTL_TEXTENCODING_IBM_865, false },
    2698             :         { "csIBM865", RTL_TEXTENCODING_IBM_865, false },
    2699             : 
    2700             :         { "Latin-9", RTL_TEXTENCODING_ISO_8859_15, false },
    2701             : 
    2702             :         { "KS_C_5601-1987", RTL_TEXTENCODING_MS_949, false },
    2703             :         { "iso-ir-149", RTL_TEXTENCODING_MS_949, false },
    2704             :         { "KS_C_5601-1989", RTL_TEXTENCODING_MS_949, false },
    2705             :         { "KSC_5601", RTL_TEXTENCODING_MS_949, false },
    2706             :         { "korean", RTL_TEXTENCODING_MS_949, false },
    2707             :         { "csKSC56011987", RTL_TEXTENCODING_MS_949, false },
    2708             :         { 0, RTL_TEXTENCODING_MS_949, true },
    2709             : 
    2710             :         { "Adobe-Standard-Encoding", RTL_TEXTENCODING_ADOBE_STANDARD, false },
    2711             :         { "csAdobeStandardEncoding", RTL_TEXTENCODING_ADOBE_STANDARD, false },
    2712             :         { "Adobe-Symbol-Encoding", RTL_TEXTENCODING_ADOBE_SYMBOL, false },
    2713             :         { "csHPPSMath", RTL_TEXTENCODING_ADOBE_SYMBOL, false },
    2714             : 
    2715             :         { "PTCP154", RTL_TEXTENCODING_PT154, true },
    2716             :         { "csPTCP154", RTL_TEXTENCODING_PT154, false },
    2717             :         { "PT154", RTL_TEXTENCODING_PT154, false },
    2718             :         { "CP154", RTL_TEXTENCODING_PT154, false },
    2719             :         { "Cyrillic-Asian", RTL_TEXTENCODING_PT154, false }
    2720             :     };
    2721          72 :     for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
    2722          71 :         if (data[i].mime == 0) {
    2723             :             OSL_ASSERT(data[i].reverse);
    2724           2 :             CPPUNIT_ASSERT_EQUAL(
    2725             :                 static_cast< char const * >(0),
    2726           1 :                 rtl_getMimeCharsetFromTextEncoding(data[i].encoding));
    2727             :         } else {
    2728         140 :             CPPUNIT_ASSERT_EQUAL(
    2729             :                 data[i].encoding,
    2730          70 :                 rtl_getTextEncodingFromMimeCharset(data[i].mime));
    2731          70 :             if (data[i].reverse) {
    2732          30 :                 CPPUNIT_ASSERT_EQUAL(
    2733             :                     rtl::OString(data[i].mime),
    2734             :                     rtl::OString(
    2735          15 :                         rtl_getMimeCharsetFromTextEncoding(data[i].encoding)));
    2736             :             }
    2737             :         }
    2738             :     }
    2739           1 : }
    2740             : 
    2741           1 : void Test::testWindows() {
    2742             :     struct Data {
    2743             :         sal_uInt32 codePage;
    2744             :         rtl_TextEncoding encoding;
    2745             :         bool reverse;
    2746             :     };
    2747             :     static Data const data[] = {
    2748             :         { 437, RTL_TEXTENCODING_IBM_437, true },
    2749             :         { 708, RTL_TEXTENCODING_ISO_8859_6, false },
    2750             :         { 737, RTL_TEXTENCODING_IBM_737, true },
    2751             :         { 775, RTL_TEXTENCODING_IBM_775, true },
    2752             :         { 850, RTL_TEXTENCODING_IBM_850, true },
    2753             :         { 852, RTL_TEXTENCODING_IBM_852, true },
    2754             :         { 855, RTL_TEXTENCODING_IBM_855, true },
    2755             :         { 857, RTL_TEXTENCODING_IBM_857, true },
    2756             :         { 860, RTL_TEXTENCODING_IBM_860, true },
    2757             :         { 861, RTL_TEXTENCODING_IBM_861, true },
    2758             :         { 862, RTL_TEXTENCODING_IBM_862, true },
    2759             :         { 863, RTL_TEXTENCODING_IBM_863, true },
    2760             :         { 864, RTL_TEXTENCODING_IBM_864, true },
    2761             :         { 865, RTL_TEXTENCODING_IBM_865, true },
    2762             :         { 866, RTL_TEXTENCODING_IBM_866, true },
    2763             :         { 869, RTL_TEXTENCODING_IBM_869, true },
    2764             :         { 874, RTL_TEXTENCODING_MS_874, true },
    2765             :         { 932, RTL_TEXTENCODING_MS_932, true },
    2766             :         { 936, RTL_TEXTENCODING_MS_936, true },
    2767             :         { 949, RTL_TEXTENCODING_MS_949, true },
    2768             :         { 950, RTL_TEXTENCODING_MS_950, true },
    2769             :         { 1250, RTL_TEXTENCODING_MS_1250, true },
    2770             :         { 1251, RTL_TEXTENCODING_MS_1251, true },
    2771             :         { 1252, RTL_TEXTENCODING_MS_1252, true },
    2772             :         { 1253, RTL_TEXTENCODING_MS_1253, true },
    2773             :         { 1254, RTL_TEXTENCODING_MS_1254, true },
    2774             :         { 1255, RTL_TEXTENCODING_MS_1255, true },
    2775             :         { 1256, RTL_TEXTENCODING_MS_1256, true },
    2776             :         { 1257, RTL_TEXTENCODING_MS_1257, true },
    2777             :         { 1258, RTL_TEXTENCODING_MS_1258, true },
    2778             :         { 1361, RTL_TEXTENCODING_MS_1361, true },
    2779             :         { 10000, RTL_TEXTENCODING_APPLE_ROMAN, true },
    2780             :         { 10001, RTL_TEXTENCODING_APPLE_JAPANESE, true },
    2781             :         { 10002, RTL_TEXTENCODING_APPLE_CHINTRAD, true },
    2782             :         { 10003, RTL_TEXTENCODING_APPLE_KOREAN, true },
    2783             :         { 10004, RTL_TEXTENCODING_APPLE_ARABIC, true },
    2784             :         { 10005, RTL_TEXTENCODING_APPLE_HEBREW, true },
    2785             :         { 10006, RTL_TEXTENCODING_APPLE_GREEK, true },
    2786             :         { 10007, RTL_TEXTENCODING_APPLE_CYRILLIC, true },
    2787             :         { 10008, RTL_TEXTENCODING_APPLE_CHINSIMP, true },
    2788             :         { 10010, RTL_TEXTENCODING_APPLE_ROMANIAN, true },
    2789             :         { 10017, RTL_TEXTENCODING_APPLE_UKRAINIAN, true },
    2790             :         { 10029, RTL_TEXTENCODING_APPLE_CENTEURO, true },
    2791             :         { 10079, RTL_TEXTENCODING_APPLE_ICELAND, true },
    2792             :         { 10081, RTL_TEXTENCODING_APPLE_TURKISH, true },
    2793             :         { 10082, RTL_TEXTENCODING_APPLE_CROATIAN, true },
    2794             :         { 20127, RTL_TEXTENCODING_ASCII_US, true },
    2795             :         { 20866, RTL_TEXTENCODING_KOI8_R, true },
    2796             :         { 21866, RTL_TEXTENCODING_KOI8_U, true },
    2797             :         { 28591, RTL_TEXTENCODING_ISO_8859_1, true },
    2798             :         { 28592, RTL_TEXTENCODING_ISO_8859_2, true },
    2799             :         { 28593, RTL_TEXTENCODING_ISO_8859_3, true },
    2800             :         { 28594, RTL_TEXTENCODING_ISO_8859_4, true },
    2801             :         { 28595, RTL_TEXTENCODING_ISO_8859_5, true },
    2802             :         { 28596, RTL_TEXTENCODING_ISO_8859_6, true },
    2803             :         { 28597, RTL_TEXTENCODING_ISO_8859_7, true },
    2804             :         { 28598, RTL_TEXTENCODING_ISO_8859_8, true },
    2805             :         { 28599, RTL_TEXTENCODING_ISO_8859_9, true },
    2806             :         { 28605, RTL_TEXTENCODING_ISO_8859_15, true },
    2807             :         { 50220, RTL_TEXTENCODING_ISO_2022_JP, true },
    2808             :         { 50225, RTL_TEXTENCODING_ISO_2022_KR, true },
    2809             :         { 51932, RTL_TEXTENCODING_EUC_JP, true },
    2810             :         { 51936, RTL_TEXTENCODING_EUC_CN, true },
    2811             :         { 51949, RTL_TEXTENCODING_EUC_KR, true },
    2812             :         { 65000, RTL_TEXTENCODING_UTF7, true },
    2813             :         { 65001, RTL_TEXTENCODING_UTF8, true },
    2814             :         { 1200, RTL_TEXTENCODING_DONTKNOW, false }, // UTF_16LE
    2815             :         { 1201, RTL_TEXTENCODING_DONTKNOW, false }, // UTF_16LE
    2816             :         { 0, RTL_TEXTENCODING_DONTKNOW, true },
    2817             :         { 0, RTL_TEXTENCODING_UCS4, true },
    2818             :         { 0, RTL_TEXTENCODING_UCS2, true },
    2819             :         { 57002, RTL_TEXTENCODING_ISCII_DEVANAGARI, true }
    2820             :     };
    2821          73 :     for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
    2822             :         OSL_ASSERT(data[i].codePage != 0 || data[i].reverse);
    2823          72 :         if (data[i].codePage != 0) {
    2824         138 :             CPPUNIT_ASSERT_EQUAL(
    2825             :                 data[i].encoding,
    2826          69 :                 rtl_getTextEncodingFromWindowsCodePage(data[i].codePage));
    2827             :         }
    2828          72 :         if (data[i].reverse) {
    2829         138 :             CPPUNIT_ASSERT_EQUAL(
    2830             :                 data[i].codePage,
    2831          69 :                 rtl_getWindowsCodePageFromTextEncoding(data[i].encoding));
    2832             :         }
    2833             :     }
    2834           1 : }
    2835             : 
    2836           1 : void Test::testInfo() {
    2837             :     struct Data {
    2838             :         rtl_TextEncoding encoding;
    2839             :         sal_uInt32 flag;
    2840             :         bool value;
    2841             :     };
    2842             :     static Data const data[] = {
    2843             :         { RTL_TEXTENCODING_APPLE_CHINTRAD, RTL_TEXTENCODING_INFO_ASCII, false },
    2844             :         { RTL_TEXTENCODING_APPLE_JAPANESE, RTL_TEXTENCODING_INFO_ASCII, false },
    2845             :         { RTL_TEXTENCODING_APPLE_KOREAN, RTL_TEXTENCODING_INFO_ASCII, false },
    2846             :         { RTL_TEXTENCODING_BIG5, RTL_TEXTENCODING_INFO_ASCII, false },
    2847             :         { RTL_TEXTENCODING_BIG5_HKSCS, RTL_TEXTENCODING_INFO_ASCII, false },
    2848             :         { RTL_TEXTENCODING_EUC_CN, RTL_TEXTENCODING_INFO_ASCII, true },
    2849             :         { RTL_TEXTENCODING_EUC_JP, RTL_TEXTENCODING_INFO_ASCII, true },
    2850             :         { RTL_TEXTENCODING_EUC_KR, RTL_TEXTENCODING_INFO_ASCII, true },
    2851             :         { RTL_TEXTENCODING_EUC_TW, RTL_TEXTENCODING_INFO_ASCII, true },
    2852             :         { RTL_TEXTENCODING_GBK, RTL_TEXTENCODING_INFO_ASCII, false },
    2853             :         { RTL_TEXTENCODING_GB_18030, RTL_TEXTENCODING_INFO_ASCII, false },
    2854             :         { RTL_TEXTENCODING_GB_18030, RTL_TEXTENCODING_INFO_UNICODE, true },
    2855             :         { RTL_TEXTENCODING_ISO_2022_CN, RTL_TEXTENCODING_INFO_CONTEXT, true },
    2856             :         { RTL_TEXTENCODING_ISO_2022_CN, RTL_TEXTENCODING_INFO_ASCII, false },
    2857             :         { RTL_TEXTENCODING_ISO_2022_JP, RTL_TEXTENCODING_INFO_CONTEXT, true },
    2858             :         { RTL_TEXTENCODING_ISO_2022_JP, RTL_TEXTENCODING_INFO_ASCII, false },
    2859             :         { RTL_TEXTENCODING_ISO_2022_KR, RTL_TEXTENCODING_INFO_CONTEXT, true },
    2860             :         { RTL_TEXTENCODING_ISO_2022_KR, RTL_TEXTENCODING_INFO_ASCII, false },
    2861             :         { RTL_TEXTENCODING_MS_1361, RTL_TEXTENCODING_INFO_ASCII, false },
    2862             :         { RTL_TEXTENCODING_MS_874, RTL_TEXTENCODING_INFO_ASCII, true },
    2863             :         { RTL_TEXTENCODING_MS_932, RTL_TEXTENCODING_INFO_ASCII, false },
    2864             :         { RTL_TEXTENCODING_MS_936, RTL_TEXTENCODING_INFO_ASCII, false },
    2865             :         { RTL_TEXTENCODING_MS_949, RTL_TEXTENCODING_INFO_ASCII, false },
    2866             :         { RTL_TEXTENCODING_MS_950, RTL_TEXTENCODING_INFO_ASCII, false },
    2867             :         { RTL_TEXTENCODING_SHIFT_JIS, RTL_TEXTENCODING_INFO_ASCII, false },
    2868             :         { RTL_TEXTENCODING_KOI8_R, RTL_TEXTENCODING_INFO_ASCII, true },
    2869             :         { RTL_TEXTENCODING_KOI8_R, RTL_TEXTENCODING_INFO_MIME, true },
    2870             :         { RTL_TEXTENCODING_KOI8_U, RTL_TEXTENCODING_INFO_ASCII, true },
    2871             :         { RTL_TEXTENCODING_KOI8_U, RTL_TEXTENCODING_INFO_MIME, true },
    2872             :         { RTL_TEXTENCODING_IBM_860, RTL_TEXTENCODING_INFO_MIME, true },
    2873             :         { RTL_TEXTENCODING_IBM_861, RTL_TEXTENCODING_INFO_MIME, true },
    2874             :         { RTL_TEXTENCODING_IBM_863, RTL_TEXTENCODING_INFO_MIME, true },
    2875             :         { RTL_TEXTENCODING_IBM_865, RTL_TEXTENCODING_INFO_MIME, true },
    2876             :         { RTL_TEXTENCODING_ISCII_DEVANAGARI, RTL_TEXTENCODING_INFO_ASCII, true },
    2877             :         { RTL_TEXTENCODING_ISCII_DEVANAGARI, RTL_TEXTENCODING_INFO_MIME, false },
    2878             :         { RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_ASCII, false },
    2879             :         { RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_MIME, true },
    2880             :         { RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_SYMBOL, false },
    2881             :         { RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_ASCII, false },
    2882             :         { RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_MIME, true },
    2883             :         { RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_SYMBOL, true },
    2884             :         { RTL_TEXTENCODING_PT154, RTL_TEXTENCODING_INFO_ASCII, true },
    2885             :         { RTL_TEXTENCODING_PT154, RTL_TEXTENCODING_INFO_MIME, true }
    2886             :     };
    2887          44 :     for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
    2888             :         rtl_TextEncodingInfo info;
    2889          43 :         info.StructSize = sizeof info;
    2890          43 :         CPPUNIT_ASSERT(rtl_getTextEncodingInfo(data[i].encoding, &info));
    2891          43 :         CPPUNIT_ASSERT_EQUAL(data[i].value, ((info.Flags & data[i].flag) != 0));
    2892             :     }
    2893           1 : }
    2894             : 
    2895           1 : CPPUNIT_TEST_SUITE_REGISTRATION(Test);
    2896             : 
    2897           3 : }
    2898             : 
    2899             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10