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