diff -Naur libiconv-1.17/ChangeLog libiconv-1.17-mono/ChangeLog
--- libiconv-1.17/ChangeLog 2022-05-15 14:58:27.000000000 +0200
+++ libiconv-1.17-mono/ChangeLog 2022-07-04 15:28:40.776524387 +0200
@@ -1,3 +1,7 @@
+2022-07-03 Jerzy Kut
+
+ Implement platform speciffic ATARI8-EUROTEKST.
+
2022-05-15 Bruno Haible
Switch to libtool 2.4.7.
@@ -732,6 +736,11 @@
* man/iconvctl.3.html: Remove file.
* man/iconv_open_into.3.html: Remove file.
+2014-10-27 Jerzy Kut
+
+ Implement and document ATARI8-TCHEKO, CP895/CP867, ZX80, ZX81, ZX82-*, PETSCII-*.
+ Corrections of ATARI8-CAPEK.
+
2012-12-06 Bruno Haible
Change copyright holder of man pages.
@@ -917,6 +926,18 @@
GB18030.IRREVERSIBLE.TXT into the build directory.
Reported by Christian Weisgerber .
+2011-08-21 Jerzy Kut
+
+ Implement and document ATARI8-*.
+ * tools/Makefile (ALL): Add atari8_*.h.
+ (atari8_*.h): New rule.
+ * lib/atari8_*.h: New file.
+ * lib/converters.h: Include it.
+ * lib/encodings_extra.def (ATARI8-*): New encoding.
+ * README, man/iconv_open.3: Add ATARI8-*.
+ * tests/Makefile.in (check-extra-yes): Check ATARI8-*.
+ * tests/ATARI8-*.TXT: New file.
+
2011-08-07 Bruno Haible
Ensure all HTML-formatted man pages are up-to-date.
diff -Naur libiconv-1.17/configure.ac libiconv-1.17-mono/configure.ac
--- libiconv-1.17/configure.ac 2022-05-15 14:58:18.000000000 +0200
+++ libiconv-1.17-mono/configure.ac 2022-07-04 15:15:23.909631663 +0200
@@ -16,7 +16,7 @@
dnl If not, see .
AC_PREREQ([2.64])
-AC_INIT([libiconv], [1.17])
+AC_INIT([libiconv], [1.17-mono])
AC_CONFIG_SRCDIR([lib/iconv.c])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE
diff -Naur libiconv-1.17/lib/aliases_extra.h libiconv-1.17-mono/lib/aliases_extra.h
--- libiconv-1.17/lib/aliases_extra.h 2022-05-15 14:59:03.000000000 +0200
+++ libiconv-1.17-mono/lib/aliases_extra.h 2022-07-04 16:22:23.610420999 +0200
@@ -10,3 +10,33 @@
S(extra_9, "ATARIST", ei_atarist )
S(extra_10, "ATARI", ei_atarist )
S(extra_11, "RISCOS-LATIN1", ei_riscos1 )
+ S(extra_12, "ATARI8", ei_atari8_graph )
+ S(extra_13, "ATARI8-GRAPH", ei_atari8_graph )
+ S(extra_14, "ATARI8-ATASCII", ei_atari8_graph )
+ S(extra_15, "ATASCII", ei_atari8_graph )
+ S(extra_16, "ATARI8-INT", ei_atari8_int )
+ S(extra_17, "ATARI8-ATASCII2", ei_atari8_int )
+ S(extra_18, "ATASCII2", ei_atari8_int )
+ S(extra_19, "ATARI8-KAREN", ei_atari8_karen )
+ S(extra_20, "ATARI8-PL", ei_atari8_karen )
+ S(extra_21, "ATARI8-AWP", ei_atari8_awp )
+ S(extra_22, "ATARI8-XLENT", ei_atari8_xlent )
+ S(extra_23, "ATARI8-PANTHER", ei_atari8_panther )
+ S(extra_24, "ATARI8-PE", ei_atari8_pe )
+ S(extra_25, "ATARI8-EUROTEKST", ei_atari8_eurotekst )
+ S(extra_26, "ATARI8-CAPEK", ei_atari8_capek )
+ S(extra_27, "ATARI8-CZ", ei_atari8_capek )
+ S(extra_28, "ATARI8-TCHEKO", ei_atari8_tcheko )
+ S(extra_29, "ZX80", ei_zx80 )
+ S(extra_30, "ZX81", ei_zx80 )
+ S(extra_31, "ZX82", ei_zx82 )
+ S(extra_32, "ZX82-PL", ei_zx82_pl )
+ S(extra_33, "ZXSPECTRUM", ei_zx82 )
+ S(extra_34, "ZXSPECTRUM-PL", ei_zx82_pl )
+ S(extra_35, "PETSCII-UC", ei_petscii_uc )
+ S(extra_36, "PETSCII", ei_petscii_uc )
+ S(extra_37, "PETSCII-LC", ei_petscii_lc )
+ S(extra_38, "CP895", ei_cp895_cp867 )
+ S(extra_39, "CP867", ei_cp895_cp867 )
+ S(extra_40, "KAMENICKY", ei_cp895_cp867 )
+ S(extra_41, "KEYBCS2", ei_cp895_cp867 )
diff -Naur libiconv-1.17/lib/atari8_awp.h libiconv-1.17-mono/lib/atari8_awp.h
--- libiconv-1.17/lib/atari8_awp.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/atari8_awp.h 2022-07-04 16:05:57.204557479 +0200
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Atari 8-bit Polish Atari Writer + ATASCII
+ */
+
+static const unsigned short atari8_awp_2uni_1[32] = {
+ /* 0x00 */
+ 0x0179, 0x0105, 0x017a, 0x0107, 0x015a, 0x0119, 0x2571, 0x2572,
+ 0x25e2, 0x2597, 0x25e3, 0x0141, 0x0142, 0x0143, 0x0144, 0x00f3,
+ /* 0x10 */
+ 0x00d3, 0x250c, 0x0118, 0x015b, 0x25cf, 0x2584, 0x0106, 0x0104,
+ 0x017b, 0x258c, 0x017c, 0x241b, 0x2191, 0x2193, 0x2190, 0x2192,
+};
+static const unsigned short atari8_awp_2uni_2[32] = {
+ /* 0x60 */
+ 0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x25c0, 0x25b6,
+};
+static const unsigned short atari8_awp_2uni_3[16] = {
+ /* 0x90 */
+ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+ 0xfffd, 0xfffd, 0xfffd, 0x000a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+atari8_awp_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x20) {
+ *pwc = (ucs4_t) atari8_awp_2uni_1[c];
+ return 1;
+ }
+ else if (c < 0x60) {
+ *pwc = (ucs4_t) c;
+ return 1;
+ }
+ else if (c < 0x80) {
+ *pwc = (ucs4_t) atari8_awp_2uni_2[c-0x60];
+ return 1;
+ }
+ else if (c < 0x90) {
+ }
+ else if (c < 0xa0) {
+ unsigned short wc = atari8_awp_2uni_3[c-0x90];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ else {
+ }
+ return RET_ILSEQ;
+}
+
+static const unsigned char atari8_awp_page00[32] = {
+ 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
+ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
+ 0x78, 0x79, 0x7a, 0x00, 0x7c, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char atari8_awp_page00_1[40] = {
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+ 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */
+};
+static const unsigned char atari8_awp_page01[128] = {
+ 0x00, 0x00, 0x00, 0x00, 0x17, 0x01, 0x16, 0x03, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x12, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x0b, 0x0c, 0x0d, 0x0e, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+ 0x00, 0x00, 0x04, 0x13, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x02, 0x18, 0x1a, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char atari8_awp_page21[40] = {
+ 0x1e, 0x1c, 0x1f, 0x1d, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+};
+static const unsigned char atari8_awp_page25[120] = {
+ 0x00, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+ 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0xc8-0xcf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0x00, 0x08, 0x0a, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+};
+static const unsigned char atari8_awp_page26[8] = {
+ 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, /* 0x60-0x67 */
+};
+
+static int
+atari8_awp_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc == 0x000a)
+ c = 0x9b;
+ else if (wc >= 0x0020 && wc < 0x0060)
+ c = wc;
+ else if (wc >= 0x0060 && wc < 0x0080)
+ c = atari8_awp_page00[wc-0x0060];
+ else if (wc >= 0x00d0 && wc < 0x00f8)
+ c = atari8_awp_page00_1[wc-0x00d0];
+ else if (wc >= 0x0100 && wc < 0x0180)
+ c = atari8_awp_page01[wc-0x0100];
+ else if (wc >= 0x2190 && wc < 0x21b8)
+ c = atari8_awp_page21[wc-0x2190];
+ else if (wc == 0x241b)
+ c = 0x1b;
+ else if (wc == 0x250c)
+ c = 0x11;
+ else if (wc >= 0x2570 && wc < 0x25e8)
+ c = atari8_awp_page25[wc-0x2570];
+ else if (wc >= 0x2660 && wc < 0x2668)
+ c = atari8_awp_page26[wc-0x2660];
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/atari8_capek.h libiconv-1.17-mono/lib/atari8_capek.h
--- libiconv-1.17/lib/atari8_capek.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/atari8_capek.h 2022-07-04 16:05:57.212557533 +0200
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Atari 8-bit Czech Čapek ATASCII
+ */
+
+static const unsigned short atari8_capek_2uni_1[48] = {
+ /* 0x00 */
+ 0xfeff, 0x00c1, 0x002b, 0x010c, 0x010f, 0x00c9, 0x0028, 0x0024,
+ 0x002a, 0x00cd, 0x0147, 0x00d3, 0x013e, 0x011a, 0x0148, 0x00f3,
+ /* 0x10 */
+ 0x00fc, 0x0155, 0x0158, 0x0160, 0x0165, 0x00da, 0x00a7, 0x00a9,
+ 0x00f4, 0x00dd, 0x017d, 0x241b, 0x016e, 0x0164, 0x2926, 0x010e,
+ /* 0x20 */
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0029, 0x011b, 0x0161, 0x010d,
+ 0x017e, 0x00ed, 0x00e1, 0x016f, 0x002c, 0x002d, 0x002e, 0x002f,
+};
+static const unsigned short atari8_capek_2uni_2[192] = {
+ /* 0x40 */
+ 0x0159, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+ 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
+ /* 0x50 */
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ 0x0058, 0x0059, 0x005a, 0x00e9, 0x013d, 0x00fa, 0x00c4, 0x005f,
+ /* 0x60 */
+ 0x00fd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x00dc, 0x007c, 0x007d, 0x00f6, 0x00e4,
+ /* 0x80 */
+ 0xfeff, 0x00c1, 0x002b, 0x010c, 0x010f, 0x00c9, 0x0028, 0x0024,
+ 0x002a, 0x00cd, 0x0147, 0x00d3, 0x013e, 0x011a, 0x0148, 0x00f3,
+ /* 0x90 */
+ 0x00fc, 0x0155, 0x0158, 0x0160, 0x0165, 0x00da, 0x00a7, 0x00a9,
+ 0x00f4, 0x00dd, 0x017d, 0x000a, 0x016e, 0x0164, 0x2926, 0x010e,
+ /* 0xa0 */
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0029, 0x011b, 0x0161, 0x010d,
+ 0x017e, 0x00ed, 0x00e1, 0x016f, 0x002c, 0x002d, 0x002e, 0x002f,
+ /* 0xb0 */
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
+ 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
+ /* 0xc0 */
+ 0x0159, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+ 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
+ /* 0xd0 */
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ 0x0058, 0x0059, 0x005a, 0x00e9, 0x013d, 0x00fa, 0x00c4, 0x005f,
+ /* 0xe0 */
+ 0x00fd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0xf0 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x00dc, 0x007c, 0x007d, 0x00f6, 0x00e4,
+};
+
+static int
+atari8_capek_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x30)
+ *pwc = (ucs4_t) atari8_capek_2uni_1[c];
+ else if (c < 0x40)
+ *pwc = (ucs4_t) c;
+ else
+ *pwc = (ucs4_t) atari8_capek_2uni_2[c-0x40];
+ return 1;
+}
+
+static const unsigned char atari8_capek_page00[248] = {
+ 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0xa0, 0xa1, 0xa2, 0xa3, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x86, 0xa4, 0x88, 0x82, 0xac, 0xad, 0xae, 0xaf, /* 0x28-0x2f */
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x30-0x37 */
+ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x38-0x3f */
+ 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */
+ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x48-0x4f */
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x50-0x57 */
+ 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x58-0x5f */
+ 0x00, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x60-0x67 */
+ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x68-0x6f */
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x70-0x77 */
+ 0xf8, 0xf9, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0x78-0x7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, /* 0xa0-0xa7 */
+ 0x00, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x00, 0x81, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x85, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, /* 0xc8-0xcf */
+ 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x95, 0x00, 0xfb, 0x99, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0xaa, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+ 0x00, 0xdb, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, /* 0xe8-0xef */
+ 0x00, 0x00, 0x00, 0x8f, 0x98, 0x00, 0xfe, 0x00, /* 0xf0-0xf7 */
+ 0x00, 0x00, 0xdd, 0x00, 0x90, 0xe0, 0x00, 0x00, /* 0xf8-0xff */
+};
+static const unsigned char atari8_capek_page01[120] = {
+ 0x00, 0x00, 0x00, 0x00, 0x83, 0xa7, 0x9f, 0x84, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x00, 0x00, 0x8d, 0xa5, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x8c, 0x00, /* 0x38-0x3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, /* 0x40-0x47 */
+ 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, /* 0x50-0x57 */
+ 0x92, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x93, 0xa6, 0x00, 0x00, 0x9d, 0x94, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xab, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0xa8, 0x00, /* 0x78-0x7f */
+};
+
+static int
+atari8_capek_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc >= 0x0008 && wc < 0x0100)
+ c = atari8_capek_page00[wc-0x0008];
+ else if (wc >= 0x0108 && wc < 0x0180)
+ c = atari8_capek_page01[wc-0x0108];
+ else if (wc == 0x241b)
+ c = 0x1b;
+ else if (wc == 0x2926)
+ c = 0x9e;
+ else if (wc == 0xfeff)
+ c = 0x80;
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/atari8_eurotekst.h libiconv-1.17-mono/lib/atari8_eurotekst.h
--- libiconv-1.17/lib/atari8_eurotekst.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/atari8_eurotekst.h 2022-07-04 16:05:57.208557505 +0200
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Atari 8-bit Polish EuroTekst ATASCII
+ */
+
+static const unsigned short atari8_eurotekst_2uni_1[32] = {
+ /* 0x00 */
+ 0x2665, 0x0107, 0x0106, 0x0144, 0x0143, 0x00f3, 0x00d3, 0x015b,
+ 0x015a, 0x017c, 0x017b, 0x017a, 0x0179, 0x0142, 0x0141, 0x007b,
+ /* 0x10 */
+ 0x007d, 0x00ab, 0x00bb, 0x007c, 0x005f, 0x007e, 0x00a7, 0x252c,
+ 0x2534, 0x258c, 0x2514, 0x241b, 0x2191, 0x2193, 0x2190, 0x2192,
+};
+static const unsigned short atari8_eurotekst_2uni_2[32] = {
+ /* 0x60 */
+ 0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x0105, 0x0104, 0x0119, 0x0118, 0x25b6,
+};
+static const unsigned short atari8_eurotekst_2uni_3[16] = {
+ /* 0x90 */
+ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+ 0xfffd, 0xfffd, 0xfffd, 0x000a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+atari8_eurotekst_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x20) {
+ *pwc = (ucs4_t) atari8_eurotekst_2uni_1[c];
+ return 1;
+ }
+ else if (c < 0x60) {
+ *pwc = (ucs4_t) c;
+ return 1;
+ }
+ else if (c < 0x80) {
+ *pwc = (ucs4_t) atari8_eurotekst_2uni_2[c-0x60];
+ return 1;
+ }
+ else if (c < 0x90) {
+ }
+ else if (c < 0xa0) {
+ unsigned short wc = atari8_eurotekst_2uni_3[c-0x90];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ else {
+ }
+ return RET_ILSEQ;
+}
+
+static const unsigned char atari8_eurotekst_page00[152] = {
+ 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
+ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
+ 0x78, 0x79, 0x7a, 0x0f, 0x13, 0x10, 0x15, 0x00, /* 0x78-0x7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+ 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */
+};
+static const unsigned char atari8_eurotekst_page01[128] = {
+ 0x00, 0x00, 0x00, 0x00, 0x7c, 0x7b, 0x02, 0x01, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x7e, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x0e, 0x0d, 0x04, 0x03, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+ 0x00, 0x00, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x0c, 0x0b, 0x0a, 0x09, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char atari8_eurotekst_page21[8] = {
+ 0x1e, 0x1c, 0x1f, 0x1d, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char atari8_eurotekst_page25[40] = {
+ 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+};
+static const unsigned char atari8_eurotekst_page25_1[48] = {
+ 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0xb0-0xb7 */
+};
+
+static int
+atari8_eurotekst_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc == 0x000a)
+ c = 0x9b;
+ else if (wc >= 0x0020 && wc < 0x0060)
+ c = wc;
+ else if (wc >= 0x0060 && wc < 0x00f8)
+ c = atari8_eurotekst_page00[wc-0x0060];
+ else if (wc >= 0x0100 && wc < 0x0180)
+ c = atari8_eurotekst_page01[wc-0x0100];
+ else if (wc >= 0x2190 && wc < 0x2198)
+ c = atari8_eurotekst_page21[wc-0x2190];
+ else if (wc == 0x241b)
+ c = 0x1b;
+ else if (wc >= 0x2510 && wc < 0x2538)
+ c = atari8_eurotekst_page25[wc-0x2510];
+ else if (wc >= 0x2588 && wc < 0x25b8)
+ c = atari8_eurotekst_page25_1[wc-0x2588];
+ else if (wc == 0x2666)
+ c = 0x60;
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/atari8_graph.h libiconv-1.17-mono/lib/atari8_graph.h
--- libiconv-1.17/lib/atari8_graph.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/atari8_graph.h 2022-07-04 16:05:57.200557452 +0200
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Atari 8-bit Semi-graphic ATASCII
+ */
+
+static const unsigned short atari8_graph_2uni_1[32] = {
+ /* 0x00 */
+ 0x2665, 0x251c, 0x2595, 0x2518, 0x2524, 0x2510, 0x2571, 0x2572,
+ 0x25e2, 0x2597, 0x25e3, 0x259d, 0x2598, 0x2594, 0x2581, 0x2596,
+ /* 0x10 */
+ 0x2663, 0x250c, 0x2500, 0x253c, 0x25cf, 0x2584, 0x258f, 0x252c,
+ 0x2534, 0x258c, 0x2514, 0x241b, 0x2191, 0x2193, 0x2190, 0x2192,
+};
+static const unsigned short atari8_graph_2uni_2[32] = {
+ /* 0x60 */
+ 0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x25c0, 0x25b6,
+};
+static const unsigned short atari8_graph_2uni_3[16] = {
+ /* 0x90 */
+ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+ 0xfffd, 0xfffd, 0xfffd, 0x000a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+atari8_graph_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x20) {
+ *pwc = (ucs4_t) atari8_graph_2uni_1[c];
+ return 1;
+ }
+ else if (c < 0x60) {
+ *pwc = (ucs4_t) c;
+ return 1;
+ }
+ else if (c < 0x80) {
+ *pwc = (ucs4_t) atari8_graph_2uni_2[c-0x60];
+ return 1;
+ }
+ else if (c < 0x90) {
+ }
+ else if (c < 0xa0) {
+ unsigned short wc = atari8_graph_2uni_3[c-0x90];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ else {
+ }
+ return RET_ILSEQ;
+}
+
+static const unsigned char atari8_graph_page00[32] = {
+ 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
+ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
+ 0x78, 0x79, 0x7a, 0x00, 0x7c, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char atari8_graph_page21[40] = {
+ 0x1e, 0x1c, 0x1f, 0x1d, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+};
+static const unsigned char atari8_graph_page25[232] = {
+ 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0x05, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+ 0x00, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+ 0x00, 0x0e, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x16, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x0d, 0x02, 0x0f, 0x09, /* 0x90-0x97 */
+ 0x0c, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0xc8-0xcf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0x00, 0x08, 0x0a, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+};
+static const unsigned char atari8_graph_page26[8] = {
+ 0x7b, 0x00, 0x00, 0x10, 0x00, 0x00, 0x60, 0x00, /* 0x60-0x67 */
+};
+
+static int
+atari8_graph_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc == 0x000a)
+ c = 0x9b;
+ else if (wc >= 0x0020 && wc < 0x0060)
+ c = wc;
+ else if (wc >= 0x0060 && wc < 0x0080)
+ c = atari8_graph_page00[wc-0x0060];
+ else if (wc >= 0x2190 && wc < 0x21b8)
+ c = atari8_graph_page21[wc-0x2190];
+ else if (wc == 0x241b)
+ c = 0x1b;
+ else if (wc >= 0x2500 && wc < 0x25e8)
+ c = atari8_graph_page25[wc-0x2500];
+ else if (wc >= 0x2660 && wc < 0x2668)
+ c = atari8_graph_page26[wc-0x2660];
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/atari8_int.h libiconv-1.17-mono/lib/atari8_int.h
--- libiconv-1.17/lib/atari8_int.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/atari8_int.h 2022-07-04 16:05:57.200557452 +0200
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Atari 8-bit International ATASCII2
+ */
+
+static const unsigned short atari8_int_2uni_1[32] = {
+ /* 0x00 */
+ 0x00e1, 0x00f9, 0x00d1, 0x00c9, 0x00e7, 0x00f4, 0x00f2, 0x00ec,
+ 0x00a3, 0x00ef, 0x00fc, 0x00e4, 0x00d6, 0x00fa, 0x00f3, 0x00f6,
+ /* 0x10 */
+ 0x00dc, 0x00e2, 0x00fb, 0x00ee, 0x00e9, 0x00e8, 0x00f1, 0x00ea,
+ 0x00e5, 0x00e0, 0x00c5, 0x241b, 0x2191, 0x2193, 0x2190, 0x2192,
+};
+static const unsigned short atari8_int_2uni_2[32] = {
+ /* 0x60 */
+ 0x00a1, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x00c4, 0x007c, 0x21b0, 0x25c0, 0x25b6,
+};
+static const unsigned short atari8_int_2uni_3[16] = {
+ /* 0x90 */
+ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+ 0xfffd, 0xfffd, 0xfffd, 0x000a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+atari8_int_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x20) {
+ *pwc = (ucs4_t) atari8_int_2uni_1[c];
+ return 1;
+ }
+ else if (c < 0x60) {
+ *pwc = (ucs4_t) c;
+ return 1;
+ }
+ else if (c < 0x80) {
+ *pwc = (ucs4_t) atari8_int_2uni_2[c-0x60];
+ return 1;
+ }
+ else if (c < 0x90) {
+ }
+ else if (c < 0xa0) {
+ unsigned short wc = atari8_int_2uni_3[c-0x90];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ else {
+ }
+ return RET_ILSEQ;
+}
+
+static const unsigned char atari8_int_page00[160] = {
+ 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
+ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
+ 0x78, 0x79, 0x7a, 0x00, 0x7c, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x60, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x00, 0x00, 0x00, 0x00, 0x7b, 0x1a, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x19, 0x00, 0x11, 0x00, 0x0b, 0x18, 0x00, 0x04, /* 0xe0-0xe7 */
+ 0x15, 0x14, 0x17, 0x00, 0x07, 0x00, 0x13, 0x09, /* 0xe8-0xef */
+ 0x00, 0x16, 0x06, 0x0e, 0x05, 0x00, 0x0f, 0x00, /* 0xf0-0xf7 */
+ 0x00, 0x01, 0x0d, 0x12, 0x0a, 0x00, 0x00, 0x00, /* 0xf8-0xff */
+};
+static const unsigned char atari8_int_page21[40] = {
+ 0x1e, 0x1c, 0x1f, 0x1d, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+};
+static const unsigned char atari8_int_page25[24] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+};
+
+static int
+atari8_int_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc == 0x000a)
+ c = 0x9b;
+ else if (wc >= 0x0020 && wc < 0x0060)
+ c = wc;
+ else if (wc >= 0x0060 && wc < 0x0100)
+ c = atari8_int_page00[wc-0x0060];
+ else if (wc >= 0x2190 && wc < 0x21b8)
+ c = atari8_int_page21[wc-0x2190];
+ else if (wc == 0x241b)
+ c = 0x1b;
+ else if (wc >= 0x25b0 && wc < 0x25c8)
+ c = atari8_int_page25[wc-0x25b0];
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/atari8_karen.h libiconv-1.17-mono/lib/atari8_karen.h
--- libiconv-1.17/lib/atari8_karen.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/atari8_karen.h 2022-07-04 16:05:57.204557479 +0200
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Atari 8-bit Polish P.Z.Karen ATASCII
+ */
+
+static const unsigned short atari8_karen_2uni_1[32] = {
+ /* 0x00 */
+ 0x0179, 0x0105, 0x017a, 0x0107, 0x015a, 0x0119, 0xfffd, 0xfffd,
+ 0xfffd, 0xfffd, 0x00df, 0x0141, 0x0142, 0x0143, 0x0144, 0x00f3,
+ /* 0x10 */
+ 0x00d3, 0x0474, 0x0118, 0x015b, 0xfffd, 0xfffd, 0x0106, 0x0104,
+ 0x017b, 0xfffd, 0x017c, 0x241b, 0x2191, 0x2193, 0x2190, 0x2192,
+};
+static const unsigned short atari8_karen_2uni_2[32] = {
+ /* 0x60 */
+ 0x00a0, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0xfeff, 0x007c, 0x21b0, 0x25c0, 0x25b6,
+};
+static const unsigned short atari8_karen_2uni_3[16] = {
+ /* 0x90 */
+ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+ 0xfffd, 0xfffd, 0xfffd, 0x000a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+atari8_karen_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x20) {
+ unsigned short wc = atari8_karen_2uni_1[c];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ else if (c < 0x60) {
+ *pwc = (ucs4_t) c;
+ return 1;
+ }
+ else if (c < 0x80) {
+ *pwc = (ucs4_t) atari8_karen_2uni_2[c-0x60];
+ return 1;
+ }
+ else if (c < 0x90) {
+ }
+ else if (c < 0xa0) {
+ unsigned short wc = atari8_karen_2uni_3[c-0x90];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ else {
+ }
+ return RET_ILSEQ;
+}
+
+static const unsigned char atari8_karen_page00[152] = {
+ 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
+ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
+ 0x78, 0x79, 0x7a, 0x00, 0x7c, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, /* 0xd8-0xdf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+ 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */
+};
+static const unsigned char atari8_karen_page01[128] = {
+ 0x00, 0x00, 0x00, 0x00, 0x17, 0x01, 0x16, 0x03, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x12, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x0b, 0x0c, 0x0d, 0x0e, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+ 0x00, 0x00, 0x04, 0x13, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x02, 0x18, 0x1a, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char atari8_karen_page21[40] = {
+ 0x1e, 0x1c, 0x1f, 0x1d, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+};
+static const unsigned char atari8_karen_page25[24] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+};
+
+static int
+atari8_karen_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc == 0x000a)
+ c = 0x9b;
+ else if (wc >= 0x0020 && wc < 0x0060)
+ c = wc;
+ else if (wc >= 0x0060 && wc < 0x00f8)
+ c = atari8_karen_page00[wc-0x0060];
+ else if (wc >= 0x0100 && wc < 0x0180)
+ c = atari8_karen_page01[wc-0x0100];
+ else if (wc == 0x0474)
+ c = 0x11;
+ else if (wc >= 0x2190 && wc < 0x21b8)
+ c = atari8_karen_page21[wc-0x2190];
+ else if (wc == 0x241b)
+ c = 0x1b;
+ else if (wc >= 0x25b0 && wc < 0x25c8)
+ c = atari8_karen_page25[wc-0x25b0];
+ else if (wc == 0xfeff)
+ c = 0x7b;
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/atari8_panther.h libiconv-1.17-mono/lib/atari8_panther.h
--- libiconv-1.17/lib/atari8_panther.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/atari8_panther.h 2022-07-04 16:05:57.208557505 +0200
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Atari 8-bit Polish Panther ATASCII
+ */
+
+static const unsigned short atari8_panther_2uni_1[32] = {
+ /* 0x00 */
+ 0x2665, 0x0105, 0x2595, 0x0107, 0x015a, 0x0119, 0x2571, 0x2572,
+ 0x25e2, 0x2597, 0x25e3, 0x017a, 0x0142, 0x0143, 0x0144, 0x00f3,
+ /* 0x10 */
+ 0x00d3, 0x0104, 0x0118, 0x015b, 0x25cf, 0x2584, 0x0106, 0x252c,
+ 0x017b, 0x258c, 0x017c, 0x241b, 0x2191, 0x2193, 0x2190, 0x2192,
+};
+static const unsigned short atari8_panther_2uni_2[32] = {
+ /* 0x60 */
+ 0x0179, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x0141, 0x007c, 0x21b0, 0x25c0, 0x25b6,
+};
+static const unsigned short atari8_panther_2uni_3[16] = {
+ /* 0x90 */
+ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+ 0xfffd, 0xfffd, 0xfffd, 0x000a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+atari8_panther_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x20) {
+ *pwc = (ucs4_t) atari8_panther_2uni_1[c];
+ return 1;
+ }
+ else if (c < 0x60) {
+ *pwc = (ucs4_t) c;
+ return 1;
+ }
+ else if (c < 0x80) {
+ *pwc = (ucs4_t) atari8_panther_2uni_2[c-0x60];
+ return 1;
+ }
+ else if (c < 0x90) {
+ }
+ else if (c < 0xa0) {
+ unsigned short wc = atari8_panther_2uni_3[c-0x90];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ else {
+ }
+ return RET_ILSEQ;
+}
+
+static const unsigned char atari8_panther_page00[32] = {
+ 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
+ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
+ 0x78, 0x79, 0x7a, 0x00, 0x7c, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char atari8_panther_page00_1[40] = {
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+ 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */
+};
+static const unsigned char atari8_panther_page01[128] = {
+ 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x16, 0x03, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x12, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x7b, 0x0c, 0x0d, 0x0e, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+ 0x00, 0x00, 0x04, 0x13, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x60, 0x0b, 0x18, 0x1a, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char atari8_panther_page21[40] = {
+ 0x1e, 0x1c, 0x1f, 0x1d, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+};
+static const unsigned char atari8_panther_page25[120] = {
+ 0x00, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+ 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0xc8-0xcf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0x00, 0x08, 0x0a, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+};
+
+static int
+atari8_panther_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc == 0x000a)
+ c = 0x9b;
+ else if (wc >= 0x0020 && wc < 0x0060)
+ c = wc;
+ else if (wc >= 0x0060 && wc < 0x0080)
+ c = atari8_panther_page00[wc-0x0060];
+ else if (wc >= 0x00d0 && wc < 0x00f8)
+ c = atari8_panther_page00_1[wc-0x00d0];
+ else if (wc >= 0x0100 && wc < 0x0180)
+ c = atari8_panther_page01[wc-0x0100];
+ else if (wc >= 0x2190 && wc < 0x21b8)
+ c = atari8_panther_page21[wc-0x2190];
+ else if (wc == 0x241b)
+ c = 0x1b;
+ else if (wc == 0x252c)
+ c = 0x17;
+ else if (wc >= 0x2570 && wc < 0x25e8)
+ c = atari8_panther_page25[wc-0x2570];
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/atari8_pe.h libiconv-1.17-mono/lib/atari8_pe.h
--- libiconv-1.17/lib/atari8_pe.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/atari8_pe.h 2022-07-04 16:05:57.208557505 +0200
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Atari 8-bit Polish Polski Edytor ATASCII
+ */
+
+static const unsigned short atari8_pe_2uni_1[32] = {
+ /* 0x00 */
+ 0x2665, 0x0105, 0x2595, 0x0107, 0x2524, 0x0119, 0x2571, 0x2572,
+ 0x25e2, 0x2597, 0x25e3, 0x259d, 0x0142, 0x2594, 0x0144, 0x00f3,
+ /* 0x10 */
+ 0x2663, 0x250c, 0x2500, 0x015b, 0x25cf, 0x2584, 0x258f, 0x252c,
+ 0x017a, 0x258c, 0x017c, 0x241b, 0x2191, 0x2193, 0x2190, 0x2192,
+};
+static const unsigned short atari8_pe_2uni_2[32] = {
+ /* 0x60 */
+ 0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x25c0, 0x25b6,
+};
+static const unsigned short atari8_pe_2uni_3[16] = {
+ /* 0x90 */
+ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+ 0xfffd, 0xfffd, 0xfffd, 0x000a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+atari8_pe_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x20) {
+ *pwc = (ucs4_t) atari8_pe_2uni_1[c];
+ return 1;
+ }
+ else if (c < 0x60) {
+ *pwc = (ucs4_t) c;
+ return 1;
+ }
+ else if (c < 0x80) {
+ *pwc = (ucs4_t) atari8_pe_2uni_2[c-0x60];
+ return 1;
+ }
+ else if (c < 0x90) {
+ }
+ else if (c < 0xa0) {
+ unsigned short wc = atari8_pe_2uni_3[c-0x90];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ else {
+ }
+ return RET_ILSEQ;
+}
+
+static const unsigned char atari8_pe_page00[32] = {
+ 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
+ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
+ 0x78, 0x79, 0x7a, 0x00, 0x7c, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char atari8_pe_page01[128] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x00, 0x0c, 0x00, 0x0e, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+ 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x18, 0x00, 0x1a, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char atari8_pe_page21[40] = {
+ 0x1e, 0x1c, 0x1f, 0x1d, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+};
+static const unsigned char atari8_pe_page25[48] = {
+ 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+};
+static const unsigned char atari8_pe_page25_1[120] = {
+ 0x00, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+ 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x16, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x0d, 0x02, 0x00, 0x09, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0xc8-0xcf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0x00, 0x08, 0x0a, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+};
+static const unsigned char atari8_pe_page26[8] = {
+ 0x7b, 0x00, 0x00, 0x10, 0x00, 0x00, 0x60, 0x00, /* 0x60-0x67 */
+};
+
+static int
+atari8_pe_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc == 0x000a)
+ c = 0x9b;
+ else if (wc >= 0x0020 && wc < 0x0060)
+ c = wc;
+ else if (wc >= 0x0060 && wc < 0x0080)
+ c = atari8_pe_page00[wc-0x0060];
+ else if (wc == 0x00f3)
+ c = 0x0f;
+ else if (wc >= 0x0100 && wc < 0x0180)
+ c = atari8_pe_page01[wc-0x0100];
+ else if (wc >= 0x2190 && wc < 0x21b8)
+ c = atari8_pe_page21[wc-0x2190];
+ else if (wc == 0x241b)
+ c = 0x1b;
+ else if (wc >= 0x2500 && wc < 0x2530)
+ c = atari8_pe_page25[wc-0x2500];
+ else if (wc >= 0x2570 && wc < 0x25e8)
+ c = atari8_pe_page25_1[wc-0x2570];
+ else if (wc >= 0x2660 && wc < 0x2668)
+ c = atari8_pe_page26[wc-0x2660];
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/atari8_tcheko.h libiconv-1.17-mono/lib/atari8_tcheko.h
--- libiconv-1.17/lib/atari8_tcheko.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/atari8_tcheko.h 2022-07-04 16:05:57.212557533 +0200
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Atari 8-bit Czech Tcheko ATASCII
+ */
+
+static const unsigned short atari8_tcheko_2uni_1[32] = {
+ /* 0x00 */
+ 0x00b7, 0x00e1, 0x010e, 0x010d, 0xfffd, 0x011b, 0x011a, 0x00c9,
+ 0x00da, 0x00ed, 0x00fc, 0x00dc, 0x00cd, 0x0147, 0x0148, 0x00f3,
+ /* 0x10 */
+ 0x00d3, 0x00c1, 0x0159, 0x0161, 0x0165, 0x00fa, 0x010c, 0x00e9,
+ 0x017d, 0x00fd, 0x017e, 0x241b, 0x0158, 0x0160, 0x0164, 0x00dd,
+};
+static const unsigned short atari8_tcheko_2uni_2[144] = {
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2926,
+ /* 0x80 */
+ 0x00b7, 0x00e1, 0x010e, 0x010d, 0xfffd, 0x011b, 0x011a, 0x00c9,
+ 0x00da, 0x00ed, 0x00fc, 0x00dc, 0x00cd, 0x0147, 0x0148, 0x00f3,
+ /* 0x90 */
+ 0x00d3, 0x00c1, 0x0159, 0x0161, 0x0165, 0x00fa, 0x010c, 0x00e9,
+ 0x017d, 0x00fd, 0x017e, 0x000a, 0x0158, 0x0160, 0x0164, 0x00dd,
+ /* 0xa0 */
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
+ 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
+ /* 0xb0 */
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
+ 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
+ /* 0xc0 */
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+ 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
+ /* 0xd0 */
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
+ /* 0xe0 */
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0xf0 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2926,
+};
+
+static int
+atari8_tcheko_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x20) {
+ unsigned short wc = atari8_tcheko_2uni_1[c];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ else if (c < 0x70) {
+ *pwc = (ucs4_t) c;
+ return 1;
+ }
+ else {
+ unsigned short wc = atari8_tcheko_2uni_2[c-0x70];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ return RET_ILSEQ;
+}
+
+static const unsigned char atari8_tcheko_page00[248] = {
+ 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x20-0x27 */
+ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x28-0x2f */
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x30-0x37 */
+ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x38-0x3f */
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */
+ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x48-0x4f */
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x50-0x57 */
+ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x58-0x5f */
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x60-0x67 */
+ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x68-0x6f */
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x70-0x77 */
+ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0x78-0x7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x87, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, /* 0xc8-0xcf */
+ 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x88, 0x00, 0x8b, 0x9f, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+ 0x00, 0x97, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, /* 0xe8-0xef */
+ 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */
+ 0x00, 0x00, 0x95, 0x00, 0x8a, 0x99, 0x00, 0x00, /* 0xf8-0xff */
+};
+static const unsigned char atari8_tcheko_page01[120] = {
+ 0x00, 0x00, 0x00, 0x00, 0x96, 0x83, 0x82, 0x00, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x00, 0x00, 0x86, 0x85, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, /* 0x40-0x47 */
+ 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+ 0x9c, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x9d, 0x93, 0x00, 0x00, 0x9e, 0x94, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x9a, 0x00, /* 0x78-0x7f */
+};
+
+static int
+atari8_tcheko_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc >= 0x0008 && wc < 0x0100)
+ c = atari8_tcheko_page00[wc-0x0008];
+ else if (wc >= 0x0108 && wc < 0x0180)
+ c = atari8_tcheko_page01[wc-0x0108];
+ else if (wc == 0x241b)
+ c = 0x1b;
+ else if (wc == 0x2926)
+ c = 0xff;
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/atari8_xlent.h libiconv-1.17-mono/lib/atari8_xlent.h
--- libiconv-1.17/lib/atari8_xlent.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/atari8_xlent.h 2022-07-04 16:05:57.204557479 +0200
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Atari 8-bit Polish First XLEnt Word Processor ATASCII
+ */
+
+static const unsigned short atari8_xlent_2uni_1[32] = {
+ /* 0x00 */
+ 0x0179, 0x0105, 0x017a, 0x0107, 0x015a, 0x0119, 0x2571, 0x2572,
+ 0x25e2, 0x2597, 0x25e3, 0x259d, 0x0142, 0x0143, 0x0144, 0x00f3,
+ /* 0x10 */
+ 0x00d3, 0x250c, 0x0118, 0x015b, 0x25cf, 0x2584, 0x0106, 0x0104,
+ 0x017b, 0x258c, 0x017c, 0x241b, 0x2191, 0x2193, 0x2190, 0x2192,
+};
+static const unsigned short atari8_xlent_2uni_2[32] = {
+ /* 0x60 */
+ 0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x0141, 0x007c, 0x21b0, 0x25c0, 0x25b6,
+};
+static const unsigned short atari8_xlent_2uni_3[16] = {
+ /* 0x90 */
+ 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+ 0xfffd, 0xfffd, 0xfffd, 0x000a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+};
+
+static int
+atari8_xlent_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x20) {
+ *pwc = (ucs4_t) atari8_xlent_2uni_1[c];
+ return 1;
+ }
+ else if (c < 0x60) {
+ *pwc = (ucs4_t) c;
+ return 1;
+ }
+ else if (c < 0x80) {
+ *pwc = (ucs4_t) atari8_xlent_2uni_2[c-0x60];
+ return 1;
+ }
+ else if (c < 0x90) {
+ }
+ else if (c < 0xa0) {
+ unsigned short wc = atari8_xlent_2uni_3[c-0x90];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ else {
+ }
+ return RET_ILSEQ;
+}
+
+static const unsigned char atari8_xlent_page00[32] = {
+ 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
+ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
+ 0x78, 0x79, 0x7a, 0x00, 0x7c, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char atari8_xlent_page00_1[40] = {
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
+ 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */
+};
+static const unsigned char atari8_xlent_page01[128] = {
+ 0x00, 0x00, 0x00, 0x00, 0x17, 0x01, 0x16, 0x03, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x12, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x7b, 0x0c, 0x0d, 0x0e, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+ 0x00, 0x00, 0x04, 0x13, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x02, 0x18, 0x1a, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char atari8_xlent_page21[40] = {
+ 0x1e, 0x1c, 0x1f, 0x1d, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+};
+static const unsigned char atari8_xlent_page25[120] = {
+ 0x00, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+ 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0xc8-0xcf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0x00, 0x08, 0x0a, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+};
+
+static int
+atari8_xlent_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc == 0x000a)
+ c = 0x9b;
+ else if (wc >= 0x0020 && wc < 0x0060)
+ c = wc;
+ else if (wc >= 0x0060 && wc < 0x0080)
+ c = atari8_xlent_page00[wc-0x0060];
+ else if (wc >= 0x00d0 && wc < 0x00f8)
+ c = atari8_xlent_page00_1[wc-0x00d0];
+ else if (wc >= 0x0100 && wc < 0x0180)
+ c = atari8_xlent_page01[wc-0x0100];
+ else if (wc >= 0x2190 && wc < 0x21b8)
+ c = atari8_xlent_page21[wc-0x2190];
+ else if (wc == 0x241b)
+ c = 0x1b;
+ else if (wc == 0x250c)
+ c = 0x11;
+ else if (wc >= 0x2570 && wc < 0x25e8)
+ c = atari8_xlent_page25[wc-0x2570];
+ else if (wc == 0x2666)
+ c = 0x60;
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/converters.h libiconv-1.17-mono/lib/converters.h
--- libiconv-1.17/lib/converters.h 2022-01-24 00:47:43.000000000 +0100
+++ libiconv-1.17-mono/lib/converters.h 2022-07-04 14:14:53.219437756 +0200
@@ -355,5 +355,21 @@
#include "tds565.h"
#include "atarist.h"
#include "riscos1.h"
+#include "atari8_graph.h"
+#include "atari8_int.h"
+#include "atari8_karen.h"
+#include "atari8_awp.h"
+#include "atari8_xlent.h"
+#include "atari8_panther.h"
+#include "atari8_pe.h"
+#include "atari8_eurotekst.h"
+#include "atari8_capek.h"
+#include "atari8_tcheko.h"
+#include "zx80.h"
+#include "zx82.h"
+#include "zx82_pl.h"
+#include "petscii_uc.h"
+#include "petscii_lc.h"
+#include "cp895_cp867.h"
#endif
diff -Naur libiconv-1.17/lib/cp895_cp867.h libiconv-1.17-mono/lib/cp895_cp867.h
--- libiconv-1.17/lib/cp895_cp867.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/cp895_cp867.h 2022-07-04 16:05:57.220557586 +0200
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * CP895/CP867/KEYBCS2 Bratři Kameničtí
+ */
+
+static const unsigned short cp895_cp867_2uni[128] = {
+ /* 0x80 */
+ 0x010c, 0x00fc, 0x00e9, 0x010f, 0x00e4, 0x010e, 0x0164, 0x010d,
+ 0x011b, 0x011a, 0x0139, 0x00cd, 0x013e, 0x013a, 0x00c4, 0x00c1,
+ /* 0x90 */
+ 0x00c9, 0x017e, 0x017d, 0x00f4, 0x00f6, 0x00d3, 0x016f, 0x00da,
+ 0x00fd, 0x00d6, 0x00dc, 0x0160, 0x013d, 0x00dd, 0x0158, 0x0165,
+ /* 0xa0 */
+ 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0148, 0x0147, 0x016e, 0x00d4,
+ 0x0161, 0x0159, 0x0155, 0x0154, 0x00bc, 0x00a7, 0x00ab, 0x00bb,
+ /* 0xb0 */
+ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
+ 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
+ /* 0xc0 */
+ 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
+ 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
+ /* 0xd0 */
+ 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
+ 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
+ /* 0xe0 */
+ 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
+ 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
+ /* 0xf0 */
+ 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
+ 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0,
+};
+
+static int
+cp895_cp867_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x80)
+ *pwc = (ucs4_t) c;
+ else
+ *pwc = (ucs4_t) cp895_cp867_2uni[c-0x80];
+ return 1;
+}
+
+static const unsigned char cp895_cp867_page00[96] = {
+ 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0xe6, 0x00, 0xfa, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0xaf, 0xac, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x00, 0x8f, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x90, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, /* 0xc8-0xcf */
+ 0x00, 0x00, 0x00, 0x95, 0xa7, 0x00, 0x99, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x97, 0x00, 0x9a, 0x9d, 0x00, 0xe1, /* 0xd8-0xdf */
+ 0x00, 0xa0, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
+ 0x00, 0x82, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, /* 0xe8-0xef */
+ 0x00, 0x00, 0x00, 0xa2, 0x93, 0x00, 0x94, 0xf6, /* 0xf0-0xf7 */
+ 0x00, 0x00, 0xa3, 0x00, 0x81, 0x98, 0x00, 0x00, /* 0xf8-0xff */
+};
+static const unsigned char cp895_cp867_page01[120] = {
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x87, 0x85, 0x83, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x00, 0x00, 0x89, 0x88, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x8a, 0x8d, 0x00, 0x00, 0x9c, 0x8c, 0x00, /* 0x38-0x3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, /* 0x40-0x47 */
+ 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0xab, 0xaa, 0x00, 0x00, /* 0x50-0x57 */
+ 0x9e, 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x9b, 0xa8, 0x00, 0x00, 0x86, 0x9f, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x96, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x91, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char cp895_cp867_page03[56] = {
+ 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */
+};
+static const unsigned char cp895_cp867_page22[80] = {
+ 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+ 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */
+};
+static const unsigned char cp895_cp867_page23[8] = {
+ 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+};
+static const unsigned char cp895_cp867_page25[168] = {
+ 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */
+ 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */
+ 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */
+ 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+ 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+};
+
+static int
+cp895_cp867_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc < 0x0080) {
+ *r = wc;
+ return 1;
+ }
+ else if (wc >= 0x00a0 && wc < 0x0100)
+ c = cp895_cp867_page00[wc-0x00a0];
+ else if (wc >= 0x0108 && wc < 0x0180)
+ c = cp895_cp867_page01[wc-0x0108];
+ else if (wc >= 0x0390 && wc < 0x03c8)
+ c = cp895_cp867_page03[wc-0x0390];
+ else if (wc == 0x207f)
+ c = 0xfc;
+ else if (wc >= 0x2218 && wc < 0x2268)
+ c = cp895_cp867_page22[wc-0x2218];
+ else if (wc >= 0x2320 && wc < 0x2328)
+ c = cp895_cp867_page23[wc-0x2320];
+ else if (wc >= 0x2500 && wc < 0x25a8)
+ c = cp895_cp867_page25[wc-0x2500];
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/encodings_extra.def libiconv-1.17-mono/lib/encodings_extra.def
--- libiconv-1.17/lib/encodings_extra.def 2021-06-06 11:50:48.000000000 +0200
+++ libiconv-1.17-mono/lib/encodings_extra.def 2022-07-04 14:11:20.550194325 +0200
@@ -54,3 +54,93 @@
),
riscos1,
{ riscos1_mbtowc, NULL }, { riscos1_wctomb, NULL })
+
+DEFENCODING(( "ATARI8",
+ "ATARI8-GRAPH", "ATARI8-ATASCII", "ATASCII",
+ ),
+ atari8_graph,
+ { atari8_graph_mbtowc, NULL }, { atari8_graph_wctomb, NULL })
+
+DEFENCODING(( "ATARI8-INT",
+ "ATARI8-ATASCII2", "ATASCII2",
+ ),
+ atari8_int,
+ { atari8_int_mbtowc, NULL }, { atari8_int_wctomb, NULL })
+
+DEFENCODING(( "ATARI8-KAREN",
+ "ATARI8-PL",
+ ),
+ atari8_karen,
+ { atari8_karen_mbtowc, NULL }, { atari8_karen_wctomb, NULL })
+
+DEFENCODING(( "ATARI8-AWP",
+ ),
+ atari8_awp,
+ { atari8_awp_mbtowc, NULL }, { atari8_awp_wctomb, NULL })
+
+DEFENCODING(( "ATARI8-XLENT",
+ ),
+ atari8_xlent,
+ { atari8_xlent_mbtowc, NULL }, { atari8_xlent_wctomb, NULL })
+
+DEFENCODING(( "ATARI8-PANTHER",
+ ),
+ atari8_panther,
+ { atari8_panther_mbtowc, NULL }, { atari8_panther_wctomb, NULL })
+
+DEFENCODING(( "ATARI8-PE",
+ ),
+ atari8_pe,
+ { atari8_pe_mbtowc, NULL }, { atari8_pe_wctomb, NULL })
+
+DEFENCODING(( "ATARI8-EUROTEKST",
+ ),
+ atari8_eurotekst,
+ { atari8_eurotekst_mbtowc, NULL }, { atari8_eurotekst_wctomb, NULL })
+
+DEFENCODING(( "ATARI8-CAPEK",
+ "ATARI8-CZ",
+ ),
+ atari8_capek,
+ { atari8_capek_mbtowc, NULL }, { atari8_capek_wctomb, NULL })
+
+DEFENCODING(( "ATARI8-TCHEKO",
+ ),
+ atari8_tcheko,
+ { atari8_tcheko_mbtowc, NULL }, { atari8_tcheko_wctomb, NULL })
+
+DEFENCODING(( "ZX80",
+ "ZX81",
+ ),
+ zx80,
+ { zx80_mbtowc, NULL }, { zx80_wctomb, NULL })
+
+DEFENCODING(( "ZX82",
+ "ZXSPECTRUM",
+ ),
+ zx82,
+ { zx82_mbtowc, NULL }, { zx82_wctomb, NULL })
+
+DEFENCODING(( "ZX82-PL",
+ "ZXSPECTRUM-PL",
+ ),
+ zx82_pl,
+ { zx82_pl_mbtowc, NULL }, { zx82_pl_wctomb, NULL })
+
+DEFENCODING(( "PETSCII-UC",
+ "PETSCII",
+ ),
+ petscii_uc,
+ { petscii_uc_mbtowc, NULL }, { petscii_uc_wctomb, NULL })
+
+DEFENCODING(( "PETSCII-LC",
+ ),
+ petscii_lc,
+ { petscii_lc_mbtowc, NULL }, { petscii_lc_wctomb, NULL })
+
+DEFENCODING(( "CP895",
+ "CP867", "KAMENICKY", "KEYBCS2"
+ ),
+ cp895_cp867,
+ { cp895_cp867_mbtowc, NULL }, { cp895_cp867_wctomb, NULL })
+
diff -Naur libiconv-1.17/lib/flags.h libiconv-1.17-mono/lib/flags.h
--- libiconv-1.17/lib/flags.h 2022-05-15 14:59:06.000000000 +0200
+++ libiconv-1.17-mono/lib/flags.h 2022-07-04 16:25:45.383536107 +0200
@@ -209,3 +209,19 @@
#define ei_tds565_oflags (0)
#define ei_atarist_oflags (HAVE_ACCENTS)
#define ei_riscos1_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
+#define ei_atari8_graph_oflags (HAVE_ACCENTS)
+#define ei_atari8_int_oflags (HAVE_ACCENTS)
+#define ei_atari8_karen_oflags (HAVE_ACCENTS)
+#define ei_atari8_awp_oflags (HAVE_ACCENTS)
+#define ei_atari8_xlent_oflags (HAVE_ACCENTS)
+#define ei_atari8_panther_oflags (HAVE_ACCENTS)
+#define ei_atari8_pe_oflags (HAVE_ACCENTS)
+#define ei_atari8_eurotekst_oflags (HAVE_ACCENTS)
+#define ei_atari8_capek_oflags (HAVE_ACCENTS)
+#define ei_atari8_tcheko_oflags (HAVE_ACCENTS)
+#define ei_zx80_oflags (HAVE_ACCENTS)
+#define ei_zx82_oflags (HAVE_ACCENTS)
+#define ei_zx82_pl_oflags (HAVE_ACCENTS)
+#define ei_petscii_uc_oflags (HAVE_ACCENTS)
+#define ei_petscii_lc_oflags (HAVE_ACCENTS)
+#define ei_cp895_cp867_oflags (HAVE_ACCENTS)
diff -Naur libiconv-1.17/lib/Makefile.in libiconv-1.17-mono/lib/Makefile.in
--- libiconv-1.17/lib/Makefile.in 2022-02-12 14:13:33.000000000 +0100
+++ libiconv-1.17-mono/lib/Makefile.in 2022-07-04 16:16:10.184311836 +0200
@@ -389,6 +389,22 @@
big5_2003.h \
tds565.h \
atarist.h \
+ atari8_awp.h \
+ atari8_capek.h \
+ atari8_eurotekst.h \
+ atari8_graph.h \
+ atari8_int.h \
+ atari8_karen.h \
+ atari8_panther.h \
+ atari8_pe.h \
+ atari8_tcheko.h \
+ atari8_xlent.h \
+ cp895_cp867.h \
+ petscii_lc.h \
+ petscii_uc.h \
+ zx80.h \
+ zx82.h \
+ zx82_pl.h \
riscos1.h \
flushwc.h \
cjk_variants.h \
diff -Naur libiconv-1.17/lib/petscii_lc.h libiconv-1.17-mono/lib/petscii_lc.h
--- libiconv-1.17/lib/petscii_lc.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/petscii_lc.h 2022-07-04 16:05:57.220557586 +0200
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Commodore Lowercase PETSCII
+ */
+
+static const unsigned short petscii_lc_2uni_1[32] = {
+ /* 0x00 */
+ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0xf100, 0x0006, 0x0007,
+ 0xf118, 0xf119, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
+ /* 0x10 */
+ 0x0010, 0xf11c, 0xf11a, 0xf120, 0x007f, 0x0015, 0x0016, 0x0017,
+ 0x0018, 0x0019, 0x001a, 0x001b, 0xf101, 0xf11d, 0xf102, 0xf103,
+};
+static const unsigned short petscii_lc_2uni_2[192] = {
+ /* 0x40 */
+ 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x50 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x005b, 0x00a3, 0x005d, 0x2191, 0x2190,
+ /* 0x60 */
+ 0x2501, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+ 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
+ /* 0x70 */
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ 0x0058, 0x0059, 0x005a, 0x253c, 0xf12e, 0x2502, 0x2592, 0xf139,
+ /* 0x80 */
+ 0x0080, 0xf104, 0x0082, 0x0083, 0x0084, 0xf110, 0xf112, 0xf114,
+ 0xf116, 0xf111, 0xf113, 0xf115, 0xf117, 0x000a, 0x000f, 0x008f,
+ /* 0x90 */
+ 0xf105, 0xf11e, 0xf11b, 0x000c, 0xf121, 0xf106, 0xf107, 0xf108,
+ 0xf109, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf11d, 0xf10e, 0xf10f,
+ /* 0xa0 */
+ 0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
+ 0xf12f, 0xf13a, 0xf130, 0x251c, 0xf134, 0x2514, 0x2510, 0x2582,
+ /* 0xb0 */
+ 0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d, 0xf131, 0xf132,
+ 0xf133, 0x2583, 0x2713, 0xf135, 0xf136, 0x2518, 0xf137, 0xf138,
+ /* 0xc0 */
+ 0x2501, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+ 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
+ /* 0xd0 */
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ 0x0058, 0x0059, 0x005a, 0x253c, 0xf12e, 0x2502, 0x2592, 0xf139,
+ /* 0xe0 */
+ 0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
+ 0xf12f, 0xf13a, 0xf130, 0x251c, 0xf134, 0x2514, 0x2510, 0x2582,
+ /* 0xf0 */
+ 0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d, 0xf131, 0xf132,
+ 0xf133, 0x2583, 0x2713, 0xf135, 0xf136, 0x2518, 0xf137, 0x2592,
+};
+
+static int
+petscii_lc_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x20)
+ *pwc = (ucs4_t) petscii_lc_2uni_1[c];
+ else if (c < 0x40)
+ *pwc = (ucs4_t) c;
+ else
+ *pwc = (ucs4_t) petscii_lc_2uni_2[c-0x40];
+ return 1;
+}
+
+static const unsigned char petscii_lc_page00[168] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x06, 0x07, /* 0x00-0x07 */
+ 0x00, 0x00, 0x8d, 0x0b, 0x93, 0x0d, 0x0e, 0x8e, /* 0x08-0x0f */
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x15, 0x16, 0x17, /* 0x10-0x17 */
+ 0x18, 0x19, 0x1a, 0x1b, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20-0x27 */
+ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, /* 0x28-0x2f */
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30-0x37 */
+ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, /* 0x38-0x3f */
+ 0x40, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */
+ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x48-0x4f */
+ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x50-0x57 */
+ 0xd8, 0xd9, 0xda, 0x5b, 0x00, 0x5d, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x60-0x67 */
+ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, /* 0x68-0x6f */
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x70-0x77 */
+ 0x58, 0x59, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x78-0x7f */
+ 0x80, 0x00, 0x82, 0x83, 0x84, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0xe0, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+};
+static const unsigned char petscii_lc_page21[8] = {
+ 0x5f, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char petscii_lc_page25[64] = {
+ 0x00, 0xc0, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0xee, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0xfd, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+static const unsigned char petscii_lc_page25_1[24] = {
+ 0x00, 0xe4, 0xef, 0xf9, 0xe2, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0xe1, 0xf5, 0xf4, 0xe5, /* 0x88-0x8f */
+ 0x00, 0x00, 0xff, 0x00, 0xe3, 0xe7, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char petscii_lc_pagef1[64] = {
+ 0x05, 0x1c, 0x1e, 0x1f, 0x81, 0x90, 0x95, 0x96, /* 0x00-0x07 */
+ 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9e, 0x9f, /* 0x08-0x0f */
+ 0x85, 0x89, 0x86, 0x8a, 0x87, 0x8b, 0x88, 0x8c, /* 0x10-0x17 */
+ 0x08, 0x09, 0x12, 0x92, 0x11, 0x9d, 0x91, 0x00, /* 0x18-0x1f */
+ 0x13, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0xe8, /* 0x28-0x2f */
+ 0xea, 0xf6, 0xf7, 0xf8, 0xec, 0xfb, 0xfc, 0xfe, /* 0x30-0x37 */
+ 0xbf, 0xdf, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+petscii_lc_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc < 0x00a8)
+ c = petscii_lc_page00[wc];
+ else if (wc >= 0x2190 && wc < 0x2198)
+ c = petscii_lc_page21[wc-0x2190];
+ else if (wc >= 0x2500 && wc < 0x2540)
+ c = petscii_lc_page25[wc-0x2500];
+ else if (wc >= 0x2580 && wc < 0x2598)
+ c = petscii_lc_page25_1[wc-0x2580];
+ else if (wc == 0x2713)
+ c = 0xfa;
+ else if (wc >= 0xf100 && wc < 0xf140)
+ c = petscii_lc_pagef1[wc-0xf100];
+ if (c != 0 || wc == 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/petscii_uc.h libiconv-1.17-mono/lib/petscii_uc.h
--- libiconv-1.17/lib/petscii_uc.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/petscii_uc.h 2022-07-04 16:05:57.216557559 +0200
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Commodore Uppercase PETSCII
+ */
+
+static const unsigned short petscii_uc_2uni_1[32] = {
+ /* 0x00 */
+ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0xf100, 0x0006, 0x0007,
+ 0xf118, 0xf119, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
+ /* 0x10 */
+ 0x0010, 0xf11c, 0xf11a, 0xf120, 0x007f, 0x0015, 0x0016, 0x0017,
+ 0x0018, 0x0019, 0x001a, 0x001b, 0xf101, 0xf11d, 0xf102, 0xf103,
+};
+static const unsigned short petscii_uc_2uni_2[176] = {
+ /* 0x50 */
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ 0x0058, 0x0059, 0x005a, 0x005b, 0x00a3, 0x005d, 0x2191, 0x2190,
+ /* 0x60 */
+ 0x2501, 0x2660, 0x2502, 0x2501, 0xf122, 0xf123, 0xf124, 0xf126,
+ 0xf128, 0x256e, 0x2570, 0x256f, 0xf12a, 0x2572, 0x2571, 0xf12b,
+ /* 0x70 */
+ 0xf12c, 0x25cf, 0xf125, 0x2665, 0xf127, 0x256d, 0x2573, 0x25cb,
+ 0x2663, 0xf129, 0x2666, 0x253c, 0xf12e, 0x2502, 0x03c0, 0x25e5,
+ /* 0x80 */
+ 0x0080, 0xf104, 0x0082, 0x0083, 0x0084, 0xf110, 0xf112, 0xf114,
+ 0xf116, 0xf111, 0xf113, 0xf115, 0xf117, 0x000a, 0x000f, 0x008f,
+ /* 0x90 */
+ 0xf105, 0xf11e, 0xf11b, 0x000c, 0xf121, 0xf106, 0xf107, 0xf108,
+ 0xf109, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf11d, 0xf10e, 0xf10f,
+ /* 0xa0 */
+ 0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
+ 0xf12f, 0x25e4, 0xf130, 0x251c, 0xf134, 0x2514, 0x2510, 0x2582,
+ /* 0xb0 */
+ 0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d, 0xf131, 0xf132,
+ 0xf133, 0x2583, 0xf12d, 0xf135, 0xf136, 0x2518, 0xf137, 0xf138,
+ /* 0xc0 */
+ 0x2501, 0x2660, 0x2502, 0x2501, 0xf122, 0xf123, 0xf124, 0xf126,
+ 0xf128, 0x256e, 0x2570, 0x256f, 0xf12a, 0x2572, 0x2571, 0xf12b,
+ /* 0xd0 */
+ 0xf12c, 0x25cf, 0xf125, 0x2665, 0xf127, 0x256d, 0x2573, 0x25cb,
+ 0x2663, 0xf129, 0x2666, 0x253c, 0xf12e, 0x2502, 0x03c0, 0x25e5,
+ /* 0xe0 */
+ 0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
+ 0xf12f, 0x25e4, 0xf130, 0x251c, 0xf134, 0x2514, 0x2510, 0x2582,
+ /* 0xf0 */
+ 0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d, 0xf131, 0xf132,
+ 0xf133, 0x2583, 0xf12d, 0xf135, 0xf136, 0x2518, 0xf137, 0x03c0,
+};
+
+static int
+petscii_uc_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x20)
+ *pwc = (ucs4_t) petscii_uc_2uni_1[c];
+ else if (c < 0x50)
+ *pwc = (ucs4_t) c;
+ else
+ *pwc = (ucs4_t) petscii_uc_2uni_2[c-0x50];
+ return 1;
+}
+
+static const unsigned char petscii_uc_page00[168] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x06, 0x07, /* 0x00-0x07 */
+ 0x00, 0x00, 0x8d, 0x0b, 0x93, 0x0d, 0x0e, 0x8e, /* 0x08-0x0f */
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x15, 0x16, 0x17, /* 0x10-0x17 */
+ 0x18, 0x19, 0x1a, 0x1b, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20-0x27 */
+ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, /* 0x28-0x2f */
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30-0x37 */
+ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, /* 0x38-0x3f */
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x40-0x47 */
+ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, /* 0x48-0x4f */
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x50-0x57 */
+ 0x58, 0x59, 0x5a, 0x5b, 0x00, 0x5d, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x78-0x7f */
+ 0x80, 0x00, 0x82, 0x83, 0x84, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, /* 0x88-0x8f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0xe0, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+};
+static const unsigned char petscii_uc_page21[8] = {
+ 0x5f, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
+};
+static const unsigned char petscii_uc_page25[232] = {
+ 0x00, 0xc3, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0xee, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0xfd, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0xc9, 0xcb, /* 0x68-0x6f */
+ 0xca, 0xce, 0xcd, 0xd6, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+ 0x00, 0xe4, 0xef, 0xf9, 0xe2, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0xe1, 0xf5, 0xf4, 0xe5, /* 0x88-0x8f */
+ 0x00, 0x00, 0xe6, 0x00, 0xe3, 0xe7, 0x00, 0x00, /* 0x90-0x97 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
+ 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0xd1, /* 0xc8-0xcf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
+ 0x00, 0x00, 0x00, 0x00, 0xe9, 0xdf, 0x00, 0x00, /* 0xe0-0xe7 */
+};
+static const unsigned char petscii_uc_page26[8] = {
+ 0xc1, 0x00, 0x00, 0xd8, 0x00, 0xd3, 0xda, 0x00, /* 0x60-0x67 */
+};
+static const unsigned char petscii_uc_pagef1[64] = {
+ 0x05, 0x1c, 0x1e, 0x1f, 0x81, 0x90, 0x95, 0x96, /* 0x00-0x07 */
+ 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9e, 0x9f, /* 0x08-0x0f */
+ 0x85, 0x89, 0x86, 0x8a, 0x87, 0x8b, 0x88, 0x8c, /* 0x10-0x17 */
+ 0x08, 0x09, 0x12, 0x92, 0x11, 0x9d, 0x91, 0x00, /* 0x18-0x1f */
+ 0x13, 0x94, 0xc4, 0xc5, 0xc6, 0xd2, 0xc7, 0xd4, /* 0x20-0x27 */
+ 0xc8, 0xd9, 0xcc, 0xcf, 0xd0, 0xfa, 0xdc, 0xe8, /* 0x28-0x2f */
+ 0xea, 0xf6, 0xf7, 0xf8, 0xec, 0xfb, 0xfc, 0xfe, /* 0x30-0x37 */
+ 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+};
+
+static int
+petscii_uc_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc < 0x00a8)
+ c = petscii_uc_page00[wc];
+ else if (wc == 0x03c0)
+ c = 0xff;
+ else if (wc >= 0x2190 && wc < 0x2198)
+ c = petscii_uc_page21[wc-0x2190];
+ else if (wc >= 0x2500 && wc < 0x25e8)
+ c = petscii_uc_page25[wc-0x2500];
+ else if (wc >= 0x2660 && wc < 0x2668)
+ c = petscii_uc_page26[wc-0x2660];
+ else if (wc >= 0xf100 && wc < 0xf140)
+ c = petscii_uc_pagef1[wc-0xf100];
+ if (c != 0 || wc == 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/zx80.h libiconv-1.17-mono/lib/zx80.h
--- libiconv-1.17/lib/zx80.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/zx80.h 2022-07-04 16:05:57.212557533 +0200
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Sinclair ZX-80 ASCII
+ */
+
+static const unsigned short zx80_2uni_1[64] = {
+ /* 0x00 */
+ 0x0020, 0x2598, 0x259d, 0x2580, 0x2596, 0x258c, 0x259e, 0x259b,
+ 0x2592, 0x2584, 0x2580, 0x0022, 0x00a3, 0x0024, 0x003a, 0x003f,
+ /* 0x10 */
+ 0x0028, 0x0029, 0x003c, 0x003e, 0x003d, 0x002b, 0x002d, 0x002a,
+ 0x002f, 0x003b, 0x002c, 0x002e, 0x0030, 0x0031, 0x0032, 0x0033,
+ /* 0x20 */
+ 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0041, 0x0042,
+ 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a,
+ /* 0x30 */
+ 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052,
+ 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a,
+};
+static const unsigned short zx80_2uni_2[64] = {
+ /* 0x80 */
+ 0x2588, 0x259f, 0x2599, 0x2584, 0x259c, 0x2590, 0x259a, 0x2597,
+ 0x2592, 0x2584, 0x2580, 0x0022, 0x00a3, 0x0024, 0x003a, 0x003f,
+ /* 0x90 */
+ 0x0028, 0x0029, 0x003c, 0x003e, 0x003d, 0x002b, 0x002d, 0x002a,
+ 0x002f, 0x003b, 0x002c, 0x002e, 0x0030, 0x0031, 0x0032, 0x0033,
+ /* 0xa0 */
+ 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0041, 0x0042,
+ 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a,
+ /* 0xb0 */
+ 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052,
+ 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a,
+};
+
+static int
+zx80_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x40)
+ *pwc = (ucs4_t) zx80_2uni_1[c];
+ else if (c < 0x80)
+ *pwc = (ucs4_t) c;
+ else if (c < 0xc0)
+ *pwc = (ucs4_t) zx80_2uni_2[c-0x80];
+ else
+ *pwc = (ucs4_t) c;
+ return 1;
+}
+
+static const unsigned char zx80_page00[64] = {
+ 0x00, 0x00, 0x8b, 0x00, 0x8d, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x90, 0x91, 0x97, 0x95, 0x9a, 0x96, 0x9b, 0x98, /* 0x28-0x2f */
+ 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, /* 0x30-0x37 */
+ 0xa4, 0xa5, 0x8e, 0x99, 0x92, 0x94, 0x93, 0x8f, /* 0x38-0x3f */
+ 0x40, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, /* 0x40-0x47 */
+ 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, /* 0x48-0x4f */
+ 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, /* 0x50-0x57 */
+ 0xbd, 0xbe, 0xbf, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, /* 0x58-0x5f */
+};
+static const unsigned char zx80_page25[32] = {
+ 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x80, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x85, 0x00, 0x88, 0x00, 0x00, 0x00, 0x04, 0x87, /* 0x90-0x97 */
+ 0x01, 0x82, 0x86, 0x07, 0x84, 0x02, 0x06, 0x81, /* 0x98-0x9f */
+};
+
+static int
+zx80_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc >= 0x0020 && wc < 0x0060)
+ c = zx80_page00[wc-0x0020];
+ else if (wc >= 0x0060 && wc < 0x0080)
+ c = wc;
+ else if (wc == 0x00a3)
+ c = 0x8c;
+ else if (wc >= 0x00c0 && wc < 0x0100)
+ c = wc;
+ else if (wc >= 0x2580 && wc < 0x25a0)
+ c = zx80_page25[wc-0x2580];
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/zx82.h libiconv-1.17-mono/lib/zx82.h
--- libiconv-1.17/lib/zx82.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/zx82.h 2022-07-04 16:05:57.216557559 +0200
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Sinclair ZX Spectrum Standard ASCII
+ */
+
+static const unsigned short zx82_2uni[64] = {
+ /* 0x50 */
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x2191, 0x005f,
+ /* 0x60 */
+ 0x00a3, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x00a9,
+ /* 0x80 */
+ 0x00a0, 0x259d, 0x2598, 0x2580, 0x2597, 0x2590, 0x259a, 0x259c,
+ 0x2596, 0x259e, 0x258c, 0x259b, 0x2584, 0x259f, 0x2599, 0x2588,
+};
+
+static int
+zx82_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x50)
+ *pwc = (ucs4_t) c;
+ else if (c < 0x90)
+ *pwc = (ucs4_t) zx82_2uni[c-0x50];
+ else
+ *pwc = (ucs4_t) c;
+ return 1;
+}
+
+static const unsigned char zx82_page00[40] = {
+ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x00, 0x5f, /* 0x58-0x5f */
+ 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
+ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
+ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00, /* 0x78-0x7f */
+};
+static const unsigned char zx82_page25[32] = {
+ 0x83, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x8f, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x84, /* 0x90-0x97 */
+ 0x82, 0x8e, 0x86, 0x8b, 0x87, 0x81, 0x89, 0x8d, /* 0x98-0x9f */
+};
+
+static int
+zx82_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc < 0x0058) {
+ *r = wc;
+ return 1;
+ }
+ else if (wc >= 0x0058 && wc < 0x0080)
+ c = zx82_page00[wc-0x0058];
+ else if (wc >= 0x0090 && wc < 0x0100)
+ c = wc;
+ else if (wc == 0x2191)
+ c = 0x5e;
+ else if (wc >= 0x2580 && wc < 0x25a0)
+ c = zx82_page25[wc-0x2580];
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/lib/zx82_pl.h libiconv-1.17-mono/lib/zx82_pl.h
--- libiconv-1.17/lib/zx82_pl.h 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/lib/zx82_pl.h 2022-07-04 16:05:57.216557559 +0200
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, see .
+ */
+
+/*
+ * Sinclair ZX Spectrum Polish ASCII
+ */
+
+static const unsigned short zx82_pl_2uni[80] = {
+ /* 0x50 */
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x2191, 0x005f,
+ /* 0x60 */
+ 0x00a3, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70 */
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x00a9,
+ /* 0x80 */
+ 0x0141, 0x0142, 0x0104, 0x0118, 0x0105, 0x0119, 0x015a, 0x015b,
+ 0x0106, 0x0107, 0x017b, 0x017c, 0x0179, 0x017a, 0x00d3, 0x00f3,
+ /* 0x90 */
+ 0x0143, 0x0144, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
+ 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,
+};
+
+static int
+zx82_pl_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+ unsigned char c = *s;
+ if (c < 0x50)
+ *pwc = (ucs4_t) c;
+ else if (c < 0xa0)
+ *pwc = (ucs4_t) zx82_pl_2uni[c-0x50];
+ else
+ *pwc = (ucs4_t) c;
+ return 1;
+}
+
+static const unsigned char zx82_pl_page00[64] = {
+ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x00, 0x5f, /* 0x58-0x5f */
+ 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
+ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
+ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00, /* 0x78-0x7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0x00, 0x00, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x90-0x97 */
+};
+static const unsigned char zx82_pl_page01[128] = {
+ 0x00, 0x00, 0x00, 0x00, 0x82, 0x84, 0x88, 0x89, /* 0x00-0x07 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
+ 0x83, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
+ 0x00, 0x80, 0x81, 0x90, 0x91, 0x00, 0x00, 0x00, /* 0x40-0x47 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
+ 0x00, 0x00, 0x86, 0x87, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
+ 0x00, 0x8c, 0x8d, 0x8a, 0x8b, 0x00, 0x00, 0x00, /* 0x78-0x7f */
+};
+
+static int
+zx82_pl_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
+{
+ unsigned char c = 0;
+ if (wc < 0x0058) {
+ *r = wc;
+ return 1;
+ }
+ else if (wc >= 0x0058 && wc < 0x0098)
+ c = zx82_pl_page00[wc-0x0058];
+ else if (wc >= 0x0098 && wc < 0x0100)
+ c = wc;
+ else if (wc >= 0x0100 && wc < 0x0180)
+ c = zx82_pl_page01[wc-0x0100];
+ else if (wc == 0x2191)
+ c = 0x5e;
+ if (c != 0) {
+ *r = c;
+ return 1;
+ }
+ return RET_ILUNI;
+}
diff -Naur libiconv-1.17/man/iconv_open.3 libiconv-1.17-mono/man/iconv_open.3
--- libiconv-1.17/man/iconv_open.3 2022-01-23 21:23:42.000000000 +0100
+++ libiconv-1.17-mono/man/iconv_open.3 2022-07-04 16:28:51.444546971 +0200
@@ -168,6 +168,10 @@
.nf
.fi
ATARIST, RISCOS\-LATIN1
+ATARI8\-{GRAPH,INT,KAREN,AWP,XLENT,PANTHER,PE,EUROTEKST,PL,CAPEK,TCHEKO,CZ,ATASCII,ATASCII2}, ATASCII, ATASCII2,
+ZX80, ZX81, ZX82, ZX82-PL, ZXSPECTRUM, ZXSPECTRUM-PL,
+PETSCII\-{UC,LC}, PETSCII,
+CP895, CP867, KAMENICKY, KEYBCS2
.PP
.TP
EBCDIC compatible (not ASCII compatible, very rarely used)
diff -Naur libiconv-1.17/man/iconv_open.3.html libiconv-1.17-mono/man/iconv_open.3.html
--- libiconv-1.17/man/iconv_open.3.html 2022-05-15 14:59:08.000000000 +0200
+++ libiconv-1.17-mono/man/iconv_open.3.html 2022-07-04 16:30:57.381173803 +0200
@@ -231,7 +231,11 @@
Platform specifics
ATARIST,
-RISCOS−LATIN1
+RISCOS−LATIN1,
+ATARI8−{GRAPH,INT,KAREN,AWP,XLENT,PANTHER,PE,EUROTEKST,PL,CAPEK,CZ,TCHEKO,ATASCII,ATASCII2},ATASCII,ATASCII2,
+ZX80,ZX81,ZX82,ZX82−PL,ZXSPECTRUM,ZXSPECTRUM−PL,
+PETSCII−{UC,LC},PETSCII,
+CP895,CP867,KAMENICKY,KEYBCS2
EBCDIC compatible (not ASCII
compatible, very rarely used)
diff -Naur libiconv-1.17/NEWS libiconv-1.17-mono/NEWS
--- libiconv-1.17/NEWS 2022-01-24 04:29:36.000000000 +0100
+++ libiconv-1.17-mono/NEWS 2022-07-04 15:23:54.439585899 +0200
@@ -6,7 +6,7 @@
IBM-{037,273,277,278,280,282,284,285,297,423,424,425,500,838,870,871,875},
IBM-{880,905,924,1025,1026,1047,1097,1112,1122,1123,1130,1132,1137,1140},
IBM-{1141,1142,1143,1144,1145,1146,1147,1148,1149,1153,1154,1155,1156,1157},
- IBM-{1158,1160,1164,1165,1166,4971,12712,16804}.
+ IBM-{1158,1160,1164,1165,1166,4971,12712,16804},ATARI8-EUROTEKST.
They are available through the configure option '--enable-extra-encodings'.
New in 1.16:
@@ -14,7 +14,9 @@
New in 1.15:
* The UTF-8 converter now rejects surrogates and out-of-range code points.
-* Added ISO-2022-JP-MS converter.
+* Added ISO-2022-JP-MS,ATARI8-{GRAPH,INT,KAREN,AWP,XLENT,PANTHER,PE,PL}
+ ATARI8-{CAPEK,CZ,TCHEKO},ATASCII,ATASCII2,ZX80,ZX81,ZX82,ZX82-PL,ZXSPECTRUM,
+ ZXSPECTRUM-PL,PETSCII,PETSCII-{UC,LC},CP895,CP867,KEYBCS2,KAMENICKY converters.
* Updated the CP1255 converter to map one more character.
* The functions now support strings longer than 2 GB.
diff -Naur libiconv-1.17/NOTES libiconv-1.17-mono/NOTES
--- libiconv-1.17/NOTES 2022-01-23 18:39:01.000000000 +0100
+++ libiconv-1.17-mono/NOTES 2022-07-04 15:19:21.694763667 +0200
@@ -292,6 +292,9 @@
We implement these because they were the native character set on HPs
and NeXTs for a long time, and libiconv is intended to be usable on
these old machines.
+ * ATARI8-*, PETSCII-*, ZX*, CP895/CP867/KEYBCS2
+ We implement these because they are quite useful in crossworking
+ on retro 8-bit Atari XL/XE, Commodore and Sinclair Spectrum machines.
Full Unicode
* UTF-8, UCS-2, UCS-4
We implement these. Obviously.
diff -Naur libiconv-1.17/README libiconv-1.17-mono/README
--- libiconv-1.17/README 2022-02-12 14:14:59.000000000 +0100
+++ libiconv-1.17-mono/README 2022-07-04 15:18:34.646539960 +0200
@@ -71,7 +71,12 @@
Turkmen
TDS565
Platform specifics
- ATARIST, RISCOS-LATIN1
+ ATARIST, RISCOS-LATIN1,
+ ATARI8-{GRAPH,INT,KAREN,AWP,XLENT,PANTHER,PE,EUROTEKST,PL,CAPEK,CZ,TCHEKO},
+ ATASCII, ATASCII2,
+ ZX80, ZX81, ZX82, ZX82-PL, ZXSPECTRUM, ZXSPECTRUM-PL,
+ PETSCII, PETSCII-{UC, LC},
+ CP895, CP867, KEYBCS2, KAMENICKY
EBCDIC compatible (not ASCII compatible, very rarely used)
European languages
IBM-{037,273,277,278,280,282,284,285,297,423,500,870,871,875,880},
diff -Naur libiconv-1.17/tests/ATARI8-AWP.TXT libiconv-1.17-mono/tests/ATARI8-AWP.TXT
--- libiconv-1.17/tests/ATARI8-AWP.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ATARI8-AWP.TXT 2022-07-04 15:47:39.173182722 +0200
@@ -0,0 +1,130 @@
+#
+0x00 0x0179
+0x01 0x0105
+0x02 0x017A
+0x03 0x0107
+0x04 0x015A
+0x05 0x0119
+0x06 0x2571
+0x07 0x2572
+0x08 0x25E2
+0x09 0x2597
+0x0A 0x25E3
+0x0B 0x0141
+0x0C 0x0142
+0x0D 0x0143
+0x0E 0x0144
+0x0F 0x00F3
+0x10 0x00D3
+0x11 0x250C
+0x12 0x0118
+0x13 0x015B
+0x14 0x25CF
+0x15 0x2584
+0x16 0x0106
+0x17 0x0104
+0x18 0x017B
+0x19 0x258C
+0x1A 0x017C
+0x1B 0x241B
+0x1C 0x2191
+0x1D 0x2193
+0x1E 0x2190
+0x1F 0x2192
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2A 0x002A
+0x2B 0x002B
+0x2C 0x002C
+0x2D 0x002D
+0x2E 0x002E
+0x2F 0x002F
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3A 0x003A
+0x3B 0x003B
+0x3C 0x003C
+0x3D 0x003D
+0x3E 0x003E
+0x3F 0x003F
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4A 0x004A
+0x4B 0x004B
+0x4C 0x004C
+0x4D 0x004D
+0x4E 0x004E
+0x4F 0x004F
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5A 0x005A
+0x5B 0x005B
+0x5C 0x005C
+0x5D 0x005D
+0x5E 0x005E
+0x5F 0x005F
+0x60 0x2666
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6A 0x006A
+0x6B 0x006B
+0x6C 0x006C
+0x6D 0x006D
+0x6E 0x006E
+0x6F 0x006F
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7A 0x007A
+0x7B 0x2660
+0x7C 0x007C
+0x7D 0x21B0
+0x7E 0x25C0
+0x7F 0x25B6
+0x9B 0x000A
diff -Naur libiconv-1.17/tests/ATARI8-CAPEK.TXT libiconv-1.17-mono/tests/ATARI8-CAPEK.TXT
--- libiconv-1.17/tests/ATARI8-CAPEK.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ATARI8-CAPEK.TXT 2014-10-27 12:03:39.000000000 +0100
@@ -0,0 +1,304 @@
+#
+# Name: Atari 8-bit Česky Čapek standard (ATASCII) to Unicode
+# Unicode version: 4.0
+# Table version: 1.0
+# Table format: Format A
+# Date: 2011 September 21
+# Authors: Jerzy Kut
+#
+# Copyright (c) 1998 - 2011 Unicode, Inc. All Rights reserved.
+#
+# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+# No claims are made as to fitness for any particular purpose. No
+# warranties of any kind are expressed or implied. The recipient
+# agrees to determine applicability of information provided. If this
+# file has been provided on optical media by Unicode, Inc., the sole
+# remedy for any claim will be exchange of defective media within 90
+# days of receipt.
+#
+# Unicode, Inc. hereby grants the right to freely use the information
+# supplied in this file in the creation of products supporting the
+# Unicode Standard, and to make copies of this file in any form for
+# internal or external distribution as long as this notice remains
+# attached.
+#
+# General notes:
+#
+# This table contains the data the Unicode Consortium has on how
+# 8-bit Atari Česky Čapek standard characters (ATASCII) map into Unicode.
+#
+# Format: Three tab-separated columns
+# Column 1 is the Atari code (in hex as 0xXX)
+# Column 2 is the Unicode (in hex as 0xXXXX)
+# Column 3 the Unicode name (follows a comment sign, '#')
+# Column 4 is the actual character or (follows a comment sign, '#')
+# Column 5 indicates backward compatible character set mappings
+#
+# The entries are in Atari 8-bit order.
+#
+# Version history
+# 1.0 version new, by Jerzy Kut (based on ATARIST.TXT).
+#
+# Updated versions of this file may be found in:
+#
+#
+# Any comments or problems, contact http://www.unicode.org/reporting.html
+#
+0x00 0xFEFF # ZERO WIDTH NO-BREAK SPACE # ISO646
+0x01 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE # Á ISO646
+0x02 0x002B # PLUS SIGN # + ISO646
+0x03 0x010C # LATIN CAPITAL LETTER C WITH CARON # Č ISO646
+0x04 0x010F # LATIN SMALL LETTER D WITH CARON # ď ISO646 *
+0x05 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE # É ISO646
+0x06 0x0028 # LEFT PARENTHESIS # ( ISO646
+0x07 0x0024 # DOLLAR SIGN # $ ISO646
+0x08 0x002A # ASTERISK # * ISO646
+0x09 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE # Í ISO646
+0x0A 0x0147 # LATIN CAPITAL LETTER N WITH CARON # Ň ISO646
+0x0B 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE # Ó ISO646
+0x0C 0x013E # LATIN SMALL LETTER L WITH CARON # ľ ISO646
+0x0D 0x011A # LATIN CAPITAL LETTER E WITH CARON # Ě ISO646
+0x0E 0x0148 # LATIN SMALL LETTER N WITH CARON # ň ISO646
+0x0F 0x00F3 # LATIN SMALL LETTER O WITH ACUTE # ó ISO646
+0x10 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS # ü ISO646
+0x11 0x0155 # LATIN SMALL LETTER R WITH ACUTE # ŕ ISO646
+0x12 0x0158 # LATIN CAPITAL LETTER R WITH CARON # Ř ISO646
+0x13 0x0160 # LATIN CAPITAL LETTER S WITH CARON # Š ISO646
+0x14 0x0165 # LATIN SMALL LETTER T WITH CARON # ť ISO646
+0x15 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE # Ú ISO646
+0x16 0x00A7 # SECTION SIGN # § ISO646
+0x17 0x00A9 # COPYRIGHT SIGN # © ISO646
+0x18 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX # ô ISO646
+0x19 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE # Ý ISO646
+0x1A 0x017D # LATIN CAPITAL LETTER Z WITH CARON # Ž ISO646
+0x1B 0x241B # SYMBOL FOR ESCAPE # ␛ Atari 8-bit
+0x1C 0x016E # LATIN CAPITAL LETTER U WITH RING ABOVE # Ů ISO646
+0x1D 0x0164 # LATIN CAPITAL LETTER T WITH CARON # Ť ISO646
+0x1E 0x2926 # SOUTH WEST ARROW WITH HOOK # ⤦ ISO646
+0x1F 0x010E # LATIN CAPITAL LETTER D WITH CARON # Ď ISO646
+0x20 0x0020 # SPACE # ISO646
+0x21 0x0021 # EXCLAMATION MARK # ! ASCII
+0x22 0x0022 # QUOTATION MARK # " ASCII
+0x23 0x0023 # NUMBER SIGN # # ASCII
+0x24 0x0029 # RIGHT PARENTHESIS # ) ISO646
+0x25 0x011B # LATIN SMALL LETTER E WITH CARON # ě ISO646
+0x26 0x0161 # LATIN SMALL LETTER S WITH CARON # š ISO646
+0x27 0x010D # LATIN SMALL LETTER C WITH CARON # č ISO646
+0x28 0x017E # LATIN SMALL LETTER Z WITH CARON # ž ISO646
+0x29 0x00ED # LATIN SMALL LETTER I WITH ACUTE # í ISO646
+0x2A 0x00E1 # LATIN SMALL LETTER A WITH ACUTE # á ISO646
+0x2B 0x016F # LATIN SMALL LETTER U WITH RING ABOVE # ů ISO646
+0x2C 0x002C # COMMA # , ASCII
+0x2D 0x002D # HYPHEN-MINUS # - ASCII
+0x2E 0x002E # FULL STOP # . ASCII
+0x2F 0x002F # SOLIDUS # / ASCII
+0x30 0x0030 # DIGIT ZERO # 0 ASCII
+0x31 0x0031 # DIGIT ONE # 1 ASCII
+0x32 0x0032 # DIGIT TWO # 2 ASCII
+0x33 0x0033 # DIGIT THREE # 3 ASCII
+0x34 0x0034 # DIGIT FOUR # 4 ASCII
+0x35 0x0035 # DIGIT FIVE # 5 ASCII
+0x36 0x0036 # DIGIT SIX # 6 ASCII
+0x37 0x0037 # DIGIT SEVEN # 7 ASCII
+0x38 0x0038 # DIGIT EIGHT # 8 ASCII
+0x39 0x0039 # DIGIT NINE # 9 ASCII
+0x3A 0x003A # COLON # : ASCII
+0x3B 0x003B # SEMICOLON # ; ASCII
+0x3C 0x003C # LESS-THAN SIGN # < ASCII
+0x3D 0x003D # EQUALS SIGN # = ASCII
+0x3E 0x003E # GREATER-THAN SIGN # > ASCII
+0x3F 0x003F # QUESTION MARK # ? ASCII
+0x40 0x0159 # LATIN SMALL LETTER R WITH CARON # ř ISO646
+0x41 0x0041 # LATIN CAPITAL LETTER A # A ASCII
+0x42 0x0042 # LATIN CAPITAL LETTER B # B ASCII
+0x43 0x0043 # LATIN CAPITAL LETTER C # C ASCII
+0x44 0x0044 # LATIN CAPITAL LETTER D # D ASCII
+0x45 0x0045 # LATIN CAPITAL LETTER E # E ASCII
+0x46 0x0046 # LATIN CAPITAL LETTER F # F ASCII
+0x47 0x0047 # LATIN CAPITAL LETTER G # G ASCII
+0x48 0x0048 # LATIN CAPITAL LETTER H # H ASCII
+0x49 0x0049 # LATIN CAPITAL LETTER I # I ASCII
+0x4A 0x004A # LATIN CAPITAL LETTER J # J ASCII
+0x4B 0x004B # LATIN CAPITAL LETTER K # K ASCII
+0x4C 0x004C # LATIN CAPITAL LETTER L # L ASCII
+0x4D 0x004D # LATIN CAPITAL LETTER M # M ASCII
+0x4E 0x004E # LATIN CAPITAL LETTER N # N ASCII
+0x4F 0x004F # LATIN CAPITAL LETTER O # O ASCII
+0x50 0x0050 # LATIN CAPITAL LETTER P # P ASCII
+0x51 0x0051 # LATIN CAPITAL LETTER Q # Q ASCII
+0x52 0x0052 # LATIN CAPITAL LETTER R # R ASCII
+0x53 0x0053 # LATIN CAPITAL LETTER S # S ASCII
+0x54 0x0054 # LATIN CAPITAL LETTER T # T ASCII
+0x55 0x0055 # LATIN CAPITAL LETTER U # U ASCII
+0x56 0x0056 # LATIN CAPITAL LETTER V # V ASCII
+0x57 0x0057 # LATIN CAPITAL LETTER W # W ASCII
+0x58 0x0058 # LATIN CAPITAL LETTER X # X ASCII
+0x59 0x0059 # LATIN CAPITAL LETTER Y # Y ASCII
+0x5A 0x005A # LATIN CAPITAL LETTER Z # Z ASCII
+0x5B 0x00E9 # LATIN SMALL LETTER E WITH ACUTE # é ISO646
+0x5C 0x013D # LATIN CAPITAL LETTER L WITH CARON # Ľ ISO646
+0x5D 0x00FA # LATIN SMALL LETTER U WITH ACUTE # ú ISO646
+0x5E 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS # Ä ISO646
+0x5F 0x005F # LOW LINE # _ ASCII
+0x60 0x00FD # LATIN SMALL LETTER Y WITH ACUTE # ý ISO646
+0x61 0x0061 # LATIN SMALL LETTER A # a ASCII
+0x62 0x0062 # LATIN SMALL LETTER B # b ASCII
+0x63 0x0063 # LATIN SMALL LETTER C # c ASCII
+0x64 0x0064 # LATIN SMALL LETTER D # d ASCII
+0x65 0x0065 # LATIN SMALL LETTER E # e ASCII
+0x66 0x0066 # LATIN SMALL LETTER F # f ASCII
+0x67 0x0067 # LATIN SMALL LETTER G # g ASCII
+0x68 0x0068 # LATIN SMALL LETTER H # h ASCII
+0x69 0x0069 # LATIN SMALL LETTER I # i ASCII
+0x6A 0x006A # LATIN SMALL LETTER J # j ASCII
+0x6B 0x006B # LATIN SMALL LETTER K # k ASCII
+0x6C 0x006C # LATIN SMALL LETTER L # l ASCII
+0x6D 0x006D # LATIN SMALL LETTER M # m ASCII
+0x6E 0x006E # LATIN SMALL LETTER N # n ASCII
+0x6F 0x006F # LATIN SMALL LETTER O # o ASCII
+0x70 0x0070 # LATIN SMALL LETTER P # p ASCII
+0x71 0x0071 # LATIN SMALL LETTER Q # q ASCII
+0x72 0x0072 # LATIN SMALL LETTER R # r ASCII
+0x73 0x0073 # LATIN SMALL LETTER S # s ASCII
+0x74 0x0074 # LATIN SMALL LETTER T # t ASCII
+0x75 0x0075 # LATIN SMALL LETTER U # u ASCII
+0x76 0x0076 # LATIN SMALL LETTER V # v ASCII
+0x77 0x0077 # LATIN SMALL LETTER W # w ASCII
+0x78 0x0078 # LATIN SMALL LETTER X # x ASCII
+0x79 0x0079 # LATIN SMALL LETTER Y # y ASCII
+0x7A 0x007A # LATIN SMALL LETTER Z # z ASCII
+0x7B 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS # Ü ISO646
+0x7C 0x007C # VERTICAL LINE # | ASCII
+0x7D 0x007D # RIGHT CURLY BRACKET # } ASCII
+0x7E 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS # ö ISO646
+0x7F 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS # ä ISO646
+#inverted characters
+0x80 0xFEFF # ZERO WIDTH NO-BREAK SPACE # ISO646
+0x81 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE # Á ISO646
+0x82 0x002B # PLUS SIGN # + ISO646
+0x83 0x010C # LATIN CAPITAL LETTER C WITH CARON # Č ISO646
+0x84 0x010F # LATIN SMALL LETTER D WITH CARON # ď ISO646 *
+0x85 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE # É ISO646
+0x86 0x0028 # LEFT PARENTHESIS # ( ISO646
+0x87 0x0024 # DOLLAR SIGN # $ ISO646
+0x88 0x002A # ASTERISK # * ISO646
+0x89 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE # Í ISO646
+0x8A 0x0147 # LATIN CAPITAL LETTER N WITH CARON # Ň ISO646
+0x8B 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE # Ó ISO646
+0x8C 0x013E # LATIN SMALL LETTER L WITH CARON # ľ ISO646
+0x8D 0x011A # LATIN CAPITAL LETTER E WITH CARON # Ě ISO646
+0x8E 0x0148 # LATIN SMALL LETTER N WITH CARON # ň ISO646
+0x8F 0x00F3 # LATIN SMALL LETTER O WITH ACUTE # ó ISO646
+0x90 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS # ü ISO646
+0x91 0x0155 # LATIN SMALL LETTER R WITH ACUTE # ŕ ISO646
+0x92 0x0158 # LATIN CAPITAL LETTER R WITH CARON # Ř ISO646
+0x93 0x0160 # LATIN CAPITAL LETTER S WITH CARON # Š ISO646
+0x94 0x0165 # LATIN SMALL LETTER T WITH CARON # ť ISO646
+0x95 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE # Ú ISO646
+0x96 0x00A7 # SECTION SIGN # § ISO646
+0x97 0x00A9 # COPYRIGHT SIGN # © ISO646
+0x98 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX # ô ISO646
+0x99 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE # Ý ISO646
+0x9A 0x017D # LATIN CAPITAL LETTER Z WITH CARON # Ž ISO646
+0x9B 0x000A # LINE FEED # ASCII
+0x9C 0x016E # LATIN CAPITAL LETTER U WITH RING ABOVE # Ů ISO646
+0x9D 0x0164 # LATIN CAPITAL LETTER T WITH CARON # Ť ISO646
+0x9E 0x2926 # SOUTH WEST ARROW WITH HOOK # ⤦ ISO646
+0x9F 0x010E # LATIN CAPITAL LETTER D WITH CARON # Ď ISO646
+0xA0 0x0020 # SPACE # ISO646
+0xA1 0x0021 # EXCLAMATION MARK # ! ASCII
+0xA2 0x0022 # QUOTATION MARK # " ASCII
+0xA3 0x0023 # NUMBER SIGN # # ASCII
+0xA4 0x0029 # RIGHT PARENTHESIS # ) ISO646
+0xA5 0x011B # LATIN SMALL LETTER E WITH CARON # ě ISO646
+0xA6 0x0161 # LATIN SMALL LETTER S WITH CARON # š ISO646
+0xA7 0x010D # LATIN SMALL LETTER C WITH CARON # č ISO646
+0xA8 0x017E # LATIN SMALL LETTER Z WITH CARON # ž ISO646
+0xA9 0x00ED # LATIN SMALL LETTER I WITH ACUTE # í ISO646
+0xAA 0x00E1 # LATIN SMALL LETTER A WITH ACUTE # á ISO646
+0xAB 0x016F # LATIN SMALL LETTER U WITH RING ABOVE # ů ISO646
+0xAC 0x002C # COMMA # , ASCII
+0xAD 0x002D # HYPHEN-MINUS # - ASCII
+0xAE 0x002E # FULL STOP # . ASCII
+0xAF 0x002F # SOLIDUS # / ASCII
+0xB0 0x0030 # DIGIT ZERO # 0 ASCII
+0xB1 0x0031 # DIGIT ONE # 1 ASCII
+0xB2 0x0032 # DIGIT TWO # 2 ASCII
+0xB3 0x0033 # DIGIT THREE # 3 ASCII
+0xB4 0x0034 # DIGIT FOUR # 4 ASCII
+0xB5 0x0035 # DIGIT FIVE # 5 ASCII
+0xB6 0x0036 # DIGIT SIX # 6 ASCII
+0xB7 0x0037 # DIGIT SEVEN # 7 ASCII
+0xB8 0x0038 # DIGIT EIGHT # 8 ASCII
+0xB9 0x0039 # DIGIT NINE # 9 ASCII
+0xBA 0x003A # COLON # : ASCII
+0xBB 0x003B # SEMICOLON # ; ASCII
+0xBC 0x003C # LESS-THAN SIGN # < ASCII
+0xBD 0x003D # EQUALS SIGN # = ASCII
+0xBE 0x003E # GREATER-THAN SIGN # > ASCII
+0xBF 0x003F # QUESTION MARK # ? ASCII
+0xC0 0x0159 # LATIN SMALL LETTER R WITH CARON # ř ISO646
+0xC1 0x0041 # LATIN CAPITAL LETTER A # A ASCII
+0xC2 0x0042 # LATIN CAPITAL LETTER B # B ASCII
+0xC3 0x0043 # LATIN CAPITAL LETTER C # C ASCII
+0xC4 0x0044 # LATIN CAPITAL LETTER D # D ASCII
+0xC5 0x0045 # LATIN CAPITAL LETTER E # E ASCII
+0xC6 0x0046 # LATIN CAPITAL LETTER F # F ASCII
+0xC7 0x0047 # LATIN CAPITAL LETTER G # G ASCII
+0xC8 0x0048 # LATIN CAPITAL LETTER H # H ASCII
+0xC9 0x0049 # LATIN CAPITAL LETTER I # I ASCII
+0xCA 0x004A # LATIN CAPITAL LETTER J # J ASCII
+0xCB 0x004B # LATIN CAPITAL LETTER K # K ASCII
+0xCC 0x004C # LATIN CAPITAL LETTER L # L ASCII
+0xCD 0x004D # LATIN CAPITAL LETTER M # M ASCII
+0xCE 0x004E # LATIN CAPITAL LETTER N # N ASCII
+0xCF 0x004F # LATIN CAPITAL LETTER O # O ASCII
+0xD0 0x0050 # LATIN CAPITAL LETTER P # P ASCII
+0xD1 0x0051 # LATIN CAPITAL LETTER Q # Q ASCII
+0xD2 0x0052 # LATIN CAPITAL LETTER R # R ASCII
+0xD3 0x0053 # LATIN CAPITAL LETTER S # S ASCII
+0xD4 0x0054 # LATIN CAPITAL LETTER T # T ASCII
+0xD5 0x0055 # LATIN CAPITAL LETTER U # U ASCII
+0xD6 0x0056 # LATIN CAPITAL LETTER V # V ASCII
+0xD7 0x0057 # LATIN CAPITAL LETTER W # W ASCII
+0xD8 0x0058 # LATIN CAPITAL LETTER X # X ASCII
+0xD9 0x0059 # LATIN CAPITAL LETTER Y # Y ASCII
+0xDA 0x005A # LATIN CAPITAL LETTER Z # Z ASCII
+0xDB 0x00E9 # LATIN SMALL LETTER E WITH ACUTE # é ISO646
+0xDC 0x013D # LATIN CAPITAL LETTER L WITH CARON # Ľ ISO646
+0xDD 0x00FA # LATIN SMALL LETTER U WITH ACUTE # ú ISO646
+0xDE 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS # Ä ISO646
+0xDF 0x005F # LOW LINE # _ ASCII
+0xE0 0x00FD # LATIN SMALL LETTER Y WITH ACUTE # ý ISO646
+0xE1 0x0061 # LATIN SMALL LETTER A # a ASCII
+0xE2 0x0062 # LATIN SMALL LETTER B # b ASCII
+0xE3 0x0063 # LATIN SMALL LETTER C # c ASCII
+0xE4 0x0064 # LATIN SMALL LETTER D # d ASCII
+0xE5 0x0065 # LATIN SMALL LETTER E # e ASCII
+0xE6 0x0066 # LATIN SMALL LETTER F # f ASCII
+0xE7 0x0067 # LATIN SMALL LETTER G # g ASCII
+0xE8 0x0068 # LATIN SMALL LETTER H # h ASCII
+0xE9 0x0069 # LATIN SMALL LETTER I # i ASCII
+0xEA 0x006A # LATIN SMALL LETTER J # j ASCII
+0xEB 0x006B # LATIN SMALL LETTER K # k ASCII
+0xEC 0x006C # LATIN SMALL LETTER L # l ASCII
+0xED 0x006D # LATIN SMALL LETTER M # m ASCII
+0xEE 0x006E # LATIN SMALL LETTER N # n ASCII
+0xEF 0x006F # LATIN SMALL LETTER O # o ASCII
+0xF0 0x0070 # LATIN SMALL LETTER P # p ASCII
+0xF1 0x0071 # LATIN SMALL LETTER Q # q ASCII
+0xF2 0x0072 # LATIN SMALL LETTER R # r ASCII
+0xF3 0x0073 # LATIN SMALL LETTER S # s ASCII
+0xF4 0x0074 # LATIN SMALL LETTER T # t ASCII
+0xF5 0x0075 # LATIN SMALL LETTER U # u ASCII
+0xF6 0x0076 # LATIN SMALL LETTER V # v ASCII
+0xF7 0x0077 # LATIN SMALL LETTER W # w ASCII
+0xF8 0x0078 # LATIN SMALL LETTER X # x ASCII
+0xF9 0x0079 # LATIN SMALL LETTER Y # y ASCII
+0xFA 0x007A # LATIN SMALL LETTER Z # z ASCII
+0xFB 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS # Ü ISO646
+0xFC 0x007C # VERTICAL LINE # | ASCII
+0xFD 0x007D # RIGHT CURLY BRACKET # } ASCII
+0xFE 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS # ö ISO646
+0xFF 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS # ä ISO646
+
diff -Naur libiconv-1.17/tests/ATARI8-EUROTEKST.TXT libiconv-1.17-mono/tests/ATARI8-EUROTEKST.TXT
--- libiconv-1.17/tests/ATARI8-EUROTEKST.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ATARI8-EUROTEKST.TXT 2022-07-04 15:48:04.513292903 +0200
@@ -0,0 +1,130 @@
+#
+0x00 0x2665
+0x01 0x0107
+0x02 0x0106
+0x03 0x0144
+0x04 0x0143
+0x05 0x00F3
+0x06 0x00D3
+0x07 0x015B
+0x08 0x015A
+0x09 0x017C
+0x0A 0x017B
+0x0B 0x017A
+0x0C 0x0179
+0x0D 0x0142
+0x0E 0x0141
+0x0F 0x007B
+0x10 0x007D
+0x11 0x00AB
+0x12 0x00BB
+0x13 0x007C
+0x14 0x005F
+0x15 0x007E
+0x16 0x00A7
+0x17 0x252C
+0x18 0x2534
+0x19 0x258C
+0x1A 0x2514
+0x1B 0x241B
+0x1C 0x2191
+0x1D 0x2193
+0x1E 0x2190
+0x1F 0x2192
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2A 0x002A
+0x2B 0x002B
+0x2C 0x002C
+0x2D 0x002D
+0x2E 0x002E
+0x2F 0x002F
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3A 0x003A
+0x3B 0x003B
+0x3C 0x003C
+0x3D 0x003D
+0x3E 0x003E
+0x3F 0x003F
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4A 0x004A
+0x4B 0x004B
+0x4C 0x004C
+0x4D 0x004D
+0x4E 0x004E
+0x4F 0x004F
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5A 0x005A
+0x5B 0x005B
+0x5C 0x005C
+0x5D 0x005D
+0x5E 0x005E
+0x5F 0x005F
+0x60 0x2666
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6A 0x006A
+0x6B 0x006B
+0x6C 0x006C
+0x6D 0x006D
+0x6E 0x006E
+0x6F 0x006F
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7A 0x007A
+0x7B 0x0105
+0x7C 0x0104
+0x7D 0x0119
+0x7E 0x0118
+0x7F 0x25B6
+0x9B 0x000A
diff -Naur libiconv-1.17/tests/ATARI8-GRAPH.TXT libiconv-1.17-mono/tests/ATARI8-GRAPH.TXT
--- libiconv-1.17/tests/ATARI8-GRAPH.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ATARI8-GRAPH.TXT 2022-07-04 15:48:14.873337982 +0200
@@ -0,0 +1,130 @@
+#
+0x00 0x2665
+0x01 0x251C
+0x02 0x2595
+0x03 0x2518
+0x04 0x2524
+0x05 0x2510
+0x06 0x2571
+0x07 0x2572
+0x08 0x25E2
+0x09 0x2597
+0x0A 0x25E3
+0x0B 0x259D
+0x0C 0x2598
+0x0D 0x2594
+0x0E 0x2581
+0x0F 0x2596
+0x10 0x2663
+0x11 0x250C
+0x12 0x2500
+0x13 0x253C
+0x14 0x25CF
+0x15 0x2584
+0x16 0x258F
+0x17 0x252C
+0x18 0x2534
+0x19 0x258C
+0x1A 0x2514
+0x1B 0x241B
+0x1C 0x2191
+0x1D 0x2193
+0x1E 0x2190
+0x1F 0x2192
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2A 0x002A
+0x2B 0x002B
+0x2C 0x002C
+0x2D 0x002D
+0x2E 0x002E
+0x2F 0x002F
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3A 0x003A
+0x3B 0x003B
+0x3C 0x003C
+0x3D 0x003D
+0x3E 0x003E
+0x3F 0x003F
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4A 0x004A
+0x4B 0x004B
+0x4C 0x004C
+0x4D 0x004D
+0x4E 0x004E
+0x4F 0x004F
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5A 0x005A
+0x5B 0x005B
+0x5C 0x005C
+0x5D 0x005D
+0x5E 0x005E
+0x5F 0x005F
+0x60 0x2666
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6A 0x006A
+0x6B 0x006B
+0x6C 0x006C
+0x6D 0x006D
+0x6E 0x006E
+0x6F 0x006F
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7A 0x007A
+0x7B 0x2660
+0x7C 0x007C
+0x7D 0x21B0
+0x7E 0x25C0
+0x7F 0x25B6
+0x9B 0x000A
diff -Naur libiconv-1.17/tests/ATARI8-INT.TXT libiconv-1.17-mono/tests/ATARI8-INT.TXT
--- libiconv-1.17/tests/ATARI8-INT.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ATARI8-INT.TXT 2022-07-04 15:48:30.293405113 +0200
@@ -0,0 +1,130 @@
+#
+0x00 0x00E1
+0x01 0x00F9
+0x02 0x00D1
+0x03 0x00C9
+0x04 0x00E7
+0x05 0x00F4
+0x06 0x00F2
+0x07 0x00EC
+0x08 0x00A3
+0x09 0x00EF
+0x0A 0x00FC
+0x0B 0x00E4
+0x0C 0x00D6
+0x0D 0x00FA
+0x0E 0x00F3
+0x0F 0x00F6
+0x10 0x00DC
+0x11 0x00E2
+0x12 0x00FB
+0x13 0x00EE
+0x14 0x00E9
+0x15 0x00E8
+0x16 0x00F1
+0x17 0x00EA
+0x18 0x00E5
+0x19 0x00E0
+0x1A 0x00C5
+0x1B 0x241B
+0x1C 0x2191
+0x1D 0x2193
+0x1E 0x2190
+0x1F 0x2192
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2A 0x002A
+0x2B 0x002B
+0x2C 0x002C
+0x2D 0x002D
+0x2E 0x002E
+0x2F 0x002F
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3A 0x003A
+0x3B 0x003B
+0x3C 0x003C
+0x3D 0x003D
+0x3E 0x003E
+0x3F 0x003F
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4A 0x004A
+0x4B 0x004B
+0x4C 0x004C
+0x4D 0x004D
+0x4E 0x004E
+0x4F 0x004F
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5A 0x005A
+0x5B 0x005B
+0x5C 0x005C
+0x5D 0x005D
+0x5E 0x005E
+0x5F 0x005F
+0x60 0x00A1
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6A 0x006A
+0x6B 0x006B
+0x6C 0x006C
+0x6D 0x006D
+0x6E 0x006E
+0x6F 0x006F
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7A 0x007A
+0x7B 0x00C4
+0x7C 0x007C
+0x7D 0x21B0
+0x7E 0x25C0
+0x7F 0x25B6
+0x9B 0x000A
diff -Naur libiconv-1.17/tests/ATARI8-KAREN.TXT libiconv-1.17-mono/tests/ATARI8-KAREN.TXT
--- libiconv-1.17/tests/ATARI8-KAREN.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ATARI8-KAREN.TXT 2022-07-04 15:48:39.889446908 +0200
@@ -0,0 +1,123 @@
+#
+0x00 0x0179
+0x01 0x0105
+0x02 0x017A
+0x03 0x0107
+0x04 0x015A
+0x05 0x0119
+0x0A 0x00DF
+0x0B 0x0141
+0x0C 0x0142
+0x0D 0x0143
+0x0E 0x0144
+0x0F 0x00F3
+0x10 0x00D3
+0x11 0x0474
+0x12 0x0118
+0x13 0x015B
+0x16 0x0106
+0x17 0x0104
+0x18 0x017B
+0x1A 0x017C
+0x1B 0x241B
+0x1C 0x2191
+0x1D 0x2193
+0x1E 0x2190
+0x1F 0x2192
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2A 0x002A
+0x2B 0x002B
+0x2C 0x002C
+0x2D 0x002D
+0x2E 0x002E
+0x2F 0x002F
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3A 0x003A
+0x3B 0x003B
+0x3C 0x003C
+0x3D 0x003D
+0x3E 0x003E
+0x3F 0x003F
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4A 0x004A
+0x4B 0x004B
+0x4C 0x004C
+0x4D 0x004D
+0x4E 0x004E
+0x4F 0x004F
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5A 0x005A
+0x5B 0x005B
+0x5C 0x005C
+0x5D 0x005D
+0x5E 0x005E
+0x5F 0x005F
+0x60 0x00A0
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6A 0x006A
+0x6B 0x006B
+0x6C 0x006C
+0x6D 0x006D
+0x6E 0x006E
+0x6F 0x006F
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7A 0x007A
+0x7B 0xFEFF
+0x7C 0x007C
+0x7D 0x21B0
+0x7E 0x25C0
+0x7F 0x25B6
+0x9B 0x000A
diff -Naur libiconv-1.17/tests/ATARI8-PANTHER.TXT libiconv-1.17-mono/tests/ATARI8-PANTHER.TXT
--- libiconv-1.17/tests/ATARI8-PANTHER.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ATARI8-PANTHER.TXT 2022-07-04 15:48:54.033508541 +0200
@@ -0,0 +1,130 @@
+#
+0x00 0x2665
+0x01 0x0105
+0x02 0x2595
+0x03 0x0107
+0x04 0x015A
+0x05 0x0119
+0x06 0x2571
+0x07 0x2572
+0x08 0x25E2
+0x09 0x2597
+0x0A 0x25E3
+0x0B 0x017A
+0x0C 0x0142
+0x0D 0x0143
+0x0E 0x0144
+0x0F 0x00F3
+0x10 0x00D3
+0x11 0x0104
+0x12 0x0118
+0x13 0x015B
+0x14 0x25CF
+0x15 0x2584
+0x16 0x0106
+0x17 0x252C
+0x18 0x017B
+0x19 0x258C
+0x1A 0x017C
+0x1B 0x241B
+0x1C 0x2191
+0x1D 0x2193
+0x1E 0x2190
+0x1F 0x2192
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2A 0x002A
+0x2B 0x002B
+0x2C 0x002C
+0x2D 0x002D
+0x2E 0x002E
+0x2F 0x002F
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3A 0x003A
+0x3B 0x003B
+0x3C 0x003C
+0x3D 0x003D
+0x3E 0x003E
+0x3F 0x003F
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4A 0x004A
+0x4B 0x004B
+0x4C 0x004C
+0x4D 0x004D
+0x4E 0x004E
+0x4F 0x004F
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5A 0x005A
+0x5B 0x005B
+0x5C 0x005C
+0x5D 0x005D
+0x5E 0x005E
+0x5F 0x005F
+0x60 0x0179
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6A 0x006A
+0x6B 0x006B
+0x6C 0x006C
+0x6D 0x006D
+0x6E 0x006E
+0x6F 0x006F
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7A 0x007A
+0x7B 0x0141
+0x7C 0x007C
+0x7D 0x21B0
+0x7E 0x25C0
+0x7F 0x25B6
+0x9B 0x000A
diff -Naur libiconv-1.17/tests/ATARI8-PE.TXT libiconv-1.17-mono/tests/ATARI8-PE.TXT
--- libiconv-1.17/tests/ATARI8-PE.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ATARI8-PE.TXT 2022-07-04 15:49:01.449540869 +0200
@@ -0,0 +1,130 @@
+#
+0x00 0x2665
+0x01 0x0105
+0x02 0x2595
+0x03 0x0107
+0x04 0x2524
+0x05 0x0119
+0x06 0x2571
+0x07 0x2572
+0x08 0x25E2
+0x09 0x2597
+0x0A 0x25E3
+0x0B 0x259D
+0x0C 0x0142
+0x0D 0x2594
+0x0E 0x0144
+0x0F 0x00F3
+0x10 0x2663
+0x11 0x250C
+0x12 0x2500
+0x13 0x015B
+0x14 0x25CF
+0x15 0x2584
+0x16 0x258F
+0x17 0x252C
+0x18 0x017A
+0x19 0x258C
+0x1A 0x017C
+0x1B 0x241B
+0x1C 0x2191
+0x1D 0x2193
+0x1E 0x2190
+0x1F 0x2192
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2A 0x002A
+0x2B 0x002B
+0x2C 0x002C
+0x2D 0x002D
+0x2E 0x002E
+0x2F 0x002F
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3A 0x003A
+0x3B 0x003B
+0x3C 0x003C
+0x3D 0x003D
+0x3E 0x003E
+0x3F 0x003F
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4A 0x004A
+0x4B 0x004B
+0x4C 0x004C
+0x4D 0x004D
+0x4E 0x004E
+0x4F 0x004F
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5A 0x005A
+0x5B 0x005B
+0x5C 0x005C
+0x5D 0x005D
+0x5E 0x005E
+0x5F 0x005F
+0x60 0x2666
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6A 0x006A
+0x6B 0x006B
+0x6C 0x006C
+0x6D 0x006D
+0x6E 0x006E
+0x6F 0x006F
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7A 0x007A
+0x7B 0x2660
+0x7C 0x007C
+0x7D 0x21B0
+0x7E 0x25C0
+0x7F 0x25B6
+0x9B 0x000A
diff -Naur libiconv-1.17/tests/ATARI8-TCHEKO.TXT libiconv-1.17-mono/tests/ATARI8-TCHEKO.TXT
--- libiconv-1.17/tests/ATARI8-TCHEKO.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ATARI8-TCHEKO.TXT 2014-10-27 12:03:45.000000000 +0100
@@ -0,0 +1,307 @@
+#
+# Name: Atari 8-bit Česky Tcheko standard (ATASCII) to Unicode
+# Unicode version: 4.0
+# Table version: 1.0
+# Table format: Format A
+# Date: 2014 October 26
+# Authors: Jerzy Kut
+#
+# Copyright (c) 1998 - 2011 Unicode, Inc. All Rights reserved.
+#
+# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+# No claims are made as to fitness for any particular purpose. No
+# warranties of any kind are expressed or implied. The recipient
+# agrees to determine applicability of information provided. If this
+# file has been provided on optical media by Unicode, Inc., the sole
+# remedy for any claim will be exchange of defective media within 90
+# days of receipt.
+#
+# Unicode, Inc. hereby grants the right to freely use the information
+# supplied in this file in the creation of products supporting the
+# Unicode Standard, and to make copies of this file in any form for
+# internal or external distribution as long as this notice remains
+# attached.
+#
+# General notes:
+#
+# This table contains the data the Unicode Consortium has on how
+# 8-bit Atari Česky Tcheko standard characters (ATASCII) map into Unicode.
+#
+# Format: Three tab-separated columns
+# Column 1 is the Atari code (in hex as 0xXX)
+# Column 2 is the Unicode (in hex as 0xXXXX)
+# Column 3 the Unicode name (follows a comment sign, '#')
+# Column 4 is the actual character or (follows a comment sign, '#')
+# Column 5 indicates backward compatible character set mappings
+#
+# The entries are in Atari 8-bit order.
+#
+# Version history
+# 1.0 version new, by Jerzy Kut (based on ATARIST.TXT).
+#
+# Updated versions of this file may be found in:
+#
+#
+# Any comments or problems, contact http://www.unicode.org/reporting.html
+#
+0x00 0x00B7 # MIDDLE DOT # · ISO646
+0x01 0x00E1 # LATIN SMALL LETTER A WITH ACUTE # á ISO646
+0x02 0x010E # LATIN CAPITAL LETTER D WITH CARON # Ď ISO646
+0x03 0x010D # LATIN SMALL LETTER C WITH CARON # č ISO646
+#0x04 # LATIN SMALL LETTER D WITH CIRCUMFLEX # d ISO646 ?
+0x05 0x011B # LATIN SMALL LETTER E WITH CARON # ě ISO646
+0x06 0x011A # LATIN CAPITAL LETTER E WITH CARON # Ě ISO646
+0x07 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE # É ISO646
+0x08 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE # Ú ISO646
+0x09 0x00ED # LATIN SMALL LETTER I WITH ACUTE # í ISO646
+0x0A 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS # ü ISO646
+#0x0A 0x016F # LATIN SMALL LETTER U WITH RING ABOVE # ů ISO646 ?
+0x0B 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS # Ü ISO646
+#0x0B 0x016E # LATIN CAPITAL LETTER U WITH RING ABOVE # Ů ISO646 ?
+0x0C 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE # Í ISO646
+0x0D 0x0147 # LATIN CAPITAL LETTER N WITH CARON # Ň ISO646
+0x0E 0x0148 # LATIN SMALL LETTER N WITH CARON # ň ISO646
+0x0F 0x00F3 # LATIN SMALL LETTER O WITH ACUTE # ó ISO646
+0x10 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE # Ó ISO646
+0x11 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE # Á ISO646
+0x12 0x0159 # LATIN SMALL LETTER R WITH CARON # ř ISO646
+0x13 0x0161 # LATIN SMALL LETTER S WITH CARON # š ISO646
+0x14 0x0165 # LATIN SMALL LETTER T WITH CARON # ť ISO646
+0x15 0x00FA # LATIN SMALL LETTER U WITH ACUTE # ú ISO646
+0x16 0x010C # LATIN CAPITAL LETTER C WITH CARON # Č ISO646
+0x17 0x00E9 # LATIN SMALL LETTER E WITH ACUTE # é ISO646
+0x18 0x017D # LATIN CAPITAL LETTER Z WITH CARON # Ž ISO646
+0x19 0x00FD # LATIN SMALL LETTER Y WITH ACUTE # ý ISO646
+0x1A 0x017E # LATIN SMALL LETTER Z WITH CARON # ž ISO646
+0x1B 0x241B # SYMBOL FOR ESCAPE # ␛ Atari 8-bit
+0x1C 0x0158 # LATIN CAPITAL LETTER R WITH CARON # Ř ISO646
+0x1D 0x0160 # LATIN CAPITAL LETTER S WITH CARON # Š ISO646
+0x1E 0x0164 # LATIN CAPITAL LETTER T WITH CARON # Ť ISO646
+0x1F 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE # Ý ISO646
+0x20 0x0020 # SPACE # ISO646
+0x21 0x0021 # EXCLAMATION MARK # ! ASCII
+0x22 0x0022 # QUOTATION MARK # " ASCII
+0x23 0x0023 # NUMBER SIGN # # ASCII
+0x24 0x0024 # DOLLAR SIGN # $ ASCII
+0x25 0x0025 # PERCENT SIGN # % ASCII
+0x26 0x0026 # AMPERSAND # & ASCII
+0x27 0x0027 # APOSTROPHE # ' ASCII
+0x28 0x0028 # LEFT PARENTHESIS # ( ASCII
+0x29 0x0029 # RIGHT PARENTHESIS # ) ASCII
+0x2A 0x002A # ASTERISK # * ASCII
+0x2B 0x002B # PLUS SIGN # + ASCII
+0x2C 0x002C # COMMA # , ASCII
+0x2D 0x002D # HYPHEN-MINUS # - ASCII
+0x2E 0x002E # FULL STOP # . ASCII
+0x2F 0x002F # SOLIDUS # / ASCII
+0x30 0x0030 # DIGIT ZERO # 0 ASCII
+0x31 0x0031 # DIGIT ONE # 1 ASCII
+0x32 0x0032 # DIGIT TWO # 2 ASCII
+0x33 0x0033 # DIGIT THREE # 3 ASCII
+0x34 0x0034 # DIGIT FOUR # 4 ASCII
+0x35 0x0035 # DIGIT FIVE # 5 ASCII
+0x36 0x0036 # DIGIT SIX # 6 ASCII
+0x37 0x0037 # DIGIT SEVEN # 7 ASCII
+0x38 0x0038 # DIGIT EIGHT # 8 ASCII
+0x39 0x0039 # DIGIT NINE # 9 ASCII
+0x3A 0x003A # COLON # : ASCII
+0x3B 0x003B # SEMICOLON # ; ASCII
+0x3C 0x003C # LESS-THAN SIGN # < ASCII
+0x3D 0x003D # EQUALS SIGN # = ASCII
+0x3E 0x003E # GREATER-THAN SIGN # > ASCII
+0x3F 0x003F # QUESTION MARK # ? ASCII
+0x40 0x0040 # COMMERCIAL AT # @ ASCII
+0x41 0x0041 # LATIN CAPITAL LETTER A # A ASCII
+0x42 0x0042 # LATIN CAPITAL LETTER B # B ASCII
+0x43 0x0043 # LATIN CAPITAL LETTER C # C ASCII
+0x44 0x0044 # LATIN CAPITAL LETTER D # D ASCII
+0x45 0x0045 # LATIN CAPITAL LETTER E # E ASCII
+0x46 0x0046 # LATIN CAPITAL LETTER F # F ASCII
+0x47 0x0047 # LATIN CAPITAL LETTER G # G ASCII
+0x48 0x0048 # LATIN CAPITAL LETTER H # H ASCII
+0x49 0x0049 # LATIN CAPITAL LETTER I # I ASCII
+0x4A 0x004A # LATIN CAPITAL LETTER J # J ASCII
+0x4B 0x004B # LATIN CAPITAL LETTER K # K ASCII
+0x4C 0x004C # LATIN CAPITAL LETTER L # L ASCII
+0x4D 0x004D # LATIN CAPITAL LETTER M # M ASCII
+0x4E 0x004E # LATIN CAPITAL LETTER N # N ASCII
+0x4F 0x004F # LATIN CAPITAL LETTER O # O ASCII
+0x50 0x0050 # LATIN CAPITAL LETTER P # P ASCII
+0x51 0x0051 # LATIN CAPITAL LETTER Q # Q ASCII
+0x52 0x0052 # LATIN CAPITAL LETTER R # R ASCII
+0x53 0x0053 # LATIN CAPITAL LETTER S # S ASCII
+0x54 0x0054 # LATIN CAPITAL LETTER T # T ASCII
+0x55 0x0055 # LATIN CAPITAL LETTER U # U ASCII
+0x56 0x0056 # LATIN CAPITAL LETTER V # V ASCII
+0x57 0x0057 # LATIN CAPITAL LETTER W # W ASCII
+0x58 0x0058 # LATIN CAPITAL LETTER X # X ASCII
+0x59 0x0059 # LATIN CAPITAL LETTER Y # Y ASCII
+0x5A 0x005A # LATIN CAPITAL LETTER Z # Z ASCII
+0x5B 0x005B # LEFT SQUARE BRACKET # [ ASCII
+0x5C 0x005C # REVERSE SOLIDUS # \ ASCII
+0x5D 0x005D # RIGHT SQUARE BRACKET # ] ASCII
+0x5E 0x005E # CIRCUMFLEX ACCENT # ^ ASCII
+0x5F 0x005F # LOW LINE # _ ASCII
+0x60 0x0060 # GRAVE ACCENT # ` ASCII
+0x61 0x0061 # LATIN SMALL LETTER A # a ASCII
+0x62 0x0062 # LATIN SMALL LETTER B # b ASCII
+0x63 0x0063 # LATIN SMALL LETTER C # c ASCII
+0x64 0x0064 # LATIN SMALL LETTER D # d ASCII
+0x65 0x0065 # LATIN SMALL LETTER E # e ASCII
+0x66 0x0066 # LATIN SMALL LETTER F # f ASCII
+0x67 0x0067 # LATIN SMALL LETTER G # g ASCII
+0x68 0x0068 # LATIN SMALL LETTER H # h ASCII
+0x69 0x0069 # LATIN SMALL LETTER I # i ASCII
+0x6A 0x006A # LATIN SMALL LETTER J # j ASCII
+0x6B 0x006B # LATIN SMALL LETTER K # k ASCII
+0x6C 0x006C # LATIN SMALL LETTER L # l ASCII
+0x6D 0x006D # LATIN SMALL LETTER M # m ASCII
+0x6E 0x006E # LATIN SMALL LETTER N # n ASCII
+0x6F 0x006F # LATIN SMALL LETTER O # o ASCII
+0x70 0x0070 # LATIN SMALL LETTER P # p ASCII
+0x71 0x0071 # LATIN SMALL LETTER Q # q ASCII
+0x72 0x0072 # LATIN SMALL LETTER R # r ASCII
+0x73 0x0073 # LATIN SMALL LETTER S # s ASCII
+0x74 0x0074 # LATIN SMALL LETTER T # t ASCII
+0x75 0x0075 # LATIN SMALL LETTER U # u ASCII
+0x76 0x0076 # LATIN SMALL LETTER V # v ASCII
+0x77 0x0077 # LATIN SMALL LETTER W # w ASCII
+0x78 0x0078 # LATIN SMALL LETTER X # x ASCII
+0x79 0x0079 # LATIN SMALL LETTER Y # y ASCII
+0x7A 0x007A # LATIN SMALL LETTER Z # z ASCII
+0x7B 0x007B # LEFT CURLY BRACKET # { ASCII
+0x7C 0x007C # VERTICAL LINE # | ASCII
+0x7D 0x007D # RIGHT CURLY BRACKET # } ASCII
+0x7E 0x007E # TILDE # ~ ASCII
+0x7F 0x2926 # SOUTH WEST ARROW WITH HOOK # ⤦ ISO646
+#inverted characters
+0x80 0x00B7 # MIDDLE DOT # · ISO646
+0x81 0x00E1 # LATIN SMALL LETTER A WITH ACUTE # á ISO646
+0x82 0x010E # LATIN CAPITAL LETTER D WITH CARON # Ď ISO646
+0x83 0x010D # LATIN SMALL LETTER C WITH CARON # č ISO646
+#0x84 # LATIN SMALL LETTER D WITH CIRCUMFLEX # d ISO646 ?
+0x85 0x011B # LATIN SMALL LETTER E WITH CARON # ě ISO646
+0x86 0x011A # LATIN CAPITAL LETTER E WITH CARON # Ě ISO646
+0x87 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE # É ISO646
+0x88 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE # Ú ISO646
+0x89 0x00ED # LATIN SMALL LETTER I WITH ACUTE # í ISO646
+0x8A 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS # ü ISO646
+#0x8A 0x016F # LATIN SMALL LETTER U WITH RING ABOVE # ů ISO646 ?
+0x8B 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS # Ü ISO646
+#0x8B 0x016E # LATIN CAPITAL LETTER U WITH RING ABOVE # Ů ISO646 ?
+0x8C 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE # Í ISO646
+0x8D 0x0147 # LATIN CAPITAL LETTER N WITH CARON # Ň ISO646
+0x8E 0x0148 # LATIN SMALL LETTER N WITH CARON # ň ISO646
+0x8F 0x00F3 # LATIN SMALL LETTER O WITH ACUTE # ó ISO646
+0x90 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE # Ó ISO646
+0x91 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE # Á ISO646
+0x92 0x0159 # LATIN SMALL LETTER R WITH CARON # ř ISO646
+0x93 0x0161 # LATIN SMALL LETTER S WITH CARON # š ISO646
+0x94 0x0165 # LATIN SMALL LETTER T WITH CARON # ť ISO646 *
+0x95 0x00FA # LATIN SMALL LETTER U WITH ACUTE # ú ISO646
+0x96 0x010C # LATIN CAPITAL LETTER C WITH CARON # Č ISO646
+0x97 0x00E9 # LATIN SMALL LETTER E WITH ACUTE # é ISO646
+0x98 0x017D # LATIN CAPITAL LETTER Z WITH CARON # Ž ISO646
+0x99 0x00FD # LATIN SMALL LETTER Y WITH ACUTE # ý ISO646
+0x9A 0x017E # LATIN SMALL LETTER Z WITH CARON # ž ISO646
+0x9B 0x000A # LINE FEED # ASCII
+0x9C 0x0158 # LATIN CAPITAL LETTER R WITH CARON # Ř ISO646
+0x9D 0x0160 # LATIN CAPITAL LETTER S WITH CARON # Š ISO646
+0x9E 0x0164 # LATIN CAPITAL LETTER T WITH CARON # Ť ISO646
+0x9F 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE # Ý ISO646
+0xA0 0x0020 # SPACE # ISO646
+0xA1 0x0021 # EXCLAMATION MARK # ! ASCII
+0xA2 0x0022 # QUOTATION MARK # " ASCII
+0xA3 0x0023 # NUMBER SIGN # # ASCII
+0xA4 0x0024 # DOLLAR SIGN # $ ASCII
+0xA5 0x0025 # PERCENT SIGN # % ASCII
+0xA6 0x0026 # AMPERSAND # & ASCII
+0xA7 0x0027 # APOSTROPHE # ' ASCII
+0xA8 0x0028 # LEFT PARENTHESIS # ( ASCII
+0xA9 0x0029 # RIGHT PARENTHESIS # ) ASCII
+0xAA 0x002A # ASTERISK # * ASCII
+0xAB 0x002B # PLUS SIGN # + ASCII
+0xAC 0x002C # COMMA # , ASCII
+0xAD 0x002D # HYPHEN-MINUS # - ASCII
+0xAE 0x002E # FULL STOP # . ASCII
+0xAF 0x002F # SOLIDUS # / ASCII
+0xB0 0x0030 # DIGIT ZERO # 0 ASCII
+0xB1 0x0031 # DIGIT ONE # 1 ASCII
+0xB2 0x0032 # DIGIT TWO # 2 ASCII
+0xB3 0x0033 # DIGIT THREE # 3 ASCII
+0xB4 0x0034 # DIGIT FOUR # 4 ASCII
+0xB5 0x0035 # DIGIT FIVE # 5 ASCII
+0xB6 0x0036 # DIGIT SIX # 6 ASCII
+0xB7 0x0037 # DIGIT SEVEN # 7 ASCII
+0xB8 0x0038 # DIGIT EIGHT # 8 ASCII
+0xB9 0x0039 # DIGIT NINE # 9 ASCII
+0xBA 0x003A # COLON # : ASCII
+0xBB 0x003B # SEMICOLON # ; ASCII
+0xBC 0x003C # LESS-THAN SIGN # < ASCII
+0xBD 0x003D # EQUALS SIGN # = ASCII
+0xBE 0x003E # GREATER-THAN SIGN # > ASCII
+0xBF 0x003F # QUESTION MARK # ? ASCII
+0xC0 0x0040 # COMMERCIAL AT # @ ASCII
+0xC1 0x0041 # LATIN CAPITAL LETTER A # A ASCII
+0xC2 0x0042 # LATIN CAPITAL LETTER B # B ASCII
+0xC3 0x0043 # LATIN CAPITAL LETTER C # C ASCII
+0xC4 0x0044 # LATIN CAPITAL LETTER D # D ASCII
+0xC5 0x0045 # LATIN CAPITAL LETTER E # E ASCII
+0xC6 0x0046 # LATIN CAPITAL LETTER F # F ASCII
+0xC7 0x0047 # LATIN CAPITAL LETTER G # G ASCII
+0xC8 0x0048 # LATIN CAPITAL LETTER H # H ASCII
+0xC9 0x0049 # LATIN CAPITAL LETTER I # I ASCII
+0xCA 0x004A # LATIN CAPITAL LETTER J # J ASCII
+0xCB 0x004B # LATIN CAPITAL LETTER K # K ASCII
+0xCC 0x004C # LATIN CAPITAL LETTER L # L ASCII
+0xCD 0x004D # LATIN CAPITAL LETTER M # M ASCII
+0xCE 0x004E # LATIN CAPITAL LETTER N # N ASCII
+0xCF 0x004F # LATIN CAPITAL LETTER O # O ASCII
+0xD0 0x0050 # LATIN CAPITAL LETTER P # P ASCII
+0xD1 0x0051 # LATIN CAPITAL LETTER Q # Q ASCII
+0xD2 0x0052 # LATIN CAPITAL LETTER R # R ASCII
+0xD3 0x0053 # LATIN CAPITAL LETTER S # S ASCII
+0xD4 0x0054 # LATIN CAPITAL LETTER T # T ASCII
+0xD5 0x0055 # LATIN CAPITAL LETTER U # U ASCII
+0xD6 0x0056 # LATIN CAPITAL LETTER V # V ASCII
+0xD7 0x0057 # LATIN CAPITAL LETTER W # W ASCII
+0xD8 0x0058 # LATIN CAPITAL LETTER X # X ASCII
+0xD9 0x0059 # LATIN CAPITAL LETTER Y # Y ASCII
+0xDA 0x005A # LATIN CAPITAL LETTER Z # Z ASCII
+0xDB 0x005B # LEFT SQUARE BRACKET # [ ASCII
+0xDC 0x005C # REVERSE SOLIDUS # \ ASCII
+0xDD 0x005D # RIGHT SQUARE BRACKET # ] ASCII
+0xDE 0x005E # CIRCUMFLEX ACCENT # ^ ASCII
+0xDF 0x005F # LOW LINE # _ ASCII
+0xE0 0x0060 # GRAVE ACCENT # ` ASCII
+0xE1 0x0061 # LATIN SMALL LETTER A # a ASCII
+0xE2 0x0062 # LATIN SMALL LETTER B # b ASCII
+0xE3 0x0063 # LATIN SMALL LETTER C # c ASCII
+0xE4 0x0064 # LATIN SMALL LETTER D # d ASCII
+0xE5 0x0065 # LATIN SMALL LETTER E # e ASCII
+0xE6 0x0066 # LATIN SMALL LETTER F # f ASCII
+0xE7 0x0067 # LATIN SMALL LETTER G # g ASCII
+0xE8 0x0068 # LATIN SMALL LETTER H # h ASCII
+0xE9 0x0069 # LATIN SMALL LETTER I # i ASCII
+0xEA 0x006A # LATIN SMALL LETTER J # j ASCII
+0xEB 0x006B # LATIN SMALL LETTER K # k ASCII
+0xEC 0x006C # LATIN SMALL LETTER L # l ASCII
+0xED 0x006D # LATIN SMALL LETTER M # m ASCII
+0xEE 0x006E # LATIN SMALL LETTER N # n ASCII
+0xEF 0x006F # LATIN SMALL LETTER O # o ASCII
+0xF0 0x0070 # LATIN SMALL LETTER P # p ASCII
+0xF1 0x0071 # LATIN SMALL LETTER Q # q ASCII
+0xF2 0x0072 # LATIN SMALL LETTER R # r ASCII
+0xF3 0x0073 # LATIN SMALL LETTER S # s ASCII
+0xF4 0x0074 # LATIN SMALL LETTER T # t ASCII
+0xF5 0x0075 # LATIN SMALL LETTER U # u ASCII
+0xF6 0x0076 # LATIN SMALL LETTER V # v ASCII
+0xF7 0x0077 # LATIN SMALL LETTER W # w ASCII
+0xF8 0x0078 # LATIN SMALL LETTER X # x ASCII
+0xF9 0x0079 # LATIN SMALL LETTER Y # y ASCII
+0xFA 0x007A # LATIN SMALL LETTER Z # z ASCII
+0xFB 0x007B # LEFT CURLY BRACKET # { ASCII
+0xFC 0x007C # VERTICAL LINE # | ASCII
+0xFD 0x007D # RIGHT CURLY BRACKET # } ASCII
+0xFE 0x007E # TILDE # ~ ASCII
+0xFF 0x2926 # SOUTH WEST ARROW WITH HOOK # ⤦ ISO646
diff -Naur libiconv-1.17/tests/ATARI8-XLENT.TXT libiconv-1.17-mono/tests/ATARI8-XLENT.TXT
--- libiconv-1.17/tests/ATARI8-XLENT.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ATARI8-XLENT.TXT 2022-07-04 15:49:17.385610365 +0200
@@ -0,0 +1,130 @@
+#
+0x00 0x0179
+0x01 0x0105
+0x02 0x017A
+0x03 0x0107
+0x04 0x015A
+0x05 0x0119
+0x06 0x2571
+0x07 0x2572
+0x08 0x25E2
+0x09 0x2597
+0x0A 0x25E3
+0x0B 0x259D
+0x0C 0x0142
+0x0D 0x0143
+0x0E 0x0144
+0x0F 0x00F3
+0x10 0x00D3
+0x11 0x250C
+0x12 0x0118
+0x13 0x015B
+0x14 0x25CF
+0x15 0x2584
+0x16 0x0106
+0x17 0x0104
+0x18 0x017B
+0x19 0x258C
+0x1A 0x017C
+0x1B 0x241B
+0x1C 0x2191
+0x1D 0x2193
+0x1E 0x2190
+0x1F 0x2192
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2A 0x002A
+0x2B 0x002B
+0x2C 0x002C
+0x2D 0x002D
+0x2E 0x002E
+0x2F 0x002F
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3A 0x003A
+0x3B 0x003B
+0x3C 0x003C
+0x3D 0x003D
+0x3E 0x003E
+0x3F 0x003F
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4A 0x004A
+0x4B 0x004B
+0x4C 0x004C
+0x4D 0x004D
+0x4E 0x004E
+0x4F 0x004F
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5A 0x005A
+0x5B 0x005B
+0x5C 0x005C
+0x5D 0x005D
+0x5E 0x005E
+0x5F 0x005F
+0x60 0x2666
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6A 0x006A
+0x6B 0x006B
+0x6C 0x006C
+0x6D 0x006D
+0x6E 0x006E
+0x6F 0x006F
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7A 0x007A
+0x7B 0x0141
+0x7C 0x007C
+0x7D 0x21B0
+0x7E 0x25C0
+0x7F 0x25B6
+0x9B 0x000A
diff -Naur libiconv-1.17/tests/CP895_CP867.TXT libiconv-1.17-mono/tests/CP895_CP867.TXT
--- libiconv-1.17/tests/CP895_CP867.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/CP895_CP867.TXT 2014-10-27 12:04:01.000000000 +0100
@@ -0,0 +1,276 @@
+#
+# CP895/CP867 alias KEYBCS2, Kamenicti to Unicode
+#
+# Made on 2014 October 27 by Jerzy Kut based on http://linux.fjfi.cvut.cz/~zub/cp895/kam_to_uni.trans
+#
+# One of the character sets I wanted to use is the rather exotic CP895 alias "Bratři Kameničtí".
+#
+# This mapping is taken by me from http://linux.fjfi.cvut.cz/~zub/cp895/ (unfortunatelly I don't know Author of it).
+
+0x00 0x0000 # NULL
+0x01 0x0001 # START OF HEADING
+0x02 0x0002 # START OF TEXT
+0x03 0x0003 # END OF TEXT
+0x04 0x0004 # END OF TRANSMISSION
+0x05 0x0005 # ENQUIRY
+0x06 0x0006 # ACKNOWLEDGE
+0x07 0x0007 # BELL
+0x08 0x0008 # BACKSPACE
+0x09 0x0009 # HORIZONTAL TABULATION
+0x0a 0x000a # LINE FEED
+0x0b 0x000b # VERTICAL TABULATION
+0x0c 0x000c # FORM FEED
+0x0d 0x000d # CARRIAGE RETURN
+0x0e 0x000e # SHIFT OUT
+0x0f 0x000f # SHIFT IN
+0x10 0x0010 # DATA LINK ESCAPE
+0x11 0x0011 # DEVICE CONTROL ONE
+0x12 0x0012 # DEVICE CONTROL TWO
+0x13 0x0013 # DEVICE CONTROL THREE
+0x14 0x0014 # DEVICE CONTROL FOUR
+0x15 0x0015 # NEGATIVE ACKNOWLEDGE
+0x16 0x0016 # SYNCHRONOUS IDLE
+0x17 0x0017 # END OF TRANSMISSION BLOCK
+0x18 0x0018 # CANCEL
+0x19 0x0019 # END OF MEDIUM
+0x1a 0x001a # SUBSTITUTE
+0x1b 0x001b # ESCAPE
+0x1c 0x001c # FILE SEPARATOR
+0x1d 0x001d # GROUP SEPARATOR
+0x1e 0x001e # RECORD SEPARATOR
+0x1f 0x001f # UNIT SEPARATOR
+0x20 0x0020 # SPACE
+0x21 0x0021 # EXCLAMATION MARK
+0x22 0x0022 # QUOTATION MARK
+0x23 0x0023 # NUMBER SIGN
+0x24 0x0024 # DOLLAR SIGN
+0x25 0x0025 # PERCENT SIGN
+0x26 0x0026 # AMPERSAND
+0x27 0x0027 # APOSTROPHE
+0x28 0x0028 # LEFT PARENTHESIS
+0x29 0x0029 # RIGHT PARENTHESIS
+0x2a 0x002a # ASTERISK
+0x2b 0x002b # PLUS SIGN
+0x2c 0x002c # COMMA
+0x2d 0x002d # HYPHEN-MINUS
+0x2e 0x002e # FULL STOP
+0x2f 0x002f # SOLIDUS
+0x30 0x0030 # DIGIT ZERO
+0x31 0x0031 # DIGIT ONE
+0x32 0x0032 # DIGIT TWO
+0x33 0x0033 # DIGIT THREE
+0x34 0x0034 # DIGIT FOUR
+0x35 0x0035 # DIGIT FIVE
+0x36 0x0036 # DIGIT SIX
+0x37 0x0037 # DIGIT SEVEN
+0x38 0x0038 # DIGIT EIGHT
+0x39 0x0039 # DIGIT NINE
+0x3a 0x003a # COLON
+0x3b 0x003b # SEMICOLON
+0x3c 0x003c # LESS-THAN SIGN
+0x3d 0x003d # EQUALS SIGN
+0x3e 0x003e # GREATER-THAN SIGN
+0x3f 0x003f # QUESTION MARK
+0x40 0x0040 # COMMERCIAL AT
+0x41 0x0041 # LATIN CAPITAL LETTER A
+0x42 0x0042 # LATIN CAPITAL LETTER B
+0x43 0x0043 # LATIN CAPITAL LETTER C
+0x44 0x0044 # LATIN CAPITAL LETTER D
+0x45 0x0045 # LATIN CAPITAL LETTER E
+0x46 0x0046 # LATIN CAPITAL LETTER F
+0x47 0x0047 # LATIN CAPITAL LETTER G
+0x48 0x0048 # LATIN CAPITAL LETTER H
+0x49 0x0049 # LATIN CAPITAL LETTER I
+0x4a 0x004a # LATIN CAPITAL LETTER J
+0x4b 0x004b # LATIN CAPITAL LETTER K
+0x4c 0x004c # LATIN CAPITAL LETTER L
+0x4d 0x004d # LATIN CAPITAL LETTER M
+0x4e 0x004e # LATIN CAPITAL LETTER N
+0x4f 0x004f # LATIN CAPITAL LETTER O
+0x50 0x0050 # LATIN CAPITAL LETTER P
+0x51 0x0051 # LATIN CAPITAL LETTER Q
+0x52 0x0052 # LATIN CAPITAL LETTER R
+0x53 0x0053 # LATIN CAPITAL LETTER S
+0x54 0x0054 # LATIN CAPITAL LETTER T
+0x55 0x0055 # LATIN CAPITAL LETTER U
+0x56 0x0056 # LATIN CAPITAL LETTER V
+0x57 0x0057 # LATIN CAPITAL LETTER W
+0x58 0x0058 # LATIN CAPITAL LETTER X
+0x59 0x0059 # LATIN CAPITAL LETTER Y
+0x5a 0x005a # LATIN CAPITAL LETTER Z
+0x5b 0x005b # LEFT SQUARE BRACKET
+0x5c 0x005c # REVERSE SOLIDUS
+0x5d 0x005d # RIGHT SQUARE BRACKET
+0x5e 0x005e # CIRCUMFLEX ACCENT
+0x5f 0x005f # LOW LINE
+0x60 0x0060 # GRAVE ACCENT
+0x61 0x0061 # LATIN SMALL LETTER A
+0x62 0x0062 # LATIN SMALL LETTER B
+0x63 0x0063 # LATIN SMALL LETTER C
+0x64 0x0064 # LATIN SMALL LETTER D
+0x65 0x0065 # LATIN SMALL LETTER E
+0x66 0x0066 # LATIN SMALL LETTER F
+0x67 0x0067 # LATIN SMALL LETTER G
+0x68 0x0068 # LATIN SMALL LETTER H
+0x69 0x0069 # LATIN SMALL LETTER I
+0x6a 0x006a # LATIN SMALL LETTER J
+0x6b 0x006b # LATIN SMALL LETTER K
+0x6c 0x006c # LATIN SMALL LETTER L
+0x6d 0x006d # LATIN SMALL LETTER M
+0x6e 0x006e # LATIN SMALL LETTER N
+0x6f 0x006f # LATIN SMALL LETTER O
+0x70 0x0070 # LATIN SMALL LETTER P
+0x71 0x0071 # LATIN SMALL LETTER Q
+0x72 0x0072 # LATIN SMALL LETTER R
+0x73 0x0073 # LATIN SMALL LETTER S
+0x74 0x0074 # LATIN SMALL LETTER T
+0x75 0x0075 # LATIN SMALL LETTER U
+0x76 0x0076 # LATIN SMALL LETTER V
+0x77 0x0077 # LATIN SMALL LETTER W
+0x78 0x0078 # LATIN SMALL LETTER X
+0x79 0x0079 # LATIN SMALL LETTER Y
+0x7a 0x007a # LATIN SMALL LETTER Z
+0x7b 0x007b # LEFT CURLY BRACKET
+0x7c 0x007c # VERTICAL LINE
+0x7d 0x007d # RIGHT CURLY BRACKET
+0x7e 0x007e # TILDE
+0x7f 0x007f # DELETE
+
+##
+0x80 0x010C # LATIN CAPITAL LETTER C WITH CARON
+0x81 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
+0x82 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
+0x83 0x010F # LATIN SMALL LETTER D WITH CARON
+0x84 0x00e4 # LATIN SMALL LETTER A WITH DIAERESIS
+0x85 0x010E # LATIN CAPITAL LETTER D WITH CARON
+0x86 0x0164 # LATIN CAPITAL LETTER T WITH CARON
+0x87 0x010D # LATIN SMALL LETTER C WITH CARON
+0x88 0x011B # LATIN SMALL LETTER E WITH CARON
+0x89 0x011a # LATIN CAPITAL LETTER E WITH CARON
+0x8A 0x0139 # LATIN CAPITAL LETTER L WITH ACUTE
+0x8B 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
+0x8C 0x013E # LATIN SMALL LETTER L WITH CARON
+0x8D 0x013A # LATIN SMALL LETTER L WITH ACUTE
+0x8E 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
+0x8F 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
+
+0x90 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+0x91 0x017E # LATIN SMALL LETTER Z WITH CARON
+0x92 0x017D # LATIN CAPITAL LETTER Z WITH CARON
+0x93 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x94 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
+0x95 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
+0x96 0x016F # LATIN SMALL LETTER U WITH RING ABOVE
+0x97 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
+0x98 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
+0x99 0x00d6 # LATIN CAPITAL LETTER O WITH DIAERESIS
+0x9a 0x00dc # LATIN CAPITAL LETTER U WITH DIAERESIS
+
+0x9b 0x0160 # LATIN CAPITAL LETTER S WITH CARON
+
+0x9c 0x013D # LATIN CAPITAL LETTER L WITH CARON
+0x9d 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
+0x9e 0x0158 # LATIN CAPITAL LETTER R WITH CARON
+0x9f 0x0165 # LATIN SMALL LETTER T WITH CARON
+0xa0 0x00e1 # LATIN SMALL LETTER A WITH ACUTE
+0xa1 0x00ed # LATIN SMALL LETTER I WITH ACUTE
+0xa2 0x00f3 # LATIN SMALL LETTER O WITH ACUTE
+0xa3 0x00fa # LATIN SMALL LETTER U WITH ACUTE
+0xa4 0x0148 # LATIN SMALL LETTER N WITH CARON
+0xa5 0x0147 # LATIN CAPITAL LETTER N WITH CARON
+0xa6 0x016E # LATIN CAPITAL LETTER U WITH RING ABOVE
+0xa7 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xa8 0x0161 # LATIN SMALL LETTER S WITH CARON
+0xa9 0x0159 # LATIN SMALL LETTER R WITH CARON
+0xaa 0x0155 # LATIN SMALL LETTER R WITH ACUTE
+0xab 0x0154 # LATIN CAPITAL LETTER R WITH ACUTE
+0xac 0x00bc # VULGAR FRACTION ONE QUARTER
+0xad 0x00a7 # SECTION SIGN
+0xae 0x00ab # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xaf 0x00bb # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+
+0xb0 0x2591 # LIGHT SHADE
+0xb1 0x2592 # MEDIUM SHADE
+0xb2 0x2593 # DARK SHADE
+0xb3 0x2502 # BOX DRAWINGS LIGHT VERTICAL
+0xb4 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5 0x2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb6 0x2562 # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xb7 0x2556 # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xb8 0x2555 # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xb9 0x2563 # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba 0x2551 # BOX DRAWINGS DOUBLE VERTICAL
+0xbb 0x2557 # BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc 0x255d # BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd 0x255c # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xbe 0x255b # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xbf 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT
+
+0xc0 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2 0x252c # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3 0x251c # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL
+0xc5 0x253c # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6 0x255e # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xc7 0x255f # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xc8 0x255a # BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9 0x2554 # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca 0x2569 # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb 0x2566 # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc 0x2560 # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd 0x2550 # BOX DRAWINGS DOUBLE HORIZONTAL
+0xce 0x256c # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf 0x2567 # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+
+0xd0 0x2568 # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xd1 0x2564 # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xd2 0x2565 # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xd3 0x2559 # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xd4 0x2558 # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xd5 0x2552 # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xd6 0x2553 # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xd7 0x256b # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xd8 0x256a # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xd9 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT
+0xda 0x250c # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb 0x2588 # FULL BLOCK
+0xdc 0x2584 # LOWER HALF BLOCK
+0xdd 0x258c # LEFT HALF BLOCK
+0xde 0x2590 # RIGHT HALF BLOCK
+0xdf 0x2580 # UPPER HALF BLOCK
+
+0xe0 0x03b1 # GREEK SMALL LETTER ALPHA
+0xe1 0x00df # LATIN SMALL LETTER SHARP S
+0xe2 0x0393 # GREEK CAPITAL LETTER GAMMA
+0xe3 0x03c0 # GREEK SMALL LETTER PI
+0xe4 0x03a3 # GREEK CAPITAL LETTER SIGMA
+0xe5 0x03c3 # GREEK SMALL LETTER SIGMA
+0xe6 0x00b5 # MICRO SIGN
+0xe7 0x03c4 # GREEK SMALL LETTER TAU
+0xe8 0x03a6 # GREEK CAPITAL LETTER PHI
+0xe9 0x0398 # GREEK CAPITAL LETTER THETA
+0xea 0x03a9 # GREEK CAPITAL LETTER OMEGA
+0xeb 0x03b4 # GREEK SMALL LETTER DELTA
+0xec 0x221e # INFINITY
+0xed 0x03c6 # GREEK SMALL LETTER PHI
+0xee 0x03b5 # GREEK SMALL LETTER EPSILON
+0xef 0x2229 # INTERSECTION
+
+0xf0 0x2261 # IDENTICAL TO
+0xf1 0x00b1 # PLUS-MINUS SIGN
+0xf2 0x2265 # GREATER-THAN OR EQUAL TO
+0xf3 0x2264 # LESS-THAN OR EQUAL TO
+0xf4 0x2320 # TOP HALF INTEGRAL
+0xf5 0x2321 # BOTTOM HALF INTEGRAL
+0xf6 0x00f7 # DIVISION SIGN
+0xf7 0x2248 # ALMOST EQUAL TO
+0xf8 0x00b0 # DEGREE SIGN
+0xf9 0x2219 # BULLET OPERATOR
+0xfa 0x00b7 # MIDDLE DOT
+0xfb 0x221a # SQUARE ROOT
+0xfc 0x207f # SUPERSCRIPT LATIN SMALL LETTER N
+0xfd 0x00b2 # SUPERSCRIPT TWO
+0xfe 0x25a0 # BLACK SQUARE
+0xff 0x00a0 # NO-BREAK SPACE
+
diff -Naur libiconv-1.17/tests/Makefile.in libiconv-1.17-mono/tests/Makefile.in
--- libiconv-1.17/tests/Makefile.in 2022-02-12 14:13:33.000000000 +0100
+++ libiconv-1.17-mono/tests/Makefile.in 2022-07-04 13:45:37.880260948 +0200
@@ -259,6 +259,22 @@
$(SHELL) $(srcdir)/check-stateless $(srcdir) TDS565
$(SHELL) $(srcdir)/check-stateless $(srcdir) ATARIST
$(SHELL) $(srcdir)/check-stateless $(srcdir) RISCOS-LATIN1
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ATARI8-GRAPH
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ATARI8-INT
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ATARI8-KAREN
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ATARI8-AWP
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ATARI8-XLENT
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ATARI8-PANTHER
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ATARI8-PE
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ATARI8-EUROTEKST
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ATARI8-CAPEK
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ATARI8-TCHEKO
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ZX80
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ZX82
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) ZX82-PL
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) PETSCII-UC
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) PETSCII-LC
+ $(SHELL) $(srcdir)/check-stateless $(srcdir) CP895_CP867
table-from : table-from.@OBJEXT@ ../lib/libiconv.la
$(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(CFLAGS) table-from.@OBJEXT@ ../srclib/libicrt.a ../lib/libiconv.la -o $@
@@ -511,7 +527,23 @@
BIG5-2003.TXT BIG5-2003.IRREVERSIBLE.TXT \
TDS565.TXT \
ATARIST.TXT \
- RISCOS-LATIN1.TXT
+ RISCOS-LATIN1.TXT \
+ ATARI8-GRAPH \
+ ATARI8-INT \
+ ATARI8-KAREN \
+ ATARI8-AWP \
+ ATARI8-XLENT \
+ ATARI8-PANTHER \
+ ATARI8-PE \
+ ATARI8-EUROTEKST \
+ ATARI8-CAPEK \
+ ATARI8-TCHEKO \
+ ZX80 \
+ ZX82 \
+ ZX82-PL \
+ PETSCII-UC \
+ PETSCII-LC \
+ CP895_CP867
# List of distributed files imported from other packages.
IMPORTED_FILES = \
qemu.h
diff -Naur libiconv-1.17/tests/PETSCII-LC.TXT libiconv-1.17-mono/tests/PETSCII-LC.TXT
--- libiconv-1.17/tests/PETSCII-LC.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/PETSCII-LC.TXT 2014-10-27 21:22:31.000000000 +0100
@@ -0,0 +1,273 @@
+#
+# Name: PETSCII C64 English Lowercase to Unicode Table
+# Unicode version: 3.0
+# Table version: 1.10
+# Table format: Format A
+# Date: 05/10/02
+# Authors: Linus Walleij
+# General notes: Licensed under the GNU GPL, version 2
+#
+# Format: Three tab-separated columns
+# Column #1 is the PETSCII C64 Lowercase code (in hex)
+# Column #2 is the Unicode (in hex as 0xXXXX)
+# Column #3 is the Unicode name (follows a comment sign, '#')
+#
+# The entries are in PETSCII order
+#
+0x00 0x0000 #UNDEFINED
+0x01 0x0001 #UNDEFINED
+0x02 0x0002 #UNDEFINED
+0x03 0x0003 #UNDEFINED
+0x04 0x0004 #UNDEFINED
+0x05 0xF100 #WHITE COLOR SWITCH (CUS)
+0x06 0x0006 #UNDEFINED
+0x07 0x0007 #UNDEFINED
+0x08 0xF118 #DISABLE CHARACTER SET SWITCHING (CUS)
+0x09 0xF119 #ENABLE CHARACTER SET SWITCHING (CUS)
+0x0A 0x000A #UNDEFINED
+0x0B 0x000B #UNDEFINED
+0x0C 0x000C #UNDEFINED
+0x0D 0x000D #CARRIAGE RETURN
+0x0E 0x000E #SHIFT OUT
+0x0F 0x000F #UNDEFINED
+0x10 0x0010 #UNDEFINED
+0x11 0xF11C #CURSOR DOWN (CUS)
+0x12 0xF11A #REVERSE VIDEO ON (CUS)
+0x13 0xF120 #HOME (CUS)
+0x14 0x007F #DELETE
+0x15 0x0015 #UNDEFINED
+0x16 0x0016 #UNDEFINED
+0x17 0x0017 #UNDEFINED
+0x18 0x0018 #UNDEFINED
+0x19 0x0019 #UNDEFINED
+0x1A 0x001A #UNDEFINED
+0x1B 0x001B #UNDEFINED
+0x1C 0xF101 #RED COLOR SWITCH (CUS)
+0x1D 0xF11D #CURSOR RIGHT (CUS)
+0x1E 0xF102 #GREEN COLOR SWITCH (CUS)
+0x1F 0xF103 #BLUE COLOR SWITCH (CUS)
+0x20 0x0020 #SPACE
+0x21 0x0021 #EXCLAMATION MARK
+0x22 0x0022 #QUOTATION MARK
+0x23 0x0023 #NUMBER SIGN
+0x24 0x0024 #DOLLAR SIGN
+0x25 0x0025 #PERCENT SIGN
+0x26 0x0026 #AMPERSAND
+0x27 0x0027 #APOSTROPHE
+0x28 0x0028 #LEFT PARENTHESIS
+0x29 0x0029 #RIGHT PARENTHESIS
+0x2A 0x002A #ASTERISK
+0x2B 0x002B #PLUS SIGN
+0x2C 0x002C #COMMA
+0x2D 0x002D #HYPHEN-MINUS
+0x2E 0x002E #FULL STOP
+0x2F 0x002F #SOLIDUS
+0x30 0x0030 #DIGIT ZERO
+0x31 0x0031 #DIGIT ONE
+0x32 0x0032 #DIGIT TWO
+0x33 0x0033 #DIGIT THREE
+0x34 0x0034 #DIGIT FOUR
+0x35 0x0035 #DIGIT FIVE
+0x36 0x0036 #DIGIT SIX
+0x37 0x0037 #DIGIT SEVEN
+0x38 0x0038 #DIGIT EIGHT
+0x39 0x0039 #DIGIT NINE
+0x3A 0x003A #COLON
+0x3B 0x003B #SEMICOLON
+0x3C 0x003C #LESS-THAN SIGN
+0x3D 0x003D #EQUALS SIGN
+0x3E 0x003E #GREATER-THAN SIGN
+0x3F 0x003F #QUESTION MARK
+0x40 0x0040 #COMMERCIAL AT
+0x41 0x0061 #LATIN SMALL LETTER A
+0x42 0x0062 #LATIN SMALL LETTER B
+0x43 0x0063 #LATIN SMALL LETTER C
+0x44 0x0064 #LATIN SMALL LETTER D
+0x45 0x0065 #LATIN SMALL LETTER E
+0x46 0x0066 #LATIN SMALL LETTER F
+0x47 0x0067 #LATIN SMALL LETTER G
+0x48 0x0068 #LATIN SMALL LETTER H
+0x49 0x0069 #LATIN SMALL LETTER I
+0x4A 0x006A #LATIN SMALL LETTER J
+0x4B 0x006B #LATIN SMALL LETTER K
+0x4C 0x006C #LATIN SMALL LETTER L
+0x4D 0x006D #LATIN SMALL LETTER M
+0x4E 0x006E #LATIN SMALL LETTER N
+0x4F 0x006F #LATIN SMALL LETTER O
+0x50 0x0070 #LATIN SMALL LETTER P
+0x51 0x0071 #LATIN SMALL LETTER Q
+0x52 0x0072 #LATIN SMALL LETTER R
+0x53 0x0073 #LATIN SMALL LETTER S
+0x54 0x0074 #LATIN SMALL LETTER T
+0x55 0x0075 #LATIN SMALL LETTER U
+0x56 0x0076 #LATIN SMALL LETTER V
+0x57 0x0077 #LATIN SMALL LETTER W
+0x58 0x0078 #LATIN SMALL LETTER X
+0x59 0x0079 #LATIN SMALL LETTER Y
+0x5A 0x007A #LATIN SMALL LETTER Z
+0x5B 0x005B #LEFT SQUARE BRACKET
+0x5C 0x00A3 #POUND SIGN
+0x5D 0x005D #RIGHT SQUARE BRACKET
+0x5E 0x2191 #UPWARDS ARROW
+0x5F 0x2190 #LEFTWARDS ARROW
+0x60 0x2501 #BOX DRAWINGS LIGHT HORIZONTAL
+0x61 0x0041 #LATIN CAPITAL LETTER A
+0x62 0x0042 #LATIN CAPITAL LETTER B
+0x63 0x0043 #LATIN CAPITAL LETTER C
+0x64 0x0044 #LATIN CAPITAL LETTER D
+0x65 0x0045 #LATIN CAPITAL LETTER E
+0x66 0x0046 #LATIN CAPITAL LETTER F
+0x67 0x0047 #LATIN CAPITAL LETTER G
+0x68 0x0048 #LATIN CAPITAL LETTER H
+0x69 0x0049 #LATIN CAPITAL LETTER I
+0x6A 0x004A #LATIN CAPITAL LETTER J
+0x6B 0x004B #LATIN CAPITAL LETTER K
+0x6C 0x004C #LATIN CAPITAL LETTER L
+0x6D 0x004D #LATIN CAPITAL LETTER M
+0x6E 0x004E #LATIN CAPITAL LETTER N
+0x6F 0x004F #LATIN CAPITAL LETTER O
+0x70 0x0050 #LATIN CAPITAL LETTER P
+0x71 0x0051 #LATIN CAPITAL LETTER Q
+0x72 0x0052 #LATIN CAPITAL LETTER R
+0x73 0x0053 #LATIN CAPITAL LETTER S
+0x74 0x0054 #LATIN CAPITAL LETTER T
+0x75 0x0055 #LATIN CAPITAL LETTER U
+0x76 0x0056 #LATIN CAPITAL LETTER V
+0x77 0x0057 #LATIN CAPITAL LETTER W
+0x78 0x0058 #LATIN CAPITAL LETTER X
+0x79 0x0059 #LATIN CAPITAL LETTER Y
+0x7A 0x005A #LATIN CAPITAL LETTER Z
+0x7B 0x253C #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0x7C 0xF12E #LEFT HALF BLOCK MEDIUM SHADE (CUS)
+0x7D 0x2502 #BOX DRAWINGS LIGHT VERTICAL
+0x7E 0x2592 #MEDIUM SHADE
+0x7F 0xF139 #MEDIUM SHADE SLASHED LEFT (CUS)
+0x80 0x0080 #UNDEFINED
+0x81 0xF104 #ORANGE COLOR SWITCH (CUS)
+0x82 0x0082 #UNDEFINED
+0x83 0x0083 #UNDEFINED
+0x84 0x0084 #UNDEFINED
+0x85 0xF110 #FUNCTION KEY 1 (CUS)
+0x86 0xF112 #FUNCTION KEY 3 (CUS)
+0x87 0xF114 #FUNCTION KEY 5 (CUS)
+0x88 0xF116 #FUNCTION KEY 7 (CUS)
+0x89 0xF111 #FUNCTION KEY 2 (CUS)
+0x8A 0xF113 #FUNCTION KEY 4 (CUS)
+0x8B 0xF115 #FUNCTION KEY 6 (CUS)
+0x8C 0xF117 #FUNCTION KEY 8 (CUS)
+0x8D 0x000A #LINE FEED
+0x8E 0x000F #SHIFT IN
+0x8F 0x008F #UNDEFINED
+0x90 0xF105 #BLACK COLOR SWITCH (CUS)
+0x91 0xF11E #CURSOR UP (CUS)
+0x92 0xF11B #REVERSE VIDEO OFF (CUS)
+0x93 0x000C #FORM FEED
+0x94 0xF121 #INSERT (CUS)
+0x95 0xF106 #BROWN COLOR SWITCH (CUS)
+0x96 0xF107 #LIGHT RED COLOR SWITCH (CUS)
+0x97 0xF108 #GRAY 1 COLOR SWITCH (CUS)
+0x98 0xF109 #GRAY 2 COLOR SWITCH (CUS)
+0x99 0xF10A #LIGHT GREEN COLOR SWITCH (CUS)
+0x9A 0xF10B #LIGHT BLUE COLOR SWITCH (CUS)
+0x9B 0xF10C #GRAY 3 COLOR SWITCH (CUS)
+0x9C 0xF10D #PURPLE COLOR SWITCH (CUS)
+0x9D 0xF11D #CURSOR LEFT (CUS)
+0x9E 0xF10E #YELLOW COLOR SWITCH (CUS)
+0x9F 0xF10F #CYAN COLOR SWITCH (CUS)
+0xA0 0x00A0 #NO-BREAK SPACE
+0xA1 0x258C #LEFT HALF BLOCK
+0xA2 0x2584 #LOWER HALF BLOCK
+0xA3 0x2594 #UPPER ONE EIGHTH BLOCK
+0xA4 0x2581 #LOWER ONE EIGHTH BLOCK
+0xA5 0x258F #LEFT ONE EIGHTH BLOCK
+0xA6 0x2592 #MEDIUM SHADE
+0xA7 0x2595 #RIGHT ONE EIGHTH BLOCK
+0xA8 0xF12F #LOWER HALF BLOCK MEDIUM SHADE (CUS)
+0xA9 0xF13A #MEDIUM SHADE SLASHED RIGHT (CUS)
+0xAA 0xF130 #RIGHT ONE QUARTER BLOCK (CUS)
+0xAB 0x251C #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xAC 0xF134 #BLACK SMALL SQUARE LOWER RIGHT (CUS)
+0xAD 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
+0xAE 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
+0xAF 0x2582 #LOWER ONE QUARTER BLOCK
+0xB0 0x250C #BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xB1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xB2 0x252C #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xB3 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xB4 0x258E #LEFT ONE QUARTER BLOCK
+0xB5 0x258D #LEFT THREE EIGTHS BLOCK
+0xB6 0xF131 #RIGHT THREE EIGHTHS BLOCK (CUS)
+0xB7 0xF132 #UPPER ONE QUARTER BLOCK (CUS)
+0xB8 0xF133 #UPPER THREE EIGHTS BLOCK (CUS)
+0xB9 0x2583 #LOWER THREE EIGHTHS BLOCK
+0xBA 0x2713 #CHECK MARK
+0xBB 0xF135 #BLACK SMALL SQUARE LOWER LEFT (CUS)
+0xBC 0xF136 #BLACK SMALL SQUARE UPPER RIGHT (CUS)
+0xBD 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
+0xBE 0xF137 #BLACK SMALL SQUARE UPPER LEFT (CUS)
+0xBF 0xF138 #TWO SMALL BLACK SQUARES DIAGONAL LEFT TO RIGHT (CUS)
+0xC0 0x2501 #BOX DRAWINGS LIGHT HORIZONTAL
+0xC1 0x0041 #LATIN CAPITAL LETTER A
+0xC2 0x0042 #LATIN CAPITAL LETTER B
+0xC3 0x0043 #LATIN CAPITAL LETTER C
+0xC4 0x0044 #LATIN CAPITAL LETTER D
+0xC5 0x0045 #LATIN CAPITAL LETTER E
+0xC6 0x0046 #LATIN CAPITAL LETTER F
+0xC7 0x0047 #LATIN CAPITAL LETTER G
+0xC8 0x0048 #LATIN CAPITAL LETTER H
+0xC9 0x0049 #LATIN CAPITAL LETTER I
+0xCA 0x004A #LATIN CAPITAL LETTER J
+0xCB 0x004B #LATIN CAPITAL LETTER K
+0xCC 0x004C #LATIN CAPITAL LETTER L
+0xCD 0x004D #LATIN CAPITAL LETTER M
+0xCE 0x004E #LATIN CAPITAL LETTER N
+0xCF 0x004F #LATIN CAPITAL LETTER O
+0xD0 0x0050 #LATIN CAPITAL LETTER P
+0xD1 0x0051 #LATIN CAPITAL LETTER Q
+0xD2 0x0052 #LATIN CAPITAL LETTER R
+0xD3 0x0053 #LATIN CAPITAL LETTER S
+0xD4 0x0054 #LATIN CAPITAL LETTER T
+0xD5 0x0055 #LATIN CAPITAL LETTER U
+0xD6 0x0056 #LATIN CAPITAL LETTER V
+0xD7 0x0057 #LATIN CAPITAL LETTER W
+0xD8 0x0058 #LATIN CAPITAL LETTER X
+0xD9 0x0059 #LATIN CAPITAL LETTER Y
+0xDA 0x005A #LATIN CAPITAL LETTER Z
+0xDB 0x253C #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xDC 0xF12E #LEFT HALF BLOCK MEDIUM SHADE (CUS)
+0xDD 0x2502 #BOX DRAWINGS LIGHT VERTICAL
+0xDE 0x2592 #MEDIUM SHADE
+0xDF 0xF139 #MEDIUM SHADE SLASHED LEFT (CUS)
+0xE0 0x00A0 #NO-BREAK SPACE
+0xE1 0x258C #LEFT HALF BLOCK
+0xE2 0x2584 #LOWER HALF BLOCK
+0xE3 0x2594 #UPPER ONE EIGHTH BLOCK
+0xE4 0x2581 #LOWER ONE EIGHTH BLOCK
+0xE5 0x258F #LEFT ONE EIGHTH BLOCK
+0xE6 0x2592 #MEDIUM SHADE
+0xE7 0x2595 #RIGHT ONE EIGHTH BLOCK
+0xE8 0xF12F #LOWER HALF BLOCK MEDIUM SHADE (CUS)
+0xE9 0xF13A #MEDIUM SHADE SLASHED RIGHT (CUS)
+0xEA 0xF130 #RIGHT ONE QUARTER BLOCK (CUS)
+0xEB 0x251C #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xEC 0xF134 #BLACK SMALL SQUARE LOWER RIGHT (CUS)
+0xED 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
+0xEE 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
+0xEF 0x2582 #LOWER ONE QUARTER BLOCK
+0xF0 0x250C #BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xF1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xF2 0x252C #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xF3 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xF4 0x258E #LEFT ONE QUARTER BLOCK
+0xF5 0x258D #LEFT THREE EIGTHS BLOCK
+0xF6 0xF131 #RIGHT THREE EIGHTHS BLOCK (CUS)
+0xF7 0xF132 #UPPER ONE QUARTER BLOCK (CUS)
+0xF8 0xF133 #UPPER THREE EIGHTS BLOCK (CUS)
+0xF9 0x2583 #LOWER THREE EIGHTHS BLOCK
+0xFA 0x2713 #CHECK MARK
+0xFB 0xF135 #BLACK SMALL SQUARE LOWER LEFT (CUS)
+0xFC 0xF136 #BLACK SMALL SQUARE UPPER RIGHT (CUS)
+0xFD 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
+0xFE 0xF137 #BLACK SMALL SQUARE UPPER LEFT (CUS)
+0xFF 0x2592 #MEDIUM SHADE
+
diff -Naur libiconv-1.17/tests/PETSCII-UC.TXT libiconv-1.17-mono/tests/PETSCII-UC.TXT
--- libiconv-1.17/tests/PETSCII-UC.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/PETSCII-UC.TXT 2014-10-27 21:22:31.000000000 +0100
@@ -0,0 +1,273 @@
+#
+# Name: PETSCII C64 English Uppercase to Unicode Table
+# Unicode version: 3.0
+# Table version: 1.00
+# Table format: Format A
+# Date: 12/03/00
+# Authors: Linus Walleij
+# General notes: Licensed under the GNU GPL, version 2
+#
+# Format: Three tab-separated columns
+# Column #1 is the PETSCII C64 Uppercase code (in hex)
+# Column #2 is the Unicode (in hex as 0xXXXX)
+# Column #3 is the Unicode name (follows a comment sign, '#')
+#
+# The entries are in PETSCII order
+#
+0x00 0x0000 #UNDEFINED
+0x01 0x0001 #UNDEFINED
+0x02 0x0002 #UNDEFINED
+0x03 0x0003 #UNDEFINED
+0x04 0x0004 #UNDEFINED
+0x05 0xF100 #WHITE COLOR SWITCH (CUS)
+0x06 0x0006 #UNDEFINED
+0x07 0x0007 #UNDEFINED
+0x08 0xF118 #DISABLE CHARACTER SET SWITCHING (CUS)
+0x09 0xF119 #ENABLE CHARACTER SET SWITCHING (CUS)
+0x0A 0x000A #UNDEFINED
+0x0B 0x000B #UNDEFINED
+0x0C 0x000C #UNDEFINED
+0x0D 0x000D #CARRIAGE RETURN
+0x0E 0x000E #SHIFT OUT
+0x0F 0x000F #UNDEFINED
+0x10 0x0010 #UNDEFINED
+0x11 0xF11C #CURSOR DOWN (CUS)
+0x12 0xF11A #REVERSE VIDEO ON (CUS)
+0x13 0xF120 #HOME (CUS)
+0x14 0x007F #DELETE
+0x15 0x0015 #UNDEFINED
+0x16 0x0016 #UNDEFINED
+0x17 0x0017 #UNDEFINED
+0x18 0x0018 #UNDEFINED
+0x19 0x0019 #UNDEFINED
+0x1A 0x001A #UNDEFINED
+0x1B 0x001B #UNDEFINED
+0x1C 0xF101 #RED COLOR SWITCH (CUS)
+0x1D 0xF11D #CURSOR RIGHT (CUS)
+0x1E 0xF102 #GREEN COLOR SWITCH (CUS)
+0x1F 0xF103 #BLUE COLOR SWITCH (CUS)
+0x20 0x0020 #SPACE
+0x21 0x0021 #EXCLAMATION MARK
+0x22 0x0022 #QUOTATION MARK
+0x23 0x0023 #NUMBER SIGN
+0x24 0x0024 #DOLLAR SIGN
+0x25 0x0025 #PERCENT SIGN
+0x26 0x0026 #AMPERSAND
+0x27 0x0027 #APOSTROPHE
+0x28 0x0028 #LEFT PARENTHESIS
+0x29 0x0029 #RIGHT PARENTHESIS
+0x2A 0x002A #ASTERISK
+0x2B 0x002B #PLUS SIGN
+0x2C 0x002C #COMMA
+0x2D 0x002D #HYPHEN-MINUS
+0x2E 0x002E #FULL STOP
+0x2F 0x002F #SOLIDUS
+0x30 0x0030 #DIGIT ZERO
+0x31 0x0031 #DIGIT ONE
+0x32 0x0032 #DIGIT TWO
+0x33 0x0033 #DIGIT THREE
+0x34 0x0034 #DIGIT FOUR
+0x35 0x0035 #DIGIT FIVE
+0x36 0x0036 #DIGIT SIX
+0x37 0x0037 #DIGIT SEVEN
+0x38 0x0038 #DIGIT EIGHT
+0x39 0x0039 #DIGIT NINE
+0x3A 0x003A #COLON
+0x3B 0x003B #SEMICOLON
+0x3C 0x003C #LESS-THAN SIGN
+0x3D 0x003D #EQUALS SIGN
+0x3E 0x003E #GREATER-THAN SIGN
+0x3F 0x003F #QUESTION MARK
+0x40 0x0040 #COMMERCIAL AT
+0x41 0x0041 #LATIN CAPITAL LETTER A
+0x42 0x0042 #LATIN CAPITAL LETTER B
+0x43 0x0043 #LATIN CAPITAL LETTER C
+0x44 0x0044 #LATIN CAPITAL LETTER D
+0x45 0x0045 #LATIN CAPITAL LETTER E
+0x46 0x0046 #LATIN CAPITAL LETTER F
+0x47 0x0047 #LATIN CAPITAL LETTER G
+0x48 0x0048 #LATIN CAPITAL LETTER H
+0x49 0x0049 #LATIN CAPITAL LETTER I
+0x4A 0x004A #LATIN CAPITAL LETTER J
+0x4B 0x004B #LATIN CAPITAL LETTER K
+0x4C 0x004C #LATIN CAPITAL LETTER L
+0x4D 0x004D #LATIN CAPITAL LETTER M
+0x4E 0x004E #LATIN CAPITAL LETTER N
+0x4F 0x004F #LATIN CAPITAL LETTER O
+0x50 0x0050 #LATIN CAPITAL LETTER P
+0x51 0x0051 #LATIN CAPITAL LETTER Q
+0x52 0x0052 #LATIN CAPITAL LETTER R
+0x53 0x0053 #LATIN CAPITAL LETTER S
+0x54 0x0054 #LATIN CAPITAL LETTER T
+0x55 0x0055 #LATIN CAPITAL LETTER U
+0x56 0x0056 #LATIN CAPITAL LETTER V
+0x57 0x0057 #LATIN CAPITAL LETTER W
+0x58 0x0058 #LATIN CAPITAL LETTER X
+0x59 0x0059 #LATIN CAPITAL LETTER Y
+0x5A 0x005A #LATIN CAPITAL LETTER Z
+0x5B 0x005B #LEFT SQUARE BRACKET
+0x5C 0x00A3 #POUND SIGN
+0x5D 0x005D #RIGHT SQUARE BRACKET
+0x5E 0x2191 #UPWARDS ARROW
+0x5F 0x2190 #LEFTWARDS ARROW
+0x60 0x2501 #BOX DRAWINGS LIGHT HORIZONTAL
+0x61 0x2660 #BLACK SPADE SUIT
+0x62 0x2502 #BOX DRAWINGS LIGHT VERTICAL
+0x63 0x2501 #BOX DRAWINGS LIGHT HORIZONTAL
+0x64 0xF122 #BOX DRAWINGS LIGHT HORIZONTAL ONE QUARTER UP (CUS)
+0x65 0xF123 #BOX DRAWINGS LIGHT HORIZONTAL TWO QUARTERS UP (CUS)
+0x66 0xF124 #BOX DRAWINGS LIGHT HORIZONTAL ONE QUARTER DOWN (CUS)
+0x67 0xF126 #BOX DRAWINGS LIGHT VERTICAL ONE QUARTER LEFT (CUS)
+0x68 0xF128 #BOX DRAWINGS LIGHT VERTICAL ONE QUARTER RIGHT (CUS)
+0x69 0x256E #BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+0x6A 0x2570 #BOX DRAWINGS LIGHT ARC UP AND RIGHT
+0x6B 0x256F #BOX DRAWINGS LIGHT ARC UP AND LEFT
+0x6C 0xF12A #ONE EIGHTH BLOCK UP AND RIGHT (CUS)
+0x6D 0x2572 #BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+0x6E 0x2571 #BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+0x6F 0xF12B #ONE EIGHTH BLOCK DOWN AND RIGHT (CUS)
+0x70 0xF12C #ONE EIGHTH BLOCK DOWN AND LEFT (CUS)
+0x71 0x25CF #BLACK CIRCLE
+0x72 0xF125 #BOX DRAWINGS LIGHT HORIZONTAL TWO QUARTERS DOWN (CUS)
+0x73 0x2665 #BLACK HEART SUIT
+0x74 0xF127 #BOX DRAWINGS LIGHT VERTICAL TWO QUARTERS LEFT (CUS)
+0x75 0x256D #BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
+0x76 0x2573 #BOX DRAWINGS LIGHT DIAGONAL CROSS
+0x77 0x25CB #WHITE CIRCLE
+0x78 0x2663 #BLACK CLUB SUIT
+0x79 0xF129 #BOX DRAWINGS LIGHT VERTICAL TWO QUARTERS RIGHT (CUS)
+0x7A 0x2666 #BLACK DIAMOND SUIT
+0x7B 0x253C #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0x7C 0xF12E #LEFT HALF BLOCK MEDIUM SHADE (CUS)
+0x7D 0x2502 #BOX DRAWINGS LIGHT VERTICAL
+0x7E 0x03C0 #GREEK SMALL LETTER PI
+0x7F 0x25E5 #BLACK UPPER RIGHT TRIANGLE
+0x80 0x0080 #UNDEFINED
+0x81 0xF104 #ORANGE COLOR SWITCH (CUS)
+0x82 0x0082 #UNDEFINED
+0x83 0x0083 #UNDEFINED
+0x84 0x0084 #UNDEFINED
+0x85 0xF110 #FUNCTION KEY 1 (CUS)
+0x86 0xF112 #FUNCTION KEY 3 (CUS)
+0x87 0xF114 #FUNCTION KEY 5 (CUS)
+0x88 0xF116 #FUNCTION KEY 7 (CUS)
+0x89 0xF111 #FUNCTION KEY 2 (CUS)
+0x8A 0xF113 #FUNCTION KEY 4 (CUS)
+0x8B 0xF115 #FUNCTION KEY 6 (CUS)
+0x8C 0xF117 #FUNCTION KEY 8 (CUS)
+0x8D 0x000A #LINE FEED
+0x8E 0x000F #SHIFT IN
+0x8F 0x008F #UNDEFINED
+0x90 0xF105 #BLACK COLOR SWITCH (CUS)
+0x91 0xF11E #CURSOR UP (CUS)
+0x92 0xF11B #REVERSE VIDEO OFF (CUS)
+0x93 0x000C #FORM FEED
+0x94 0xF121 #INSERT (CUS)
+0x95 0xF106 #BROWN COLOR SWITCH (CUS)
+0x96 0xF107 #LIGHT RED COLOR SWITCH (CUS)
+0x97 0xF108 #GRAY 1 COLOR SWITCH (CUS)
+0x98 0xF109 #GRAY 2 COLOR SWITCH (CUS)
+0x99 0xF10A #LIGHT GREEN COLOR SWITCH (CUS)
+0x9A 0xF10B #LIGHT BLUE COLOR SWITCH (CUS)
+0x9B 0xF10C #GRAY 3 COLOR SWITCH (CUS)
+0x9C 0xF10D #PURPLE COLOR SWITCH (CUS)
+0x9D 0xF11D #CURSOR LEFT (CUS)
+0x9E 0xF10E #YELLOW COLOR SWITCH (CUS)
+0x9F 0xF10F #CYAN COLOR SWITCH (CUS)
+0xA0 0x00A0 #NO-BREAK SPACE
+0xA1 0x258C #LEFT HALF BLOCK
+0xA2 0x2584 #LOWER HALF BLOCK
+0xA3 0x2594 #UPPER ONE EIGHTH BLOCK
+0xA4 0x2581 #LOWER ONE EIGHTH BLOCK
+0xA5 0x258F #LEFT ONE EIGHTH BLOCK
+0xA6 0x2592 #MEDIUM SHADE
+0xA7 0x2595 #RIGHT ONE EIGHTH BLOCK
+0xA8 0xF12F #LOWER HALF BLOCK MEDIUM SHADE (CUS)
+0xA9 0x25E4 #BLACK UPPER LEFT TRIANGLE
+0xAA 0xF130 #RIGHT ONE QUARTER BLOCK (CUS)
+0xAB 0x251C #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xAC 0xF134 #BLACK SMALL SQUARE LOWER RIGHT (CUS)
+0xAD 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
+0xAE 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
+0xAF 0x2582 #LOWER ONE QUARTER BLOCK
+0xB0 0x250C #BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xB1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xB2 0x252C #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xB3 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xB4 0x258E #LEFT ONE QUARTER BLOCK
+0xB5 0x258D #LEFT THREE EIGTHS BLOCK
+0xB6 0xF131 #RIGHT THREE EIGHTHS BLOCK (CUS)
+0xB7 0xF132 #UPPER ONE QUARTER BLOCK (CUS)
+0xB8 0xF133 #UPPER THREE EIGHTS BLOCK (CUS)
+0xB9 0x2583 #LOWER THREE EIGHTHS BLOCK
+0xBA 0xF12D #ONE EIGHTH BLOCK UP AND LEFT (CUS)
+0xBB 0xF135 #BLACK SMALL SQUARE LOWER LEFT (CUS)
+0xBC 0xF136 #BLACK SMALL SQUARE UPPER RIGHT (CUS)
+0xBD 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
+0xBE 0xF137 #BLACK SMALL SQUARE UPPER LEFT (CUS)
+0xBF 0xF138 #TWO SMALL BLACK SQUARES DIAGONAL LEFT TO RIGHT (CUS)
+0xC0 0x2501 #BOX DRAWINGS LIGHT HORIZONTAL
+0xC1 0x2660 #BLACK SPADE SUIT
+0xC2 0x2502 #BOX DRAWINGS LIGHT VERTICAL
+0xC3 0x2501 #BOX DRAWINGS LIGHT HORIZONTAL
+0xC4 0xF122 #BOX DRAWINGS LIGHT HORIZONTAL ONE QUARTER UP (CUS)
+0xC5 0xF123 #BOX DRAWINGS LIGHT HORIZONTAL TWO QUARTERS UP (CUS)
+0xC6 0xF124 #BOX DRAWINGS LIGHT HORIZONTAL ONE QUARTER DOWN (CUS)
+0xC7 0xF126 #BOX DRAWINGS LIGHT VERTICAL ONE QUARTER LEFT (CUS)
+0xC8 0xF128 #BOX DRAWINGS LIGHT VERTICAL ONE QUARTER RIGHT (CUS)
+0xC9 0x256E #BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+0xCA 0x2570 #BOX DRAWINGS LIGHT ARC UP AND RIGHT
+0xCB 0x256F #BOX DRAWINGS LIGHT ARC UP AND LEFT
+0xCC 0xF12A #ONE EIGHTH BLOCK UP AND RIGHT (CUS)
+0xCD 0x2572 #BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+0xCE 0x2571 #BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+0xCF 0xF12B #ONE EIGHTH BLOCK DOWN AND RIGHT (CUS)
+0xD0 0xF12C #ONE EIGHTH BLOCK DOWN AND LEFT (CUS)
+0xD1 0x25CF #BLACK CIRCLE
+0xD2 0xF125 #BOX DRAWINGS LIGHT HORIZONTAL TWO QUARTERS DOWN (CUS)
+0xD3 0x2665 #BLACK HEART SUIT
+0xD4 0xF127 #BOX DRAWINGS LIGHT VERTICAL TWO QUARTERS LEFT (CUS)
+0xD5 0x256D #BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+0xD6 0x2573 #BOX DRAWINGS LIGHT DIAGONAL CROSS
+0xD7 0x25CB #WHITE CIRCLE
+0xD8 0x2663 #BLACK CLUB SUIT
+0xD9 0xF129 #BOX DRAWINGS LIGHT VERTICAL TWO QUARTERS RIGHT (CUS)
+0xDA 0x2666 #BLACK DIAMOND SUIT
+0xDB 0x253C #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xDC 0xF12E #LEFT HALF BLOCK MEDIUM SHADE (CUS)
+0xDD 0x2502 #BOX DRAWINGS LIGHT VERTICAL
+0xDE 0x03C0 #GREEK SMALL LETTER PI
+0xDF 0x25E5 #BLACK UPPER RIGHT TRIANGLE
+0xE0 0x00A0 #NO-BREAK SPACE
+0xE1 0x258C #LEFT HALF BLOCK
+0xE2 0x2584 #LOWER HALF BLOCK
+0xE3 0x2594 #UPPER ONE EIGHTH BLOCK
+0xE4 0x2581 #LOWER ONE EIGHTH BLOCK
+0xE5 0x258F #LEFT ONE EIGHTH BLOCK
+0xE6 0x2592 #MEDIUM SHADE
+0xE7 0x2595 #RIGHT ONE EIGHTH BLOCK
+0xE8 0xF12F #LOWER HALF BLOCK MEDIUM SHADE (CUS)
+0xE9 0x25E4 #BLACK UPPER LEFT TRIANGLE
+0xEA 0xF130 #RIGHT ONE QUARTER BLOCK (CUS)
+0xEB 0x251C #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xEC 0xF134 #BLACK SMALL SQUARE LOWER RIGHT (CUS)
+0xED 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
+0xEE 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
+0xEF 0x2582 #LOWER ONE QUARTER BLOCK
+0xF0 0x250C #BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xF1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xF2 0x252C #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xF3 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xF4 0x258E #LEFT ONE QUARTER BLOCK
+0xF5 0x258D #LEFT THREE EIGTHS BLOCK
+0xF6 0xF131 #RIGHT THREE EIGHTHS BLOCK (CUS)
+0xF7 0xF132 #UPPER ONE QUARTER BLOCK (CUS)
+0xF8 0xF133 #UPPER THREE EIGHTS BLOCK (CUS)
+0xF9 0x2583 #LOWER THREE EIGHTHS BLOCK
+0xFA 0xF12D #ONE EIGHTH BLOCK UP AND LEFT (CUS)
+0xFB 0xF135 #BLACK SMALL SQUARE LOWER LEFT (CUS)
+0xFC 0xF136 #BLACK SMALL SQUARE UPPER RIGHT (CUS)
+0xFD 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
+0xFE 0xF137 #BLACK SMALL SQUARE UPPER LEFT (CUS)
+0xFF 0x03C0 #GREEK SMALL LETTER PI
+
diff -Naur libiconv-1.17/tests/ZX80.TXT libiconv-1.17-mono/tests/ZX80.TXT
--- libiconv-1.17/tests/ZX80.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ZX80.TXT 2014-10-27 21:22:31.000000000 +0100
@@ -0,0 +1,305 @@
+#
+# Name: ZX 80/81 standard to Unicode
+# Unicode version: 4.0
+# Table version: 1.0
+# Table format: Format A
+# Date: 2014 October 23
+# Authors: Jerzy Kut
+#
+# Copyright (c) 1998 - 2014 Unicode, Inc. All Rights reserved.
+#
+# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+# No claims are made as to fitness for any particular purpose. No
+# warranties of any kind are expressed or implied. The recipient
+# agrees to determine applicability of information provided. If this
+# file has been provided on optical media by Unicode, Inc., the sole
+# remedy for any claim will be exchange of defective media within 90
+# days of receipt.
+#
+# Unicode, Inc. hereby grants the right to freely use the information
+# supplied in this file in the creation of products supporting the
+# Unicode Standard, and to make copies of this file in any form for
+# internal or external distribution as long as this notice remains
+# attached.
+#
+# General notes:
+#
+# This table contains the data the Unicode Consortium has on how
+# ZX80/ZX81 standard characters (ATASCII) map into Unicode.
+#
+# Format: Three tab-separated columns
+# Column 1 is the ZX code (in hex as 0xXX)
+# Column 2 is the Unicode (in hex as 0xXXXX)
+# Column 3 the Unicode name (follows a comment sign, '#')
+# Column 4 is the actual character or (follows a comment sign, '#')
+# Column 5 indicates backward compatible character set mappings
+#
+# The entries are in ZX order.
+#
+# Version history
+# 1.0 version new, by Jerzy Kut (based on ATARI8-GRAPH.TXT).
+#
+# Updated versions of this file may be found in:
+#
+#
+# Any comments or problems, contact http://www.unicode.org/reporting.html
+#
+#normal characters
+0x00 0x0020 # SPACE # ISO646
+0x01 0x2598 # QUADRANT UPPER LEFT # ▘ ISO646
+0x02 0x259D # QUADRANT UPPER RIGHT # ▝ ISO646
+0x03 0x2580 # UPPER HALF BLOCK # ▀ ISO646
+0x04 0x2596 # QUADRANT LOWER LEFT # ▖ ISO646
+0x05 0x258C # LEFT HALF BLOCK # ▌ ISO646
+0x06 0x259E # QUADRANT UPPER RIGHT AND LOWER LEFT # ▞ ISO646
+0x07 0x259B # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT # ▛ ISO646
+0x08 0x2592 # MEDIUM SHADE # ▒ ISO646
+0x09 0x2584 # LOWER SHADE HALF BLOCK # ▄ ISO646 *
+0x0A 0x2580 # UPPER SHADE HALF BLOCK # ▀ ISO646 *
+0x0B 0x0022 # QUOTATION MARK # " ASCII
+0x0C 0x00A3 # POUND SIGN # £ ISO646
+0x0D 0x0024 # DOLLAR SIGN # $ ASCII
+0x0E 0x003A # COLON # : ASCII
+0x0F 0x003F # QUESTION MARK # ? ASCII
+0x10 0x0028 # LEFT PARENTHESIS # ( ASCII
+0x11 0x0029 # RIGHT PARENTHESIS # ) ASCII
+0x12 0x003C # LESS-THAN SIGN # < ASCII
+0x13 0x003E # GREATER-THAN SIGN # > ASCII
+0x14 0x003D # EQUALS SIGN # = ASCII
+0x15 0x002B # PLUS SIGN # + ASCII
+0x16 0x002D # HYPHEN-MINUS # - ASCII
+0x17 0x002A # ASTERISK # * ASCII
+0x18 0x002F # SOLIDUS # / ASCII
+0x19 0x003B # SEMICOLON # ; ASCII
+0x1A 0x002C # COMMA # , ASCII
+0x1B 0x002E # FULL STOP # . ASCII
+0x1C 0x0030 # DIGIT ZERO # 0 ASCII
+0x1D 0x0031 # DIGIT ONE # 1 ASCII
+0x1E 0x0032 # DIGIT TWO # 2 ASCII
+0x1F 0x0033 # DIGIT THREE # 3 ASCII
+0x20 0x0034 # DIGIT FOUR # 4 ASCII
+0x21 0x0035 # DIGIT FIVE # 5 ASCII
+0x22 0x0036 # DIGIT SIX # 6 ASCII
+0x23 0x0037 # DIGIT SEVEN # 7 ASCII
+0x24 0x0038 # DIGIT EIGHT # 8 ASCII
+0x25 0x0039 # DIGIT NINE # 9 ASCII
+0x26 0x0041 # LATIN CAPITAL LETTER A # A ASCII
+0x27 0x0042 # LATIN CAPITAL LETTER B # B ASCII
+0x28 0x0043 # LATIN CAPITAL LETTER C # C ASCII
+0x29 0x0044 # LATIN CAPITAL LETTER D # D ASCII
+0x2A 0x0045 # LATIN CAPITAL LETTER E # E ASCII
+0x2B 0x0046 # LATIN CAPITAL LETTER F # F ASCII
+0x2C 0x0047 # LATIN CAPITAL LETTER G # G ASCII
+0x2D 0x0048 # LATIN CAPITAL LETTER H # H ASCII
+0x2E 0x0049 # LATIN CAPITAL LETTER I # I ASCII
+0x2F 0x004A # LATIN CAPITAL LETTER J # J ASCII
+0x30 0x004B # LATIN CAPITAL LETTER K # K ASCII
+0x31 0x004C # LATIN CAPITAL LETTER L # L ASCII
+0x32 0x004D # LATIN CAPITAL LETTER M # M ASCII
+0x33 0x004E # LATIN CAPITAL LETTER N # N ASCII
+0x34 0x004F # LATIN CAPITAL LETTER O # O ASCII
+0x35 0x0050 # LATIN CAPITAL LETTER P # P ASCII
+0x36 0x0051 # LATIN CAPITAL LETTER Q # Q ASCII
+0x37 0x0052 # LATIN CAPITAL LETTER R # R ASCII
+0x38 0x0053 # LATIN CAPITAL LETTER S # S ASCII
+0x39 0x0054 # LATIN CAPITAL LETTER T # T ASCII
+0x3A 0x0055 # LATIN CAPITAL LETTER U # U ASCII
+0x3B 0x0056 # LATIN CAPITAL LETTER V # V ASCII
+0x3C 0x0057 # LATIN CAPITAL LETTER W # W ASCII
+0x3D 0x0058 # LATIN CAPITAL LETTER X # X ASCII
+0x3E 0x0059 # LATIN CAPITAL LETTER Y # Y ASCII
+0x3F 0x005A # LATIN CAPITAL LETTER Z # Z ASCII
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4A 0x004A
+0x4B 0x004B
+0x4C 0x004C
+0x4D 0x004D
+0x4E 0x004E
+0x4F 0x004F
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5A 0x005A
+0x5B 0x005B
+0x5C 0x005C
+0x5D 0x005D
+0x5E 0x005E
+0x5F 0x005F
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6A 0x006A
+0x6B 0x006B
+0x6C 0x006C
+0x6D 0x006D
+0x6E 0x006E
+0x6F 0x006F
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7A 0x007A
+0x7B 0x007B
+0x7C 0x007C
+0x7D 0x007D
+0x7E 0x007E
+0x7F 0x007F
+#inverted characters
+0x80 0x2588 # FULL BLOCK # █ ISO646
+0x81 0x259F # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT # ▟ ISO646
+0x82 0x2599 # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT # ▙ ISO646
+0x83 0x2584 # LOWER HALF BLOCK # ▄ ISO646
+0x84 0x259C # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT # ▜ ISO646
+0x85 0x2590 # RIGHT HALF BLOCK # ▐ ISO646
+0x86 0x259A # QUADRANT UPPER LEFT AND LOWER RIGHT # ▚ ISO646
+0x87 0x2597 # QUADRANT LOWER RIGHT # ▗ ISO646
+0x88 0x2592 # MEDIUM SHADE # ▒ ISO646 *
+0x89 0x2584 # LOWER SHADE HALF BLOCK # ▄ ISO646 *
+0x8A 0x2580 # UPPER SHADE HALF BLOCK # ▀ ISO646 *
+0x8B 0x0022 # QUOTATION MARK # " ASCII
+0x8C 0x00A3 # POUND SIGN # £ ISO646
+0x8D 0x0024 # DOLLAR SIGN # $ ASCII
+0x8E 0x003A # COLON # : ASCII
+0x8F 0x003F # QUESTION MARK # ? ASCII
+0x90 0x0028 # LEFT PARENTHESIS # ( ASCII
+0x91 0x0029 # RIGHT PARENTHESIS # ) ASCII
+0x92 0x003C # LESS-THAN SIGN # < ASCII
+0x93 0x003E # GREATER-THAN SIGN # > ASCII
+0x94 0x003D # EQUALS SIGN # = ASCII
+0x95 0x002B # PLUS SIGN # + ASCII
+0x96 0x002D # HYPHEN-MINUS # - ASCII
+0x97 0x002A # ASTERISK # * ASCII
+0x98 0x002F # SOLIDUS # / ASCII
+0x99 0x003B # SEMICOLON # ; ASCII
+0x9A 0x002C # COMMA # , ASCII
+0x9B 0x002E # FULL STOP # . ASCII
+0x9C 0x0030 # DIGIT ZERO # 0 ASCII
+0x9D 0x0031 # DIGIT ONE # 1 ASCII
+0x9E 0x0032 # DIGIT TWO # 2 ASCII
+0x9F 0x0033 # DIGIT THREE # 3 ASCII
+0xA0 0x0034 # DIGIT FOUR # 4 ASCII
+0xA1 0x0035 # DIGIT FIVE # 5 ASCII
+0xA2 0x0036 # DIGIT SIX # 6 ASCII
+0xA3 0x0037 # DIGIT SEVEN # 7 ASCII
+0xA4 0x0038 # DIGIT EIGHT # 8 ASCII
+0xA5 0x0039 # DIGIT NINE # 9 ASCII
+0xA6 0x0041 # LATIN CAPITAL LETTER A # A ASCII
+0xA7 0x0042 # LATIN CAPITAL LETTER B # B ASCII
+0xA8 0x0043 # LATIN CAPITAL LETTER C # C ASCII
+0xA9 0x0044 # LATIN CAPITAL LETTER D # D ASCII
+0xAA 0x0045 # LATIN CAPITAL LETTER E # E ASCII
+0xAB 0x0046 # LATIN CAPITAL LETTER F # F ASCII
+0xAC 0x0047 # LATIN CAPITAL LETTER G # G ASCII
+0xAD 0x0048 # LATIN CAPITAL LETTER H # H ASCII
+0xAE 0x0049 # LATIN CAPITAL LETTER I # I ASCII
+0xAF 0x004A # LATIN CAPITAL LETTER J # J ASCII
+0xB0 0x004B # LATIN CAPITAL LETTER K # K ASCII
+0xB1 0x004C # LATIN CAPITAL LETTER L # L ASCII
+0xB2 0x004D # LATIN CAPITAL LETTER M # M ASCII
+0xB3 0x004E # LATIN CAPITAL LETTER N # N ASCII
+0xB4 0x004F # LATIN CAPITAL LETTER O # O ASCII
+0xB5 0x0050 # LATIN CAPITAL LETTER P # P ASCII
+0xB6 0x0051 # LATIN CAPITAL LETTER Q # Q ASCII
+0xB7 0x0052 # LATIN CAPITAL LETTER R # R ASCII
+0xB8 0x0053 # LATIN CAPITAL LETTER S # S ASCII
+0xB9 0x0054 # LATIN CAPITAL LETTER T # T ASCII
+0xBA 0x0055 # LATIN CAPITAL LETTER U # U ASCII
+0xBB 0x0056 # LATIN CAPITAL LETTER V # V ASCII
+0xBC 0x0057 # LATIN CAPITAL LETTER W # W ASCII
+0xBD 0x0058 # LATIN CAPITAL LETTER X # X ASCII
+0xBE 0x0059 # LATIN CAPITAL LETTER Y # Y ASCII
+0xBF 0x005A # LATIN CAPITAL LETTER Z # Z ASCII
+0xC0 0x00C0
+0xC1 0x00C1
+0xC2 0x00C2
+0xC3 0x00C3
+0xC4 0x00C4
+0xC5 0x00C5
+0xC6 0x00C6
+0xC7 0x00C7
+0xC8 0x00C8
+0xC9 0x00C9
+0xCA 0x00CA
+0xCB 0x00CB
+0xCC 0x00CC
+0xCD 0x00CD
+0xCE 0x00CE
+0xCF 0x00CF
+0xD0 0x00D0
+0xD1 0x00D1
+0xD2 0x00D2
+0xD3 0x00D3
+0xD4 0x00D4
+0xD5 0x00D5
+0xD6 0x00D6
+0xD7 0x00D7
+0xD8 0x00D8
+0xD9 0x00D9
+0xDA 0x00DA
+0xDB 0x00DB
+0xDC 0x00DC
+0xDD 0x00DD
+0xDE 0x00DE
+0xDF 0x00DF
+0xE0 0x00E0
+0xE1 0x00E1
+0xE2 0x00E2
+0xE3 0x00E3
+0xE4 0x00E4
+0xE5 0x00E5
+0xE6 0x00E6
+0xE7 0x00E7
+0xE8 0x00E8
+0xE9 0x00E9
+0xEA 0x00EA
+0xEB 0x00EB
+0xEC 0x00EC
+0xED 0x00ED
+0xEE 0x00EE
+0xEF 0x00EF
+0xF0 0x00F0
+0xF1 0x00F1
+0xF2 0x00F2
+0xF3 0x00F3
+0xF4 0x00F4
+0xF5 0x00F5
+0xF6 0x00F6
+0xF7 0x00F7
+0xF8 0x00F8
+0xF9 0x00F9
+0xFA 0x00FA
+0xFB 0x00FB
+0xFC 0x00FC
+0xFD 0x00FD
+0xFE 0x00FE
+0xFF 0x00FF
+
diff -Naur libiconv-1.17/tests/ZX82-PL.TXT libiconv-1.17-mono/tests/ZX82-PL.TXT
--- libiconv-1.17/tests/ZX82-PL.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ZX82-PL.TXT 2014-10-27 21:22:31.000000000 +0100
@@ -0,0 +1,285 @@
+#
+# Name: Sinclair ZX Spectrum+ 48K Character Set to Unicode
+# Unicode version: 4.0
+# Table version: 1.0
+# Table format: Format A
+# Date: 2004 December 02
+# Authors: Michael Zaretski
+# Jerzy Kut
+#
+# Format: Three tab-separated columns
+# Column #1 is the ZX Spectrum Character Set code (in hex as 0xXX)
+# Column #2 is the Unicode (in hex as 0xXXXX)
+# Column #3 the Unicode name (follows a comment sign, '#')
+#
+# The entries are in ZX Spectrum Character Set order.
+#
+# Mapping was fetched 2014 October 23 from http://eclecticsatyr.hostultra.com/speccs.txt by Jerzy Kut
+#
+
+#0x00 to 0x1F are proprietary control codes, unmappable to Unicode
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0A 0x000A
+0x0B 0x000B
+0x0C 0x000C
+0x0D 0x000D
+0x0E 0x000E
+0x0F 0x000F
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1A 0x001A
+0x1B 0x001B
+0x1C 0x001C
+0x1D 0x001D
+0x1E 0x001E
+0x1F 0x001F
+0x20 0x0020 # SPACE
+0x21 0x0021 # ! EXCLAMATION MARK
+0x22 0x0022 # " QUOTATION MARK
+0x23 0x0023 # # NUMBER SIGN
+0x24 0x0024 # $ DOLLAR SIGN
+0x25 0x0025 # % PERCENT SIGN
+0x26 0x0026 # & AMPERSAND
+0x27 0x0027 # ' APOSTROPHE
+0x28 0x0028 # ( LEFT PARENTHESIS
+0x29 0x0029 # ) RIGHT PARENTHESIS
+0x2A 0x002A # * ASTERISK
+0x2B 0x002B # + PLUS SIGN
+0x2C 0x002C # , COMMA
+0x2D 0x002D # - HYPHEN-MINUS
+0x2E 0x002E # . FULL STOP
+0x2F 0x002F # / SOLIDUS
+0x30 0x0030 # 0 DIGIT ZERO
+0x31 0x0031 # 1 DIGIT ONE
+0x32 0x0032 # 2 DIGIT TWO
+0x33 0x0033 # 3 DIGIT THREE
+0x34 0x0034 # 4 DIGIT FOUR
+0x35 0x0035 # 5 DIGIT FIVE
+0x36 0x0036 # 6 DIGIT SIX
+0x37 0x0037 # 7 DIGIT SEVEN
+0x38 0x0038 # 8 DIGIT EIGHT
+0x39 0x0039 # 9 DIGIT NINE
+0x3A 0x003A # : COLON
+0x3B 0x003B # ; SEMICOLON
+0x3C 0x003C # < LESS-THAN SIGN
+0x3D 0x003D # = EQUALS SIGN
+0x3E 0x003E # > GREATER-THAN SIGN
+0x3F 0x003F # ? QUESTION MARK
+0x40 0x0040 # @ COMMERCIAL AT
+0x41 0x0041 # A LATIN CAPITAL LETTER A
+0x42 0x0042 # B LATIN CAPITAL LETTER B
+0x43 0x0043 # C LATIN CAPITAL LETTER C
+0x44 0x0044 # D LATIN CAPITAL LETTER D
+0x45 0x0045 # E LATIN CAPITAL LETTER E
+0x46 0x0046 # F LATIN CAPITAL LETTER F
+0x47 0x0047 # G LATIN CAPITAL LETTER G
+0x48 0x0048 # H LATIN CAPITAL LETTER H
+0x49 0x0049 # I LATIN CAPITAL LETTER I
+0x4A 0x004A # J LATIN CAPITAL LETTER J
+0x4B 0x004B # K LATIN CAPITAL LETTER K
+0x4C 0x004C # L LATIN CAPITAL LETTER L
+0x4D 0x004D # M LATIN CAPITAL LETTER M
+0x4E 0x004E # N LATIN CAPITAL LETTER N
+0x4F 0x004F # O LATIN CAPITAL LETTER O
+0x50 0x0050 # P LATIN CAPITAL LETTER P
+0x51 0x0051 # Q LATIN CAPITAL LETTER Q
+0x52 0x0052 # R LATIN CAPITAL LETTER R
+0x53 0x0053 # S LATIN CAPITAL LETTER S
+0x54 0x0054 # T LATIN CAPITAL LETTER T
+0x55 0x0055 # U LATIN CAPITAL LETTER U
+0x56 0x0056 # V LATIN CAPITAL LETTER V
+0x57 0x0057 # W LATIN CAPITAL LETTER W
+0x58 0x0058 # X LATIN CAPITAL LETTER X
+0x59 0x0059 # Y LATIN CAPITAL LETTER Y
+0x5A 0x005A # Z LATIN CAPITAL LETTER Z
+0x5B 0x005B # [ LEFT SQUARE BRACKET
+0x5C 0x005C # \ REVERSE SOLIDUS
+0x5D 0x005D # ] RIGHT SQUARE BRACKET
+0x5E 0x2191 # ↑ UPWARDS ARROW
+0x5F 0x005F # _ LOW LINE
+0x60 0x00A3 # £ POUND SIGN
+0x61 0x0061 # a LATIN SMALL LETTER A
+0x62 0x0062 # b LATIN SMALL LETTER B
+0x63 0x0063 # c LATIN SMALL LETTER C
+0x64 0x0064 # d LATIN SMALL LETTER D
+0x65 0x0065 # e LATIN SMALL LETTER E
+0x66 0x0066 # f LATIN SMALL LETTER F
+0x67 0x0067 # g LATIN SMALL LETTER G
+0x68 0x0068 # h LATIN SMALL LETTER H
+0x69 0x0069 # i LATIN SMALL LETTER I
+0x6A 0x006A # j LATIN SMALL LETTER J
+0x6B 0x006B # k LATIN SMALL LETTER K
+0x6C 0x006C # l LATIN SMALL LETTER L
+0x6D 0x006D # m LATIN SMALL LETTER M
+0x6E 0x006E # n LATIN SMALL LETTER N
+0x6F 0x006F # o LATIN SMALL LETTER O
+0x70 0x0070 # p LATIN SMALL LETTER P
+0x71 0x0071 # q LATIN SMALL LETTER Q
+0x72 0x0072 # r LATIN SMALL LETTER R
+0x73 0x0073 # s LATIN SMALL LETTER S
+0x74 0x0074 # t LATIN SMALL LETTER T
+0x75 0x0075 # u LATIN SMALL LETTER U
+0x76 0x0076 # v LATIN SMALL LETTER V
+0x77 0x0077 # w LATIN SMALL LETTER W
+0x78 0x0078 # x LATIN SMALL LETTER X
+0x79 0x0079 # y LATIN SMALL LETTER Y
+0x7A 0x007A # z LATIN SMALL LETTER Z
+0x7B 0x007B # { LEFT CURLY BRACKET
+0x7C 0x007C # | VERTICAL LINE
+0x7D 0x007D # } RIGHT CURLY BRACKET
+0x7E 0x007E # ~ TILDE
+0x7F 0x00A9 # © COPYRIGHT SIGN
+#0x80 is actually a blank block, the opposite of 0x8F, Unicode 0x2588
+0x80 0x0141 # LATIN CAPITAL LETTER L WITH STROKE # Ł ISO646
+0x81 0x0142 # LATIN SMALL LETTER L WITH STROKE # ł ISO646
+0x82 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK # Ą ISO646
+0x83 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK # Ę ISO646
+0x84 0x0105 # LATIN SMALL LETTER A WITH OGONEK # ą ISO646
+0x85 0x0119 # LATIN SMALL LETTER E WITH OGONEK # ę ISO646
+0x86 0x015A # LATIN CAPITAL LETTER S WITH ACUTE # Ś ISO646
+0x87 0x015B # LATIN SMALL LETTER S WITH ACUTE # ś ISO646
+0x88 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE # Ć ISO646
+0x89 0x0107 # LATIN SMALL LETTER C WITH ACUTE # ć ISO646
+0x8A 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE # Ż ISO646
+0x8B 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE # ż ISO646
+0x8C 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE # Ź ISO646
+0x8D 0x017A # LATIN SMALL LETTER Z WITH ACUTE # ź ISO646
+0x8E 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE # Ó ISO646
+0x8F 0x00F3 # LATIN SMALL LETTER O WITH ACUTE # ó ISO646
+#0x90 to 0xA4 are user-defined graphics
+0x90 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE # Ń ISO646
+0x91 0x0144 # LATIN SMALL LETTER N WITH ACUTE # ń ISO646
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9A 0x009A
+0x9B 0x009B
+0x9C 0x009C
+0x9D 0x009D
+0x9E 0x009E
+0x9F 0x009F
+0xA0 0x00A0
+0xA1 0x00A1
+0xA2 0x00A2
+#0xA3 is SPECTRUM token in 128K BASIC
+0xA3 0x00A3
+#0xA4 is PLAY token in 128K BASIC
+0xA4 0x00A4
+#0xA5 to 0xFF except 0xC7 to 0xC9 are BASIC tokens
+0xA5 0x00A5
+0xA6 0x00A6
+0xA7 0x00A7
+0xA8 0x00A8
+0xA9 0x00A9
+0xAA 0x00AA
+0xAB 0x00AB
+0xAC 0x00AC
+0xAD 0x00AD
+0xAE 0x00AE
+0xAF 0x00AF
+0xB0 0x00B0
+0xB1 0x00B1
+0xB2 0x00B2
+0xB3 0x00B3
+0xB4 0x00B4
+0xB5 0x00B5
+0xB6 0x00B6
+0xB7 0x00B7
+0xB8 0x00B8
+0xB9 0x00B9
+0xBA 0x00BA
+0xBB 0x00BB
+0xBC 0x00BC
+0xBD 0x00BD
+0xBE 0x00BE
+0xBF 0x00BF
+0xC0 0x00C0
+0xC1 0x00C1
+0xC2 0x00C2
+0xC3 0x00C3
+0xC4 0x00C4
+0xC5 0x00C5
+0xC6 0x00C6
+#0xC7 maps to 0xA03C 0xA03D (LESS-THAN SIGN, EQUALS SIGN)
+0xC7 0x00C7
+#0xC8 maps to 0xA03E 0xA03D (GREATER-THAN SIGN, EQUALS SIGN)
+0xC8 0x00C8
+#0xC9 maps to 0xA03C 0xA03E (LESS-THAN SIGN, GREATER-THAN SIGN)
+0xC9 0x00C9
+0xCA 0x00CA
+0xCB 0x00CB
+0xCC 0x00CC
+0xCD 0x00CD
+0xCE 0x00CE
+0xCF 0x00CF
+0xD0 0x00D0
+0xD1 0x00D1
+0xD2 0x00D2
+0xD3 0x00D3
+0xD4 0x00D4
+0xD5 0x00D5
+0xD6 0x00D6
+0xD7 0x00D7
+0xD8 0x00D8
+0xD9 0x00D9
+0xDA 0x00DA
+0xDB 0x00DB
+0xDC 0x00DC
+0xDD 0x00DD
+0xDE 0x00DE
+0xDF 0x00DF
+0xE0 0x00E0
+0xE1 0x00E1
+0xE2 0x00E2
+0xE3 0x00E3
+0xE4 0x00E4
+0xE5 0x00E5
+0xE6 0x00E6
+0xE7 0x00E7
+0xE8 0x00E8
+0xE9 0x00E9
+0xEA 0x00EA
+0xEB 0x00EB
+0xEC 0x00EC
+0xED 0x00ED
+0xEE 0x00EE
+0xEF 0x00EF
+0xF0 0x00F0
+0xF1 0x00F1
+0xF2 0x00F2
+0xF3 0x00F3
+0xF4 0x00F4
+0xF5 0x00F5
+0xF6 0x00F6
+0xF7 0x00F7
+0xF8 0x00F8
+0xF9 0x00F9
+0xFA 0x00FA
+0xFB 0x00FB
+0xFC 0x00FC
+0xFD 0x00FD
+0xFE 0x00FE
+0xFF 0x00FF
+
diff -Naur libiconv-1.17/tests/ZX82.TXT libiconv-1.17-mono/tests/ZX82.TXT
--- libiconv-1.17/tests/ZX82.TXT 1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.17-mono/tests/ZX82.TXT 2014-10-27 21:22:31.000000000 +0100
@@ -0,0 +1,285 @@
+#
+# Name: Sinclair ZX Spectrum+ 48K Character Set to Unicode
+# Unicode version: 4.0
+# Table version: 1.0
+# Table format: Format A
+# Date: 2004 December 02
+# Authors: Michael Zaretski
+# Jerzy Kut
+#
+# Format: Three tab-separated columns
+# Column #1 is the ZX Spectrum Character Set code (in hex as 0xXX)
+# Column #2 is the Unicode (in hex as 0xXXXX)
+# Column #3 the Unicode name (follows a comment sign, '#')
+#
+# The entries are in ZX Spectrum Character Set order.
+#
+# Mapping was fetched 2014 October 23 from http://eclecticsatyr.hostultra.com/speccs.txt by Jerzy Kut
+#
+
+#0x00 to 0x1F are proprietary control codes, unmappable to Unicode
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0A 0x000A
+0x0B 0x000B
+0x0C 0x000C
+0x0D 0x000D
+0x0E 0x000E
+0x0F 0x000F
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1A 0x001A
+0x1B 0x001B
+0x1C 0x001C
+0x1D 0x001D
+0x1E 0x001E
+0x1F 0x001F
+0x20 0x0020 # SPACE
+0x21 0x0021 # ! EXCLAMATION MARK
+0x22 0x0022 # " QUOTATION MARK
+0x23 0x0023 # # NUMBER SIGN
+0x24 0x0024 # $ DOLLAR SIGN
+0x25 0x0025 # % PERCENT SIGN
+0x26 0x0026 # & AMPERSAND
+0x27 0x0027 # ' APOSTROPHE
+0x28 0x0028 # ( LEFT PARENTHESIS
+0x29 0x0029 # ) RIGHT PARENTHESIS
+0x2A 0x002A # * ASTERISK
+0x2B 0x002B # + PLUS SIGN
+0x2C 0x002C # , COMMA
+0x2D 0x002D # - HYPHEN-MINUS
+0x2E 0x002E # . FULL STOP
+0x2F 0x002F # / SOLIDUS
+0x30 0x0030 # 0 DIGIT ZERO
+0x31 0x0031 # 1 DIGIT ONE
+0x32 0x0032 # 2 DIGIT TWO
+0x33 0x0033 # 3 DIGIT THREE
+0x34 0x0034 # 4 DIGIT FOUR
+0x35 0x0035 # 5 DIGIT FIVE
+0x36 0x0036 # 6 DIGIT SIX
+0x37 0x0037 # 7 DIGIT SEVEN
+0x38 0x0038 # 8 DIGIT EIGHT
+0x39 0x0039 # 9 DIGIT NINE
+0x3A 0x003A # : COLON
+0x3B 0x003B # ; SEMICOLON
+0x3C 0x003C # < LESS-THAN SIGN
+0x3D 0x003D # = EQUALS SIGN
+0x3E 0x003E # > GREATER-THAN SIGN
+0x3F 0x003F # ? QUESTION MARK
+0x40 0x0040 # @ COMMERCIAL AT
+0x41 0x0041 # A LATIN CAPITAL LETTER A
+0x42 0x0042 # B LATIN CAPITAL LETTER B
+0x43 0x0043 # C LATIN CAPITAL LETTER C
+0x44 0x0044 # D LATIN CAPITAL LETTER D
+0x45 0x0045 # E LATIN CAPITAL LETTER E
+0x46 0x0046 # F LATIN CAPITAL LETTER F
+0x47 0x0047 # G LATIN CAPITAL LETTER G
+0x48 0x0048 # H LATIN CAPITAL LETTER H
+0x49 0x0049 # I LATIN CAPITAL LETTER I
+0x4A 0x004A # J LATIN CAPITAL LETTER J
+0x4B 0x004B # K LATIN CAPITAL LETTER K
+0x4C 0x004C # L LATIN CAPITAL LETTER L
+0x4D 0x004D # M LATIN CAPITAL LETTER M
+0x4E 0x004E # N LATIN CAPITAL LETTER N
+0x4F 0x004F # O LATIN CAPITAL LETTER O
+0x50 0x0050 # P LATIN CAPITAL LETTER P
+0x51 0x0051 # Q LATIN CAPITAL LETTER Q
+0x52 0x0052 # R LATIN CAPITAL LETTER R
+0x53 0x0053 # S LATIN CAPITAL LETTER S
+0x54 0x0054 # T LATIN CAPITAL LETTER T
+0x55 0x0055 # U LATIN CAPITAL LETTER U
+0x56 0x0056 # V LATIN CAPITAL LETTER V
+0x57 0x0057 # W LATIN CAPITAL LETTER W
+0x58 0x0058 # X LATIN CAPITAL LETTER X
+0x59 0x0059 # Y LATIN CAPITAL LETTER Y
+0x5A 0x005A # Z LATIN CAPITAL LETTER Z
+0x5B 0x005B # [ LEFT SQUARE BRACKET
+0x5C 0x005C # \ REVERSE SOLIDUS
+0x5D 0x005D # ] RIGHT SQUARE BRACKET
+0x5E 0x2191 # ↑ UPWARDS ARROW
+0x5F 0x005F # _ LOW LINE
+0x60 0x00A3 # £ POUND SIGN
+0x61 0x0061 # a LATIN SMALL LETTER A
+0x62 0x0062 # b LATIN SMALL LETTER B
+0x63 0x0063 # c LATIN SMALL LETTER C
+0x64 0x0064 # d LATIN SMALL LETTER D
+0x65 0x0065 # e LATIN SMALL LETTER E
+0x66 0x0066 # f LATIN SMALL LETTER F
+0x67 0x0067 # g LATIN SMALL LETTER G
+0x68 0x0068 # h LATIN SMALL LETTER H
+0x69 0x0069 # i LATIN SMALL LETTER I
+0x6A 0x006A # j LATIN SMALL LETTER J
+0x6B 0x006B # k LATIN SMALL LETTER K
+0x6C 0x006C # l LATIN SMALL LETTER L
+0x6D 0x006D # m LATIN SMALL LETTER M
+0x6E 0x006E # n LATIN SMALL LETTER N
+0x6F 0x006F # o LATIN SMALL LETTER O
+0x70 0x0070 # p LATIN SMALL LETTER P
+0x71 0x0071 # q LATIN SMALL LETTER Q
+0x72 0x0072 # r LATIN SMALL LETTER R
+0x73 0x0073 # s LATIN SMALL LETTER S
+0x74 0x0074 # t LATIN SMALL LETTER T
+0x75 0x0075 # u LATIN SMALL LETTER U
+0x76 0x0076 # v LATIN SMALL LETTER V
+0x77 0x0077 # w LATIN SMALL LETTER W
+0x78 0x0078 # x LATIN SMALL LETTER X
+0x79 0x0079 # y LATIN SMALL LETTER Y
+0x7A 0x007A # z LATIN SMALL LETTER Z
+0x7B 0x007B # { LEFT CURLY BRACKET
+0x7C 0x007C # | VERTICAL LINE
+0x7D 0x007D # } RIGHT CURLY BRACKET
+0x7E 0x007E # ~ TILDE
+0x7F 0x00A9 # © COPYRIGHT SIGN
+#0x80 is actually a blank block, the opposite of 0x8F, Unicode 0x2588
+0x80 0x00A0 # NO-BREAK SPACE
+0x81 0x259D # ▝ QUADRANT UPPER RIGHT
+0x82 0x2598 # ▘ QUADRANT UPPER LEFT
+0x83 0x2580 # ▀ UPPER HALF BLOCK
+0x84 0x2597 # ▗ QUADRANT LOWER RIGHT
+0x85 0x2590 # ▐ RIGHT HALF BLOCK
+0x86 0x259A # ▚ QUADRANT UPPER LEFT AND LOWER RIGHT
+0x87 0x259C # ▜ QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
+0x88 0x2596 # ▖ QUADRANT LOWER LEFT
+0x89 0x259E # ▞ QUADRANT UPPER RIGHT AND LOWER LEFT
+0x8A 0x258C # ▌ LEFT HALF BLOCK
+0x8B 0x259B # ▛ QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
+0x8C 0x2584 # ▄ LOWER HALF BLOCK
+0x8D 0x259F # ▟ QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
+0x8E 0x2599 # ▙ QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
+0x8F 0x2588 # █ FULL BLOCK
+#0x90 to 0xA4 are user-defined graphics
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9A 0x009A
+0x9B 0x009B
+0x9C 0x009C
+0x9D 0x009D
+0x9E 0x009E
+0x9F 0x009F
+0xA0 0x00A0
+0xA1 0x00A1
+0xA2 0x00A2
+#0xA3 is SPECTRUM token in 128K BASIC
+0xA3 0x00A3
+#0xA4 is PLAY token in 128K BASIC
+0xA4 0x00A4
+#0xA5 to 0xFF except 0xC7 to 0xC9 are BASIC tokens
+0xA5 0x00A5
+0xA6 0x00A6
+0xA7 0x00A7
+0xA8 0x00A8
+0xA9 0x00A9
+0xAA 0x00AA
+0xAB 0x00AB
+0xAC 0x00AC
+0xAD 0x00AD
+0xAE 0x00AE
+0xAF 0x00AF
+0xB0 0x00B0
+0xB1 0x00B1
+0xB2 0x00B2
+0xB3 0x00B3
+0xB4 0x00B4
+0xB5 0x00B5
+0xB6 0x00B6
+0xB7 0x00B7
+0xB8 0x00B8
+0xB9 0x00B9
+0xBA 0x00BA
+0xBB 0x00BB
+0xBC 0x00BC
+0xBD 0x00BD
+0xBE 0x00BE
+0xBF 0x00BF
+0xC0 0x00C0
+0xC1 0x00C1
+0xC2 0x00C2
+0xC3 0x00C3
+0xC4 0x00C4
+0xC5 0x00C5
+0xC6 0x00C6
+#0xC7 maps to 0xA03C 0xA03D (LESS-THAN SIGN, EQUALS SIGN)
+0xC7 0x00C7
+#0xC8 maps to 0xA03E 0xA03D (GREATER-THAN SIGN, EQUALS SIGN)
+0xC8 0x00C8
+#0xC9 maps to 0xA03C 0xA03E (LESS-THAN SIGN, GREATER-THAN SIGN)
+0xC9 0x00C9
+0xCA 0x00CA
+0xCB 0x00CB
+0xCC 0x00CC
+0xCD 0x00CD
+0xCE 0x00CE
+0xCF 0x00CF
+0xD0 0x00D0
+0xD1 0x00D1
+0xD2 0x00D2
+0xD3 0x00D3
+0xD4 0x00D4
+0xD5 0x00D5
+0xD6 0x00D6
+0xD7 0x00D7
+0xD8 0x00D8
+0xD9 0x00D9
+0xDA 0x00DA
+0xDB 0x00DB
+0xDC 0x00DC
+0xDD 0x00DD
+0xDE 0x00DE
+0xDF 0x00DF
+0xE0 0x00E0
+0xE1 0x00E1
+0xE2 0x00E2
+0xE3 0x00E3
+0xE4 0x00E4
+0xE5 0x00E5
+0xE6 0x00E6
+0xE7 0x00E7
+0xE8 0x00E8
+0xE9 0x00E9
+0xEA 0x00EA
+0xEB 0x00EB
+0xEC 0x00EC
+0xED 0x00ED
+0xEE 0x00EE
+0xEF 0x00EF
+0xF0 0x00F0
+0xF1 0x00F1
+0xF2 0x00F2
+0xF3 0x00F3
+0xF4 0x00F4
+0xF5 0x00F5
+0xF6 0x00F6
+0xF7 0x00F7
+0xF8 0x00F8
+0xF9 0x00F9
+0xFA 0x00FA
+0xFB 0x00FB
+0xFC 0x00FC
+0xFD 0x00FD
+0xFE 0x00FE
+0xFF 0x00FF
+
diff -Naur libiconv-1.17/tools/8bit_tab_to_h.c libiconv-1.17-mono/tools/8bit_tab_to_h.c
--- libiconv-1.17/tools/8bit_tab_to_h.c 2022-01-23 21:31:05.000000000 +0100
+++ libiconv-1.17-mono/tools/8bit_tab_to_h.c 2022-07-04 16:05:49.532506275 +0200
@@ -339,6 +339,7 @@
struct { int minline; int maxline; int usecount; const char* suffix; } tables[0x2000];
bool need_c;
bool fix_0000;
+ bool first;
int i, j, p, j1, j2, t;
for (j = 0; j < 0x10000; j++)
@@ -444,6 +445,7 @@
fprintf(f, "{\n");
if (need_c)
fprintf(f, " unsigned char c = 0;\n");
+ first = true;
for (j1 = 0; j1 < 0x2000;) {
t = line[j1];
for (j2 = j1; j2 < 0x2000 && line[j2] == t; j2++);
@@ -454,8 +456,10 @@
}
if (t == -2) {
} else {
- if (j1 == 0)
+ if (first) {
fprintf(f, " ");
+ first = false;
+ }
else
fprintf(f, " else ");
if (t >= 0 && tables[t].usecount == 0) abort();
diff -Naur libiconv-1.17/tools/Makefile libiconv-1.17-mono/tools/Makefile
--- libiconv-1.17/tools/Makefile 2022-01-23 21:36:11.000000000 +0100
+++ libiconv-1.17-mono/tools/Makefile 2022-07-04 15:51:22.490157186 +0200
@@ -3,6 +3,24 @@
# You have to unpack the conversion-tables.tar.gz package.
TABLESDIR = /home/bruno/chs/conversion-tables
+EXTRAS = \
+ atari8_graph.h \
+ atari8_int.h \
+ atari8_karen.h \
+ atari8_awp.h \
+ atari8_xlent.h \
+ atari8_panther.h \
+ atari8_pe.h \
+ atari8_eurotekst.h \
+ atari8_capek.h \
+ atari8_tcheko.h \
+ zx80.h \
+ zx82.h \
+ zx82_pl.h \
+ petscii_uc.h \
+ petscii_lc.h \
+ cp895_cp867.h
+
ALL = \
ascii.h \
iso8859_1.h \
@@ -177,10 +195,13 @@
tds565.h \
atarist.h \
riscos1.h \
- cjk_variants.h
+ cjk_variants.h \
+ $(EXTRAS)
all : $(ALL)
+extras: $(EXTRAS)
+
ascii.h : $(TABLESDIR)/glibc-2.1-iconv/ASCII.TXT 8bit_tab_to_h
./8bit_tab_to_h ASCII ascii < $<
@@ -735,11 +756,59 @@
riscos1.h : $(TABLESDIR)/recode-cvs/RISCOS-LATIN1.TXT 8bit_tab_to_h
(echo '#'; cat $<) | ./8bit_tab_to_h RISCOS-LATIN1 riscos1 > $@
-
cjk_variants.h : $(TABLESDIR)/yasuoka/UniVariants cjk_variants
./cjk_variants < $< > $@
+atari8_graph.h : ../tests/ATARI8-GRAPH.TXT
+ ./8bit_tab_to_h "Atari 8-bit Semi-graphic ATASCII" atari8_graph < $< > $@
+
+atari8_int.h : ../tests/ATARI8-INT.TXT
+ ./8bit_tab_to_h "Atari 8-bit International ATASCII2" atari8_int < $< > $@
+
+atari8_karen.h : ../tests/ATARI8-KAREN.TXT
+ ./8bit_tab_to_h "Atari 8-bit Polish P.Z.Karen ATASCII" atari8_karen < $< > $@
+
+atari8_awp.h : ../tests/ATARI8-AWP.TXT
+ ./8bit_tab_to_h "Atari 8-bit Polish Atari Writer + ATASCII" atari8_awp < $< > $@
+
+atari8_xlent.h : ../tests/ATARI8-XLENT.TXT
+ ./8bit_tab_to_h "Atari 8-bit Polish First XLEnt Word Processor ATASCII" atari8_xlent < $< > $@
+
+atari8_panther.h : ../tests/ATARI8-PANTHER.TXT
+ ./8bit_tab_to_h "Atari 8-bit Polish Panther ATASCII" atari8_panther < $< > $@
+
+atari8_pe.h : ../tests/ATARI8-PE.TXT
+ ./8bit_tab_to_h "Atari 8-bit Polish Polski Edytor ATASCII" atari8_pe < $< > $@
+
+atari8_eurotekst.h : ../tests/ATARI8-EUROTEKST.TXT
+ ./8bit_tab_to_h "Atari 8-bit Polish EuroTekst ATASCII" atari8_eurotekst < $< > $@
+
+atari8_capek.h : ../tests/ATARI8-CAPEK.TXT
+ ./8bit_tab_to_h "Atari 8-bit Czech Čapek ATASCII" atari8_capek < $< > $@
+
+atari8_tcheko.h : ../tests/ATARI8-TCHEKO.TXT
+ ./8bit_tab_to_h "Atari 8-bit Czech Tcheko ATASCII" atari8_tcheko < $< > $@
+
+zx80.h : ../tests/ZX80.TXT
+ ./8bit_tab_to_h "Sinclair ZX-80 ASCII" zx80 < $< > $@
+
+zx82.h : ../tests/ZX82.TXT
+ ./8bit_tab_to_h "Sinclair ZX Spectrum Standard ASCII" zx82 < $< > $@
+
+zx82_pl.h : ../tests/ZX82-PL.TXT
+ ./8bit_tab_to_h "Sinclair ZX Spectrum Polish ASCII" zx82_pl < $< > $@
+
+petscii_uc.h : ../tests/PETSCII-UC.TXT
+ ./8bit_tab_to_h "Commodore Uppercase PETSCII" petscii_uc < $< > $@
+
+petscii_lc.h : ../tests/PETSCII-LC.TXT
+ ./8bit_tab_to_h "Commodore Lowercase PETSCII" petscii_lc < $< > $@
+
+cp895_cp867.h : ../tests/CP895_CP867.TXT
+ ./8bit_tab_to_h "CP895/CP867/KEYBCS2 Bratři Kameničtí" cp895_cp867 < $< > $@
+
+
8bit_tab_to_h : 8bit_tab_to_h.c
gcc -O -Wall -g $< -o $@