connectivity/source/commontools/dbtools.cxx |    4 
 include/rtl/textenc.h                       |    5 
 sal/qa/rtl/textenc/rtl_textcvt.cxx          |   68 +++++
 sal/textenc/tables.cxx                      |    7 
 sal/textenc/tcvtest1.tab                    |  344 ++++++++++++++++++++++++++++
 sal/textenc/tencinfo.cxx                    |    2 
 6 files changed, 423 insertions(+), 7 deletions(-)

New commits:
commit b943d28f04014a36ce51da386f0b9411b8dbfa01
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Mon Sep 12 20:33:37 2022 +0200
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Thu Sep 15 15:56:35 2022 +0200

    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 <sberg...@redhat.com>

diff --git a/connectivity/source/commontools/dbtools.cxx 
b/connectivity/source/commontools/dbtools.cxx
index 93c00069b821..efe44974d892 100644
--- a/connectivity/source/commontools/dbtools.cxx
+++ b/connectivity/source/commontools/dbtools.cxx
@@ -2016,8 +2016,8 @@ namespace dbase
                 case 0x65: eEncoding = RTL_TEXTENCODING_IBM_866; break;       
// Russian MS-DOS   code page 866
                 case 0x66: eEncoding = RTL_TEXTENCODING_IBM_865; break;       
// Nordic MS-DOS    code page 865
                 case 0x67: eEncoding = RTL_TEXTENCODING_IBM_861; break;       
// Icelandic MS-DOS
-                //case 0x68: eEncoding = ; break;     // Kamenicky (Czech) 
MS-DOS
-                //case 0x69: eEncoding = ; break;     // Mazovia (Polish) 
MS-DOS
+                case 0x68: eEncoding = RTL_TEXTENCODING_KAMENICKY; break;     
// Kamenicky (Czech) MS-DOS
+                case 0x69: eEncoding = RTL_TEXTENCODING_MAZOVIA; break;       
// Mazovia (Polish) MS-DOS
                 case 0x6A: eEncoding = RTL_TEXTENCODING_IBM_737; break;       
// Greek MS-DOS (437G)
                 case 0x6B: eEncoding = RTL_TEXTENCODING_IBM_857; break;       
// Turkish MS-DOS
                 case 0x6C: eEncoding = RTL_TEXTENCODING_IBM_863; break;       
// MS-DOS, Canada
diff --git a/include/rtl/textenc.h b/include/rtl/textenc.h
index 1a675e1be665..af4a16e5c422 100644
--- a/include/rtl/textenc.h
+++ b/include/rtl/textenc.h
@@ -133,8 +133,11 @@ typedef sal_uInt16 rtl_TextEncoding;
 #define RTL_TEXTENCODING_ADOBE_SYMBOL           (RTL_TEXTENC_CAST( 92 ))
 #define RTL_TEXTENCODING_PT154                  (RTL_TEXTENC_CAST( 93 ))
 #define RTL_TEXTENCODING_ADOBE_DINGBATS         (RTL_TEXTENC_CAST( 94 ))
+#define RTL_TEXTENCODING_KAMENICKY              (RTL_TEXTENC_CAST( 95 ))
+#define RTL_TEXTENCODING_MAZOVIA                (RTL_TEXTENC_CAST( 96 ))
 /* ATTENTION!  Whenever some encoding is added here, make sure to update
- * rtl_isOctetTextEncoding in tencinfo.c.
+ * rtl_isOctetTextEncoding in sal/textenc/tencinfo.cxx and 
sal_getFullTextEncodingData in
+ * sal/textenc/tables.cxx.
  */
 
 #define RTL_TEXTENCODING_USER_START             (RTL_TEXTENC_CAST( 0x8000 ))
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!
 }
 
 /* ======================================================================= */

Reply via email to