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 $@