summaryrefslogtreecommitdiff
path: root/sal
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2022-09-12 20:33:37 +0200
committerStephan Bergmann <sbergman@redhat.com>2022-09-15 15:56:35 +0200
commitb943d28f04014a36ce51da386f0b9411b8dbfa01 (patch)
tree4c7b836bc09099b662719c503c09e5627a995fa9 /sal
parent382b82541a2e4d83197bd0b20fc5fc40bb4313e2 (diff)
tdf#150877: Add support for Kamenický and Mazovia encodings
...as referenced e.g. at <https://docs.microsoft.com/en-us/previous-versions/visualstudio/foxpro/aa975345(v=vs.71)> "Code Pages Supported by Visual FoxPro". That source lists those two encodings with "code page" values 895 and 620, resp. (which might be what we call "Windows code pages" in include/rtl/tencinfo.h) and "code page identifier" values 0x68 and 0x69, reps. (which might be what we call "Windows charsets" in include/rtl/tencinfo.h. But I deliberately left these two new RTL_TEXTENCODING_* values without any mappings to such Windows codepages etc., as I didn't find any authoritative sources. What I used is the information available at <https://en.wikipedia.org/wiki/Kamenick%C3%BD_encoding> and <https://en.wikipedia.org/wiki/Mazovia_encoding>. (And while at it, I also updated the instructions what to do "Whenever some encoding is added here" in include/rtl/textenc.h.) This commit is building on some prior, abandoned work by Julien Nabet at <https://gerrit.libreoffice.org/c/core/+/139819> "tdf#150877: DBF Mazovia encoding (0x69)". Change-Id: Iae8af4ebab8915411499ae7ef951339b335aa857 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140014 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'sal')
-rw-r--r--sal/qa/rtl/textenc/rtl_textcvt.cxx68
-rw-r--r--sal/textenc/tables.cxx7
-rw-r--r--sal/textenc/tcvtest1.tab344
-rw-r--r--sal/textenc/tencinfo.cxx2
4 files changed, 417 insertions, 4 deletions
diff --git a/sal/qa/rtl/textenc/rtl_textcvt.cxx b/sal/qa/rtl/textenc/rtl_textcvt.cxx
index 55804bd32838..a31603d90ae9 100644
--- a/sal/qa/rtl/textenc/rtl_textcvt.cxx
+++ b/sal/qa/rtl/textenc/rtl_textcvt.cxx
@@ -1286,7 +1286,73 @@ void Test::testSingleByte() {
0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
- 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F } } };
+ 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F } },
+ { RTL_TEXTENCODING_KAMENICKY,
+ { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+ 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+ 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+ 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+ 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+ 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+ 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+ 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+ 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+ 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+ 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+ 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+ 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+ 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+ 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+ 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+ 0x010C,0x00FC,0x00E9,0x010F,0x00E4,0x010E,0x0164,0x010D,
+ 0x011B,0x011A,0x0139,0x00CD,0x013E,0x013A,0x00C4,0x00C1,
+ 0x00C9,0x017E,0x017D,0x00F4,0x00F6,0x00D3,0x016F,0x00DA,
+ 0x00FD,0x00D6,0x00DC,0x0160,0x013D,0x00DD,0x0158,0x0165,
+ 0x00E1,0x00ED,0x00F3,0x00FA,0x0148,0x0147,0x016E,0x00D4,
+ 0x0161,0x0159,0x0155,0x0154,0x00BC,0x00A7,0x00AB,0x00BB,
+ 0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
+ 0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510,
+ 0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F,
+ 0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567,
+ 0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B,
+ 0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580,
+ 0x03B1,0x00DF,0x0393,0x03C0,0x03A3,0x03C3,0x00B5,0x03C4,
+ 0x03A6,0x0398,0x03A9,0x03B4,0x221E,0x03C6,0x03B5,0x2229,
+ 0x2261,0x00B1,0x2265,0x2264,0x2320,0x2321,0x00F7,0x2248,
+ 0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0 } },
+ { RTL_TEXTENCODING_MAZOVIA,
+ { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
+ 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
+ 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
+ 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
+ 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
+ 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
+ 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
+ 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
+ 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
+ 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
+ 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
+ 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
+ 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
+ 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
+ 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
+ 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
+ 0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x0105,0x00E7,
+ 0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x0107,0x00C4,0x0104,
+ 0x0118,0x0119,0x0142,0x00F4,0x00F6,0x0106,0x00FB,0x00F9,
+ 0x015A,0x00D6,0x00DC,0x00A2,0x0141,0x00A5,0x015B,0x0192,
+ 0x0179,0x017B,0x00F3,0x00D3,0x0144,0x0143,0x017A,0x017C,
+ 0x00BF,0x2310,0x00AC,0x00BD,0x00BC,0x00A1,0x00AB,0x00BB,
+ 0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
+ 0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510,
+ 0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F,
+ 0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567,
+ 0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B,
+ 0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580,
+ 0x03B1,0x00DF,0x0393,0x03C0,0x03A3,0x03C3,0x00B5,0x03C4,
+ 0x03A6,0x0398,0x03A9,0x03B4,0x221E,0x03C6,0x03B5,0x2229,
+ 0x2261,0x00B1,0x2265,0x2264,0x2320,0x2321,0x00F7,0x2248,
+ 0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0 } } };
for (std::size_t i = 0; i < SAL_N_ELEMENTS(data); ++i) {
testSingleByteCharSet(data[i]);
}
diff --git a/sal/textenc/tables.cxx b/sal/textenc/tables.cxx
index 075f1d56f902..163ffe131de4 100644
--- a/sal/textenc/tables.cxx
+++ b/sal/textenc/tables.cxx
@@ -23,6 +23,7 @@
#include <cassert>
#include <cstddef>
+#include <iterator>
#include <rtl/textenc.h>
#include <sal/types.h>
@@ -257,10 +258,12 @@ extern "C" SAL_DLLPUBLIC_EXPORT ImplTextEncodingData const *
&adobeStandardEncodingData, /* ADOBE_STANDARD */
&adobeSymbolEncodingData, /* ADOBE_SYMBOL */
&aImplPT154TextEncodingData, /* PT154 */
- &adobeDingbatsEncodingData }; /* ADOBE_DINGBATS */
+ &adobeDingbatsEncodingData, /* ADOBE_DINGBATS */
+ &kamenickyEncodingData, /* KAMENICKY */
+ &mazoviaEncodingData }; /* MAZOVIA */
static_assert(
- SAL_N_ELEMENTS(aData) == RTL_TEXTENCODING_ADOBE_DINGBATS + 1,
+ SAL_N_ELEMENTS(aData) == RTL_TEXTENCODING_MAZOVIA + 1,
"update table above if a new encoding is added");
return
diff --git a/sal/textenc/tcvtest1.tab b/sal/textenc/tcvtest1.tab
index b8661ab9c5e9..7c54f2393934 100644
--- a/sal/textenc/tcvtest1.tab
+++ b/sal/textenc/tcvtest1.tab
@@ -4578,3 +4578,347 @@ ImplTextEncodingData const aImplPT154TextEncodingData
204,
RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
/* SCRIPT_CYRILLIC */
+
+/* ======================================================================= */
+
+/* Kamenický */
+/* Czech, see <https://en.wikipedia.org/wiki/Kamenick%C3%BD_encoding> */
+/* 1-byte, 0x00-0x7F ASCII without exception */
+/* Convert-Tables: <https://en.wikipedia.org/wiki/Kamenick%C3%BD_encoding> obtained 2022-09-15 */
+
+sal_uInt16 const kamenickyToUniTab[128] = {
+/* 0 1 2 3 4 5 6 7 */
+/* 8 9 A B C D E F */
+ 0x010C, 0x00FC, 0x00E9, 0x010F, 0x00E4, 0x010E, 0x0164, 0x010D, /* 0x80 */
+ 0x011B, 0x011A, 0x0139, 0x00CD, 0x013E, 0x013A, 0x00C4, 0x00C1, /* 0x80 */
+ 0x00C9, 0x017E, 0x017D, 0x00F4, 0x00F6, 0x00D3, 0x016F, 0x00DA, /* 0x90 */
+ 0x00FD, 0x00D6, 0x00DC, 0x0160, 0x013D, 0x00DD, 0x0158, 0x0165, /* 0x90 */
+ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0148, 0x0147, 0x016E, 0x00D4, /* 0xA0 */
+ 0x0161, 0x0159, 0x0155, 0x0154, 0x00BC, 0x00A7, 0x00AB, 0x00BB, /* 0xA0 */
+ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
+ 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
+ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
+ 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
+ 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
+ 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
+ 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
+ 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
+ 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
+ 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
+};
+
+ImplUniCharTabData const kamenickyToCharTabEx[128] = {
+ { 0x00A0, 0xFF, 0 },
+ { 0x00A7, 0xAD, 0 },
+ { 0x00AB, 0xAE, 0 },
+ { 0x00B0, 0xF8, 0 },
+ { 0x00B1, 0xF1, 0 },
+ { 0x00B2, 0xFD, 0 },
+ { 0x00B5, 0xE6, 0 },
+ { 0x00B7, 0xFA, 0 },
+ { 0x00BB, 0xAF, 0 },
+ { 0x00BC, 0xAC, 0 },
+ { 0x00C1, 0x8F, 0 },
+ { 0x00C4, 0x8E, 0 },
+ { 0x00C9, 0x90, 0 },
+ { 0x00CD, 0x8B, 0 },
+ { 0x00D3, 0x95, 0 },
+ { 0x00D4, 0xA7, 0 },
+ { 0x00D6, 0x99, 0 },
+ { 0x00DA, 0x97, 0 },
+ { 0x00DC, 0x9A, 0 },
+ { 0x00DD, 0x9D, 0 },
+ { 0x00DF, 0xE1, 0 },
+ { 0x00E1, 0xA0, 0 },
+ { 0x00E4, 0x84, 0 },
+ { 0x00E9, 0x82, 0 },
+ { 0x00ED, 0xA1, 0 },
+ { 0x00F3, 0xA2, 0 },
+ { 0x00F4, 0x93, 0 },
+ { 0x00F6, 0x94, 0 },
+ { 0x00F7, 0xF6, 0 },
+ { 0x00FA, 0xA3, 0 },
+ { 0x00FC, 0x81, 0 },
+ { 0x00FD, 0x98, 0 },
+ { 0x010C, 0x80, 0 },
+ { 0x010D, 0x87, 0 },
+ { 0x010E, 0x85, 0 },
+ { 0x010F, 0x83, 0 },
+ { 0x011A, 0x89, 0 },
+ { 0x011B, 0x88, 0 },
+ { 0x0139, 0x8A, 0 },
+ { 0x013A, 0x8D, 0 },
+ { 0x013D, 0x9C, 0 },
+ { 0x013E, 0x8C, 0 },
+ { 0x0147, 0xA5, 0 },
+ { 0x0148, 0xA4, 0 },
+ { 0x0154, 0xAB, 0 },
+ { 0x0155, 0xAA, 0 },
+ { 0x0158, 0x9E, 0 },
+ { 0x0159, 0xA9, 0 },
+ { 0x0160, 0x9B, 0 },
+ { 0x0161, 0xA8, 0 },
+ { 0x0164, 0x86, 0 },
+ { 0x0165, 0x9F, 0 },
+ { 0x016E, 0xA6, 0 },
+ { 0x016F, 0x96, 0 },
+ { 0x017D, 0x92, 0 },
+ { 0x017E, 0x91, 0 },
+ { 0x0393, 0xE2, 0 },
+ { 0x0398, 0xE9, 0 },
+ { 0x03A3, 0xE4, 0 },
+ { 0x03A6, 0xE8, 0 },
+ { 0x03A9, 0xEA, 0 },
+ { 0x03B1, 0xE0, 0 },
+ { 0x03B4, 0xEB, 0 },
+ { 0x03B5, 0xEE, 0 },
+ { 0x03C0, 0xE3, 0 },
+ { 0x03C3, 0xE5, 0 },
+ { 0x03C4, 0xE7, 0 },
+ { 0x03C6, 0xED, 0 },
+ { 0x207F, 0xFC, 0 },
+ { 0x2219, 0xF9, 0 },
+ { 0x221A, 0xFB, 0 },
+ { 0x221E, 0xEC, 0 },
+ { 0x2229, 0xEF, 0 },
+ { 0x2248, 0xF7, 0 },
+ { 0x2261, 0xF0, 0 },
+ { 0x2264, 0xF3, 0 },
+ { 0x2265, 0xF2, 0 },
+ { 0x2320, 0xF4, 0 },
+ { 0x2321, 0xF5, 0 },
+ { 0x2500, 0xC4, 0 },
+ { 0x2502, 0xB3, 0 },
+ { 0x250C, 0xDA, 0 },
+ { 0x2510, 0xBF, 0 },
+ { 0x2514, 0xC0, 0 },
+ { 0x2518, 0xD9, 0 },
+ { 0x251C, 0xC3, 0 },
+ { 0x2524, 0xB4, 0 },
+ { 0x252C, 0xC2, 0 },
+ { 0x2534, 0xC1, 0 },
+ { 0x253C, 0xC5, 0 },
+ { 0x2550, 0xCD, 0 },
+ { 0x2551, 0xBA, 0 },
+ { 0x2552, 0xD5, 0 },
+ { 0x2553, 0xD6, 0 },
+ { 0x2554, 0xC9, 0 },
+ { 0x2555, 0xB8, 0 },
+ { 0x2556, 0xB7, 0 },
+ { 0x2557, 0xBB, 0 },
+ { 0x2558, 0xD4, 0 },
+ { 0x2559, 0xD3, 0 },
+ { 0x255A, 0xC8, 0 },
+ { 0x255B, 0xBE, 0 },
+ { 0x255C, 0xBD, 0 },
+ { 0x255D, 0xBC, 0 },
+ { 0x255E, 0xC6, 0 },
+ { 0x255F, 0xC7, 0 },
+ { 0x2560, 0xCC, 0 },
+ { 0x2561, 0xB5, 0 },
+ { 0x2562, 0xB6, 0 },
+ { 0x2563, 0xB9, 0 },
+ { 0x2564, 0xD1, 0 },
+ { 0x2565, 0xD2, 0 },
+ { 0x2566, 0xCB, 0 },
+ { 0x2567, 0xCF, 0 },
+ { 0x2568, 0xD0, 0 },
+ { 0x2569, 0xCA, 0 },
+ { 0x256A, 0xD8, 0 },
+ { 0x256B, 0xD7, 0 },
+ { 0x256C, 0xCE, 0 },
+ { 0x2580, 0xDF, 0 },
+ { 0x2584, 0xDC, 0 },
+ { 0x2588, 0xDB, 0 },
+ { 0x258C, 0xDD, 0 },
+ { 0x2590, 0xDE, 0 },
+ { 0x2591, 0xB0, 0 },
+ { 0x2592, 0xB1, 0 },
+ { 0x2593, 0xB2, 0 },
+ { 0x25A0, 0xFE, 0 }
+};
+
+ImplByteConvertData const kamenickyByteCvtData = {
+ kamenickyToUniTab, nullptr, nullptr, nullptr, kamenickyToCharTabEx, 0x80, 0xFF, NOTABUNI_START,
+ NOTABUNI_END, NOTABCHAR_START, NOTABCHAR_END, NOTABCHAR_START, NOTABCHAR_END,
+ std::size(kamenickyToCharTabEx)
+};
+
+ImplTextEncodingData const kamenickyEncodingData = {
+ { &kamenickyByteCvtData, sal::detail::textenc::convertCharToUnicode,
+ sal::detail::textenc::convertUnicodeToChar, nullptr, nullptr, nullptr, nullptr, nullptr,
+ nullptr },
+ nullptr, nullptr, 1, 1, 1, 0, RTL_TEXTENCODING_INFO_ASCII
+};
+
+/* ======================================================================= */
+
+/* Mazovia */
+/* Polish, see <https://en.wikipedia.org/wiki/Mazovia_encoding> */
+/* 1-byte, 0x00-0x7F ASCII without exception */
+/* Convert-Tables: <https://en.wikipedia.org/wiki/Mazovia_encoding> obtained 2022-09-15 */
+
+sal_uInt16 const mazoviaToUniTab[128] = {
+/* 0 1 2 3 4 5 6 7 */
+/* 8 9 A B C D E F */
+ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x0105, 0x00E7, /* 0x80 */
+ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0107, 0x00C4, 0x0104, /* 0x80 */
+ 0x0118, 0x0119, 0x0142, 0x00F4, 0x00F6, 0x0106, 0x00FB, 0x00F9, /* 0x90 */
+ 0x015A, 0x00D6, 0x00DC, 0x00A2, 0x0141, 0x00A5, 0x015B, 0x0192, /* 0x90 */
+ 0x0179, 0x017B, 0x00F3, 0x00D3, 0x0144, 0x0143, 0x017A, 0x017C, /* 0xA0 */
+ 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
+ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
+ 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
+ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
+ 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
+ 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
+ 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
+ 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
+ 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
+ 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
+ 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 /* 0xF0 */
+};
+
+ImplUniCharTabData const mazoviaToCharTabEx[128] = {
+ { 0x00A0, 0xFF, 0 },
+ { 0x00A1, 0xAD, 0 },
+ { 0x00A2, 0x9B, 0 },
+ { 0x00A5, 0x9D, 0 },
+ { 0x00AB, 0xAE, 0 },
+ { 0x00AC, 0xAA, 0 },
+ { 0x00B0, 0xF8, 0 },
+ { 0x00B1, 0xF1, 0 },
+ { 0x00B2, 0xFD, 0 },
+ { 0x00B5, 0xE6, 0 },
+ { 0x00B7, 0xFA, 0 },
+ { 0x00BB, 0xAF, 0 },
+ { 0x00BC, 0xAC, 0 },
+ { 0x00BD, 0xAB, 0 },
+ { 0x00BF, 0xA8, 0 },
+ { 0x00C4, 0x8E, 0 },
+ { 0x00C7, 0x80, 0 },
+ { 0x00D3, 0xA3, 0 },
+ { 0x00D6, 0x99, 0 },
+ { 0x00DC, 0x9A, 0 },
+ { 0x00DF, 0xE1, 0 },
+ { 0x00E0, 0x85, 0 },
+ { 0x00E2, 0x83, 0 },
+ { 0x00E4, 0x84, 0 },
+ { 0x00E7, 0x87, 0 },
+ { 0x00E8, 0x8A, 0 },
+ { 0x00E9, 0x82, 0 },
+ { 0x00EA, 0x88, 0 },
+ { 0x00EB, 0x89, 0 },
+ { 0x00EE, 0x8C, 0 },
+ { 0x00EF, 0x8B, 0 },
+ { 0x00F3, 0xA2, 0 },
+ { 0x00F4, 0x93, 0 },
+ { 0x00F6, 0x94, 0 },
+ { 0x00F7, 0xF6, 0 },
+ { 0x00F9, 0x97, 0 },
+ { 0x00FB, 0x96, 0 },
+ { 0x00FC, 0x81, 0 },
+ { 0x0104, 0x8F, 0 },
+ { 0x0105, 0x86, 0 },
+ { 0x0106, 0x95, 0 },
+ { 0x0107, 0x8D, 0 },
+ { 0x0118, 0x90, 0 },
+ { 0x0119, 0x91, 0 },
+ { 0x0141, 0x9C, 0 },
+ { 0x0142, 0x92, 0 },
+ { 0x0143, 0xA5, 0 },
+ { 0x0144, 0xA4, 0 },
+ { 0x015A, 0x98, 0 },
+ { 0x015B, 0x9E, 0 },
+ { 0x0179, 0xA0, 0 },
+ { 0x017A, 0xA6, 0 },
+ { 0x017B, 0xA1, 0 },
+ { 0x017C, 0xA7, 0 },
+ { 0x0192, 0x9F, 0 },
+ { 0x0393, 0xE2, 0 },
+ { 0x0398, 0xE9, 0 },
+ { 0x03A3, 0xE4, 0 },
+ { 0x03A6, 0xE8, 0 },
+ { 0x03A9, 0xEA, 0 },
+ { 0x03B1, 0xE0, 0 },
+ { 0x03B4, 0xEB, 0 },
+ { 0x03B5, 0xEE, 0 },
+ { 0x03C0, 0xE3, 0 },
+ { 0x03C3, 0xE5, 0 },
+ { 0x03C4, 0xE7, 0 },
+ { 0x03C6, 0xED, 0 },
+ { 0x207F, 0xFC, 0 },
+ { 0x2219, 0xF9, 0 },
+ { 0x221A, 0xFB, 0 },
+ { 0x221E, 0xEC, 0 },
+ { 0x2229, 0xEF, 0 },
+ { 0x2248, 0xF7, 0 },
+ { 0x2261, 0xF0, 0 },
+ { 0x2264, 0xF3, 0 },
+ { 0x2265, 0xF2, 0 },
+ { 0x2310, 0xA9, 0 },
+ { 0x2320, 0xF4, 0 },
+ { 0x2321, 0xF5, 0 },
+ { 0x2500, 0xC4, 0 },
+ { 0x2502, 0xB3, 0 },
+ { 0x250C, 0xDA, 0 },
+ { 0x2510, 0xBF, 0 },
+ { 0x2514, 0xC0, 0 },
+ { 0x2518, 0xD9, 0 },
+ { 0x251C, 0xC3, 0 },
+ { 0x2524, 0xB4, 0 },
+ { 0x252C, 0xC2, 0 },
+ { 0x2534, 0xC1, 0 },
+ { 0x253C, 0xC5, 0 },
+ { 0x2550, 0xCD, 0 },
+ { 0x2551, 0xBA, 0 },
+ { 0x2552, 0xD5, 0 },
+ { 0x2553, 0xD6, 0 },
+ { 0x2554, 0xC9, 0 },
+ { 0x2555, 0xB8, 0 },
+ { 0x2556, 0xB7, 0 },
+ { 0x2557, 0xBB, 0 },
+ { 0x2558, 0xD4, 0 },
+ { 0x2559, 0xD3, 0 },
+ { 0x255A, 0xC8, 0 },
+ { 0x255B, 0xBE, 0 },
+ { 0x255C, 0xBD, 0 },
+ { 0x255D, 0xBC, 0 },
+ { 0x255E, 0xC6, 0 },
+ { 0x255F, 0xC7, 0 },
+ { 0x2560, 0xCC, 0 },
+ { 0x2561, 0xB5, 0 },
+ { 0x2562, 0xB6, 0 },
+ { 0x2563, 0xB9, 0 },
+ { 0x2564, 0xD1, 0 },
+ { 0x2565, 0xD2, 0 },
+ { 0x2566, 0xCB, 0 },
+ { 0x2567, 0xCF, 0 },
+ { 0x2568, 0xD0, 0 },
+ { 0x2569, 0xCA, 0 },
+ { 0x256A, 0xD8, 0 },
+ { 0x256B, 0xD7, 0 },
+ { 0x256C, 0xCE, 0 },
+ { 0x2580, 0xDF, 0 },
+ { 0x2584, 0xDC, 0 },
+ { 0x2588, 0xDB, 0 },
+ { 0x258C, 0xDD, 0 },
+ { 0x2590, 0xDE, 0 },
+ { 0x2591, 0xB0, 0 },
+ { 0x2592, 0xB1, 0 },
+ { 0x2593, 0xB2, 0 },
+ { 0x25A0, 0xFE, 0 }
+};
+
+ImplByteConvertData const mazoviaByteCvtData = {
+ mazoviaToUniTab, nullptr, nullptr, nullptr, mazoviaToCharTabEx, 0x80, 0xFF, NOTABUNI_START,
+ NOTABUNI_END, NOTABCHAR_START, NOTABCHAR_END, NOTABCHAR_START, NOTABCHAR_END,
+ std::size(mazoviaToCharTabEx)
+};
+
+ImplTextEncodingData const mazoviaEncodingData = {
+ { &mazoviaByteCvtData, sal::detail::textenc::convertCharToUnicode,
+ sal::detail::textenc::convertUnicodeToChar, nullptr, nullptr, nullptr, nullptr, nullptr,
+ nullptr },
+ nullptr, nullptr, 1, 1, 1, 0, RTL_TEXTENCODING_INFO_ASCII
+};
diff --git a/sal/textenc/tencinfo.cxx b/sal/textenc/tencinfo.cxx
index 61439b489a7c..7db2753938f3 100644
--- a/sal/textenc/tencinfo.cxx
+++ b/sal/textenc/tencinfo.cxx
@@ -33,7 +33,7 @@ sal_Bool SAL_CALL rtl_isOctetTextEncoding(rtl_TextEncoding nEncoding)
return
nEncoding > RTL_TEXTENCODING_DONTKNOW
&& nEncoding != 9 // RTL_TEXTENCODING_SYSTEM
- && nEncoding <= RTL_TEXTENCODING_ADOBE_DINGBATS; // always update this!
+ && nEncoding <= RTL_TEXTENCODING_MAZOVIA; // always update this!
}
/* ======================================================================= */