diff --git a/src/conio/allfonts.c b/src/conio/allfonts.c index a3b65c0e267652ebc2fa6a6ec4b44930d992402a..a36f0535cf82cdf621bb281dae61b43fe0201652 100644 --- a/src/conio/allfonts.c +++ b/src/conio/allfonts.c @@ -4109,7 +4109,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = { "\x38\x58\x3e\x1b\x1b\xdb\x7e\x18" "\x30\x30\x60\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" - , NULL, "haik8 codepage (use only with armscii8 screenmap)", CIOLIB_CP437} + , NULL, "haik8 codepage (use only with armscii8 screenmap)", CIOLIB_HAIK8} ,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" @@ -8725,7 +8725,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = { "\x38\x58\x3e\x1b\x1b\xdb\x7e\x18" "\x30\x30\x60\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" - , NULL, "ARMSCII-8 Character set", CIOLIB_CP437} + , NULL, "ARMSCII-8 Character set", CIOLIB_ARMSCII8} ,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" @@ -12827,7 +12827,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = { "\x08\x10\xe6\x66\x66\x66\x3c\x00" "\x08\x10\x44\xd6\xd6\xd6\x6c\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" - , NULL, "ISO-8859-7 Greek", CIOLIB_CP437} + , NULL, "ISO-8859-7 Greek", CIOLIB_ISO_8859_7} ,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" @@ -14622,7 +14622,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = { "\x18\x30\xcc\xcc\xcc\x7c\x0c\xf8" "\xe0\x78\x6c\x66\x6c\x78\xe0\x00" "\xcc\x00\xcc\xcc\xcc\x7c\x0c\xf8" - , NULL, "ISO-8859-1 West European", CIOLIB_CP437} + , NULL, "ISO-8859-1 West European", CIOLIB_ISO_8859_1} ,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x7e\x81\xa5\x81\x81\xa5\x99\x81\x81\x7e\x00\x00\x00\x00" "\x00\x00\x7e\xff\xdb\xff\xff\xdb\xe7\xff\xff\x7e\x00\x00\x00\x00" @@ -15391,7 +15391,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = { "\x30\x48\x10\x20\x78\x00\x00\x00" "\x00\x00\x7c\x7c\x7c\x7c\x00\x00" "\x00\x00\x00\x00\x00\x42\x7e\x00" - , NULL, "Codepage 866 Russian", CIOLIB_CP437} + , NULL, "Codepage 866 Russian", CIOLIB_CP866M2} ,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00" "\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00" @@ -16161,7 +16161,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = { "\x00\x70\x88\x10\x60\x88\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x42\x7e\x00\x00\x00" - , NULL, NULL, NULL, "Codepage 866 (b) Russian", CIOLIB_CP437} + , NULL, NULL, NULL, "Codepage 866 (b) Russian", CIOLIB_CP866M2} ,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00" "\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00" @@ -17699,7 +17699,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = { "\x30\x48\x10\x20\x78\x00\x00\x00" "\x00\x00\x7c\x7c\x7c\x7c\x00\x00" "\x00\x00\x00\x00\x00\x42\x7e\x00" - , NULL, "Ukrainian font cp866u", CIOLIB_CP437} + , NULL, "Ukrainian font cp866u", CIOLIB_CP866U} ,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" @@ -17956,7 +17956,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = { "\x00\x00\x04\x08\x00\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00" "\x00\x00\x20\x20\x38\x24\x24\x24\x28\x30\x20\x20\x20\x00\x00\x00" "\x00\x00\x24\x24\x00\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00" - , NULL, NULL, NULL, "ISO-8859-1 West European, (thin)", CIOLIB_CP437} + , NULL, NULL, NULL, "ISO-8859-1 West European, (thin)", CIOLIB_ISO_8859_1} ,{"\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x3c\x42\x81\xe7\xa5\x99\x81\x99\x42\x3c\x00\x00\x00\x00" "\x00\x00\x3c\x7e\xff\x99\xdb\xe7\xff\xe7\x7e\x3c\x00\x00\x00\x00" @@ -18213,7 +18213,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = { "\x00\x00\x00\x00\x0c\x0c\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" - , NULL, NULL, NULL, "Codepage 1131 Belarusian, (swiss)", CIOLIB_CP437} + , NULL, NULL, NULL, "Codepage 1131 Belarusian, (swiss)", CIOLIB_CP1131} ,{"\x3c\x3c\x66\x66\x6e\x6e\x6e\x6e\x60\x60\x62\x62\x3c\x3c\x00\x00" "\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00" "\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00" diff --git a/src/conio/utf8_codepages.c b/src/conio/utf8_codepages.c index ec9220ed6b09542191c0e3f070a9f9e90b11bfa9..c106c304efb629893a656ee2465a651e8c2f9b17 100644 --- a/src/conio/utf8_codepages.c +++ b/src/conio/utf8_codepages.c @@ -330,6 +330,7 @@ static uint32_t iso8859_4_unicode_table[128] = { 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9 }; +#if 0 static struct ciolib_cpmap cp866_table[160] = { {0x00a0, 255}, {0x00a4, 253}, {0x00a7, 21}, {0x00b0, 248}, {0x00b6, 20}, {0x00b7, 250}, {0x0401, 240}, {0x0404, 242}, @@ -391,6 +392,7 @@ static uint32_t cp866_unicode_table[128] = { 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0 }; +#endif static struct ciolib_cpmap cp866m_table[160] = { {0x00a0, 255}, {0x00a7, 21}, {0x00b0, 248}, {0x00B2, 253}, @@ -848,6 +850,406 @@ static uint32_t cp865_unicode_table[128] = { }; +static struct ciolib_cpmap iso8859_7_table[125] = { + {0x00a0, 160}, {0x00a3, 163}, {0x00a6, 166}, {0x00a7, 21}, + {0x00a7, 167}, {0x00a8, 168}, {0x00a9, 169}, {0x00ab, 171}, + {0x00ac, 172}, {0x00ad, 173}, {0x00b0, 176}, {0x00b1, 177}, + {0x00b2, 178}, {0x00b3, 179}, {0x00b6, 20}, {0x00b7, 183}, + {0x00bb, 187}, {0x00bd, 189}, {0x037a, 170}, {0x0384, 180}, + {0x0385, 181}, {0x0386, 182}, {0x0388, 184}, {0x0389, 185}, + {0x038a, 186}, {0x038c, 188}, {0x038e, 190}, {0x038f, 191}, + {0x0390, 192}, {0x0391, 193}, {0x0392, 194}, {0x0393, 195}, + {0x0394, 196}, {0x0395, 197}, {0x0396, 198}, {0x0397, 199}, + {0x0398, 200}, {0x0399, 201}, {0x039a, 202}, {0x039b, 203}, + {0x039c, 204}, {0x039d, 205}, {0x039e, 206}, {0x039f, 207}, + {0x03a0, 208}, {0x03a1, 209}, {0x03a3, 211}, {0x03a4, 212}, + {0x03a5, 213}, {0x03a6, 214}, {0x03a7, 215}, {0x03a8, 216}, + {0x03a9, 217}, {0x03aa, 218}, {0x03ab, 219}, {0x03ac, 220}, + {0x03ad, 221}, {0x03ae, 222}, {0x03af, 223}, {0x03b0, 224}, + {0x03b1, 225}, {0x03b2, 226}, {0x03b3, 227}, {0x03b4, 228}, + {0x03b5, 229}, {0x03b6, 230}, {0x03b7, 231}, {0x03b8, 232}, + {0x03b9, 233}, {0x03ba, 234}, {0x03bb, 235}, {0x03bc, 236}, + {0x03bd, 237}, {0x03be, 238}, {0x03bf, 239}, {0x03c0, 240}, + {0x03c1, 241}, {0x03c2, 242}, {0x03c3, 243}, {0x03c4, 244}, + {0x03c5, 245}, {0x03c6, 246}, {0x03c7, 247}, {0x03c8, 248}, + {0x03c9, 249}, {0x03ca, 250}, {0x03cb, 251}, {0x03cc, 252}, + {0x03cd, 253}, {0x03ce, 254}, {0x2015, 175}, {0x2018, 161}, + {0x2019, 162}, {0x2022, 7}, {0x203c, 19}, {0x20ac, 164}, + {0x20af, 165}, {0x2190, 27}, {0x2191, 24}, {0x2192, 26}, + {0x2193, 25}, {0x2194, 29}, {0x2195, 18}, {0x21a8, 23}, + {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30}, {0x25ba, 16}, + {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9}, {0x25d8, 8}, + {0x25d9, 10}, {0x263a, 1}, {0x263b, 2}, {0x263c, 15}, + {0x2640, 12}, {0x2642, 11}, {0x2660, 6}, {0x2663, 5}, + {0x2665, 3}, {0x2666, 4}, {0x266a, 13}, {0x266b, 14}, + {0xfffd, '?'} +}; + +static uint32_t iso8859_7_unicode_table[128] = { + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x00a0, 0x2018, 0x2019, 0x00a3, 0x20ac, 0x20af, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x037a, 0x00ab, 0x00ac, 0x00ad, 0xfffd, 0x2015, + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7, + 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, + 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, + 0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, + 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, + 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, + 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, + 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, + 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd +}; + +static struct ciolib_cpmap iso8859_1_table[128] = { + {0x00a0, 160}, {0x00a1, 161}, {0x00a2, 162}, {0x00a3, 163}, + {0x00a4, 164}, {0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167}, + {0x00a7, 21}, {0x00a8, 168}, {0x00a9, 169}, {0x00aa, 170}, + {0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174}, + {0x00af, 175}, {0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178}, + {0x00b3, 179}, {0x00b4, 180}, {0x00b5, 181}, {0x00b6, 182}, + {0x00b6, 20}, {0x00b7, 183}, {0x00b8, 184}, {0x00b9, 185}, + {0x00ba, 186}, {0x00bb, 187}, {0x00bc, 188}, {0x00bd, 189}, + {0x00be, 190}, {0x00bf, 191}, {0x00c0, 192}, {0x00c1, 193}, + {0x00c2, 194}, {0x00c3, 195}, {0x00c4, 196}, {0x00c5, 197}, + {0x00c6, 198}, {0x00c7, 199}, {0x00c8, 200}, {0x00c9, 201}, + {0x00ca, 202}, {0x00cb, 203}, {0x00cc, 204}, {0x00cd, 205}, + {0x00ce, 206}, {0x00cf, 207}, {0x00d0, 208}, {0x00d1, 209}, + {0x00d2, 210}, {0x00d3, 211}, {0x00d4, 212}, {0x00d5, 213}, + {0x00d6, 214}, {0x00d7, 215}, {0x00d8, 216}, {0x00d9, 217}, + {0x00da, 218}, {0x00db, 219}, {0x00dc, 220}, {0x00dd, 221}, + {0x00de, 222}, {0x00df, 223}, {0x00e0, 224}, {0x00e1, 225}, + {0x00e2, 226}, {0x00e3, 227}, {0x00e4, 228}, {0x00e5, 229}, + {0x00e6, 230}, {0x00e7, 231}, {0x00e8, 232}, {0x00e9, 233}, + {0x00ea, 234}, {0x00eb, 235}, {0x00ec, 236}, {0x00ed, 237}, + {0x00ee, 238}, {0x00ef, 239}, {0x00f0, 240}, {0x00f1, 241}, + {0x00f2, 242}, {0x00f3, 243}, {0x00f4, 244}, {0x00f5, 245}, + {0x00f6, 246}, {0x00f7, 247}, {0x00f8, 248}, {0x00f9, 249}, + {0x00fa, 250}, {0x00fb, 251}, {0x00fc, 252}, {0x00fd, 253}, + {0x00fe, 254}, {0x00ff, 255}, {0x2022, 7}, {0x203c, 19}, + {0x2190, 27}, {0x2191, 24}, {0x2192, 26}, {0x2193, 25}, + {0x2194, 29}, {0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, + {0x25ac, 22}, {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, + {0x25c4, 17}, {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, + {0x263a, 1}, {0x263b, 2}, {0x263c, 15}, {0x2640, 12}, + {0x2642, 11}, {0x2660, 6}, {0x2663, 5}, {0x2665, 3}, + {0x2666, 4}, {0x266a, 13}, {0x266b, 14}, {0xfffd, '?'} +}; + +static uint32_t iso8859_1_unicode_table[128] = { + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, + 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, + 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, + 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, + 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, + 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff +}; + +static struct ciolib_cpmap cp866m2_table[160] = { + {0x00a0, 255}, {0x00a7, 21}, {0x00A9, 252}, {0x00b0, 248}, + {0x00B2, 253}, {0x00b6, 20}, {0x00b7, 250}, {0x00F7, 246}, + {0x0401, 240}, {0x0410, 128}, {0x0411, 129}, {0x0412, 130}, + {0x0413, 131}, {0x0414, 132}, {0x0415, 133}, {0x0416, 134}, + {0x0417, 135}, {0x0418, 136}, {0x0419, 137}, {0x041a, 138}, + {0x041b, 139}, {0x041c, 140}, {0x041d, 141}, {0x041e, 142}, + {0x041f, 143}, {0x0420, 144}, {0x0421, 145}, {0x0422, 146}, + {0x0423, 147}, {0x0424, 148}, {0x0425, 149}, {0x0426, 150}, + {0x0427, 151}, {0x0428, 152}, {0x0429, 153}, {0x042a, 154}, + {0x042b, 155}, {0x042c, 156}, {0x042d, 157}, {0x042e, 158}, + {0x042f, 159}, {0x0430, 160}, {0x0431, 161}, {0x0432, 162}, + {0x0433, 163}, {0x0434, 164}, {0x0435, 165}, {0x0436, 166}, + {0x0437, 167}, {0x0438, 168}, {0x0439, 169}, {0x043a, 170}, + {0x043b, 171}, {0x043c, 172}, {0x043d, 173}, {0x043e, 174}, + {0x043f, 175}, {0x0440, 224}, {0x0441, 225}, {0x0442, 226}, + {0x0443, 227}, {0x0444, 228}, {0x0445, 229}, {0x0446, 230}, + {0x0447, 231}, {0x0448, 232}, {0x0449, 233}, {0x044a, 234}, + {0x044b, 235}, {0x044c, 236}, {0x044d, 237}, {0x044e, 238}, + {0x044f, 239}, {0x0451, 241}, {0x2022, 7}, {0x203c, 19}, + {0x2190, 27}, {0x2191, 24}, {0x2192, 26}, {0x2193, 25}, + {0x2194, 29}, {0x2195, 18}, {0x21a8, 23}, {0x2219, 249}, + {0x221a, 251}, {0x221f, 28}, {0x2264, 243}, {0x2265, 242}, + {0x2320, 244}, {0x2321, 245}, {0x2248, 247}, {0x2500, 196}, + {0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192}, + {0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194}, + {0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186}, + {0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184}, + {0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211}, + {0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188}, + {0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181}, + {0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210}, + {0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202}, + {0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223}, + {0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222}, + {0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254}, + {0x25ac, 22}, {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, + {0x25c4, 17}, {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, + {0x263a, 1}, {0x263b, 2}, {0x263c, 15}, {0x2640, 12}, + {0x2642, 11}, {0x2660, 6}, {0x2663, 5}, {0x2665, 3}, + {0x2666, 4}, {0x266a, 13}, {0x266b, 14}, {0xfffd, '?'} +}; + +static uint32_t cp866m2_unicode_table[128] = { + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, + 0x0401, 0x0451, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x00A9, 0x00B2, 0x25a0, 0x00a0 +}; + +static struct ciolib_cpmap cp866u_table[160] = { + {0x00a0, 255}, {0x00a7, 21}, {0x00A9, 252}, {0x00B2, 253}, + {0x00b6, 20}, {0x00b7, 250}, {0x0401, 240}, {0x0404, 244}, + {0x0406, 246}, {0x0407, 248}, {0x0410, 128}, {0x0411, 129}, + {0x0412, 130}, {0x0413, 131}, {0x0414, 132}, {0x0415, 133}, + {0x0416, 134}, {0x0417, 135}, {0x0418, 136}, {0x0419, 137}, + {0x041a, 138}, {0x041b, 139}, {0x041c, 140}, {0x041d, 141}, + {0x041e, 142}, {0x041f, 143}, {0x0420, 144}, {0x0421, 145}, + {0x0422, 146}, {0x0423, 147}, {0x0424, 148}, {0x0425, 149}, + {0x0426, 150}, {0x0427, 151}, {0x0428, 152}, {0x0429, 153}, + {0x042a, 154}, {0x042b, 155}, {0x042c, 156}, {0x042d, 157}, + {0x042e, 158}, {0x042f, 159}, {0x0430, 160}, {0x0431, 161}, + {0x0432, 162}, {0x0433, 163}, {0x0434, 164}, {0x0435, 165}, + {0x0436, 166}, {0x0437, 167}, {0x0438, 168}, {0x0439, 169}, + {0x043a, 170}, {0x043b, 171}, {0x043c, 172}, {0x043d, 173}, + {0x043e, 174}, {0x043f, 175}, {0x0440, 224}, {0x0441, 225}, + {0x0442, 226}, {0x0443, 227}, {0x0444, 228}, {0x0445, 229}, + {0x0446, 230}, {0x0447, 231}, {0x0448, 232}, {0x0449, 233}, + {0x044a, 234}, {0x044b, 235}, {0x044c, 236}, {0x044d, 237}, + {0x044e, 238}, {0x044f, 239}, {0x0451, 241}, {0x0454, 245}, + {0x0456, 247}, {0x0457, 249}, {0x0490, 242}, {0x0491, 243}, + {0x2022, 7}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24}, + {0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18}, + {0x21a8, 23}, {0x221a, 251}, {0x221f, 28}, {0x2500, 196}, + {0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192}, + {0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194}, + {0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186}, + {0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184}, + {0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211}, + {0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188}, + {0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181}, + {0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210}, + {0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202}, + {0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223}, + {0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222}, + {0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254}, + {0x25ac, 22}, {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, + {0x25c4, 17}, {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, + {0x263a, 1}, {0x263b, 2}, {0x263c, 15}, {0x2640, 12}, + {0x2642, 11}, {0x2660, 6}, {0x2663, 5}, {0x2665, 3}, + {0x2666, 4}, {0x266a, 13}, {0x266b, 14}, {0xfffd, '?'} +}; + +static uint32_t cp866u_unicode_table[128] = { + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, + 0x0401, 0x0451, 0x0490, 0x0491, 0x0404, 0x0454, 0x0406, 0x0456, + 0x0407, 0x0457, 0x00b7, 0x221a, 0x00A9, 0x00B2, 0x25a0, 0x00a0 +}; + +static struct ciolib_cpmap cp1131_table[160] = { + {0x00a0, 255}, {0x00a7, 21}, {0x00b6, 20}, {0x00b7, 250}, + {0x0401, 240}, {0x0404, 242}, {0x0406, 248}, {0x0407, 244}, + {0x040e, 246}, {0x0410, 128}, {0x0411, 129}, {0x0412, 130}, + {0x0413, 131}, {0x0414, 132}, {0x0415, 133}, {0x0416, 134}, + {0x0417, 135}, {0x0418, 136}, {0x0419, 137}, {0x041a, 138}, + {0x041b, 139}, {0x041c, 140}, {0x041d, 141}, {0x041e, 142}, + {0x041f, 143}, {0x0420, 144}, {0x0421, 145}, {0x0422, 146}, + {0x0423, 147}, {0x0424, 148}, {0x0425, 149}, {0x0426, 150}, + {0x0427, 151}, {0x0428, 152}, {0x0429, 153}, {0x042a, 154}, + {0x042b, 155}, {0x042c, 156}, {0x042d, 157}, {0x042e, 158}, + {0x042f, 159}, {0x0430, 160}, {0x0431, 161}, {0x0432, 162}, + {0x0433, 163}, {0x0434, 164}, {0x0435, 165}, {0x0436, 166}, + {0x0437, 167}, {0x0438, 168}, {0x0439, 169}, {0x043a, 170}, + {0x043b, 171}, {0x043c, 172}, {0x043d, 173}, {0x043e, 174}, + {0x043f, 175}, {0x0440, 224}, {0x0441, 225}, {0x0442, 226}, + {0x0443, 227}, {0x0444, 228}, {0x0445, 229}, {0x0446, 230}, + {0x0447, 231}, {0x0448, 232}, {0x0449, 233}, {0x044a, 234}, + {0x044b, 235}, {0x044c, 236}, {0x044d, 237}, {0x044e, 238}, + {0x044f, 239}, {0x0451, 241}, {0x0454, 243}, {0x0456, 249}, + {0x0457, 245}, {0x045e, 247}, {0x0490, 252}, {0x0491, 253}, + {0x2022, 7}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24}, + {0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18}, + {0x21a8, 23}, {0x2219, 254}, {0x221a, 251}, {0x221f, 28}, + {0x2500, 196}, {0x2502, 179}, {0x250c, 218}, {0x2510, 191}, + {0x2514, 192}, {0x2518, 217}, {0x251c, 195}, {0x2524, 180}, + {0x252c, 194}, {0x2534, 193}, {0x253c, 197}, {0x2550, 205}, + {0x2551, 186}, {0x2552, 213}, {0x2553, 214}, {0x2554, 201}, + {0x2555, 184}, {0x2556, 183}, {0x2557, 187}, {0x2558, 212}, + {0x2559, 211}, {0x255a, 200}, {0x255b, 190}, {0x255c, 189}, + {0x255d, 188}, {0x255e, 198}, {0x255f, 199}, {0x2560, 204}, + {0x2561, 181}, {0x2562, 182}, {0x2563, 185}, {0x2564, 209}, + {0x2565, 210}, {0x2566, 203}, {0x2567, 207}, {0x2568, 208}, + {0x2569, 202}, {0x256a, 216}, {0x256b, 215}, {0x256c, 206}, + {0x2580, 223}, {0x2584, 220}, {0x2588, 219}, {0x258c, 221}, + {0x2590, 222}, {0x2591, 176}, {0x2592, 177}, {0x2593, 178}, + {0x25ac, 22}, {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, + {0x25c4, 17}, {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, + {0x263a, 1}, {0x263b, 2}, {0x263c, 15}, {0x2640, 12}, + {0x2642, 11}, {0x2660, 6}, {0x2663, 5}, {0x2665, 3}, + {0x2666, 4}, {0x266a, 13}, {0x266b, 14}, {0xfffd, '?'} +}; + +static uint32_t cp1131_unicode_table[128] = { + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, + 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, + 0x0406, 0x0456, 0x00b7, 0x221a, 0x0490, 0x0491, 0x2219, 0x00a0 +}; + +static struct ciolib_cpmap armscii8_table[123] = { + {0x00a0, 160}, {0x00a7, 162}, {0x00a7, 21}, {0x00ab, 167}, + {0x00b6, 20}, {0x00bb, 166}, {0x02bc, 254}, {0x0531, 178}, + {0x0532, 180}, {0x0533, 182}, {0x0534, 184}, {0x0535, 186}, + {0x0536, 188}, {0x0537, 190}, {0x0538, 192}, {0x0539, 194}, + {0x053a, 196}, {0x053b, 198}, {0x053c, 200}, {0x053d, 202}, + {0x053e, 204}, {0x053f, 206}, {0x0540, 208}, {0x0541, 210}, + {0x0542, 212}, {0x0543, 214}, {0x0544, 216}, {0x0545, 218}, + {0x0546, 220}, {0x0547, 222}, {0x0548, 224}, {0x0549, 226}, + {0x054a, 228}, {0x054b, 230}, {0x054c, 232}, {0x054d, 234}, + {0x054e, 236}, {0x054f, 238}, {0x0550, 240}, {0x0551, 242}, + {0x0552, 244}, {0x0553, 246}, {0x0554, 248}, {0x0555, 250}, + {0x0556, 252}, {0x055b, 176}, {0x055c, 175}, {0x055d, 170}, + {0x055e, 177}, {0x0561, 179}, {0x0562, 181}, {0x0563, 183}, + {0x0564, 185}, {0x0565, 187}, {0x0566, 189}, {0x0567, 191}, + {0x0568, 193}, {0x0569, 195}, {0x056a, 197}, {0x056b, 199}, + {0x056c, 201}, {0x056d, 203}, {0x056e, 205}, {0x056f, 207}, + {0x0570, 209}, {0x0571, 211}, {0x0572, 213}, {0x0573, 215}, + {0x0574, 217}, {0x0575, 219}, {0x0576, 221}, {0x0577, 223}, + {0x0578, 225}, {0x0579, 227}, {0x057a, 229}, {0x057b, 231}, + {0x057c, 233}, {0x057d, 235}, {0x057e, 237}, {0x057f, 239}, + {0x0580, 241}, {0x0581, 243}, {0x0582, 245}, {0x0583, 247}, + {0x0584, 249}, {0x0585, 251}, {0x0586, 253}, {0x0589, 163}, + {0x058a, 173}, {0x058e, 161}, {0x2013, 172}, {0x2014, 168}, + {0x2022, 7}, {0x2026, 174}, {0x203c, 19}, {0x2190, 27}, + {0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29}, + {0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, + {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, + {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, + {0x263b, 2}, {0x263c, 15}, {0x2640, 12}, {0x2642, 11}, + {0x2660, 6}, {0x2663, 5}, {0x2665, 3}, {0x2666, 4}, + {0x266a, 13}, {0x266b, 14}, {0xfffd, '?'} +}; + +static uint32_t armscii8_unicode_table[128] = { + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x00a0, 0x058e, 0x00a7, 0x0589, 0x0029, 0x002a, 0x00bb, 0x00ab, + 0x2014, 0x002e, 0x055d, 0x002c, 0x2013, 0x058a, 0x2026, 0x055c, + 0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563, + 0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567, + 0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b, + 0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f, + 0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573, + 0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577, + 0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b, + 0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f, + 0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583, + 0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x02bc, 0xfffd +}; + +static struct ciolib_cpmap haik8_table[123] = { + {0x00a0, 128}, {0x00a7, 21}, {0x00a7, 130}, {0x00ab, 135}, + {0x00b6, 20}, {0x00bb, 134}, {0x02bc, 254}, {0x0531, 146}, + {0x0532, 148}, {0x0533, 150}, {0x0534, 152}, {0x0535, 154}, + {0x0536, 156}, {0x0537, 158}, {0x0538, 160}, {0x0539, 162}, + {0x053a, 164}, {0x053b, 166}, {0x053c, 168}, {0x053d, 170}, + {0x053e, 172}, {0x053f, 174}, {0x0540, 176}, {0x0541, 178}, + {0x0542, 180}, {0x0543, 182}, {0x0544, 184}, {0x0545, 186}, + {0x0546, 188}, {0x0547, 190}, {0x0548, 224}, {0x0549, 226}, + {0x054a, 228}, {0x054b, 230}, {0x054c, 232}, {0x054d, 234}, + {0x054e, 236}, {0x054f, 238}, {0x0550, 240}, {0x0551, 242}, + {0x0552, 244}, {0x0553, 246}, {0x0554, 248}, {0x0555, 250}, + {0x0556, 252}, {0x055b, 144}, {0x055c, 143}, {0x055d, 138}, + {0x055e, 145}, {0x0561, 147}, {0x0562, 149}, {0x0563, 151}, + {0x0564, 153}, {0x0565, 155}, {0x0566, 157}, {0x0567, 159}, + {0x0568, 161}, {0x0569, 163}, {0x056a, 165}, {0x056b, 167}, + {0x056c, 169}, {0x056d, 171}, {0x056e, 173}, {0x056f, 175}, + {0x0570, 177}, {0x0571, 179}, {0x0572, 181}, {0x0573, 183}, + {0x0574, 185}, {0x0575, 187}, {0x0576, 189}, {0x0577, 191}, + {0x0578, 225}, {0x0579, 227}, {0x057a, 229}, {0x057b, 231}, + {0x057c, 233}, {0x057d, 235}, {0x057e, 237}, {0x057f, 239}, + {0x0580, 241}, {0x0581, 243}, {0x0582, 245}, {0x0583, 247}, + {0x0584, 249}, {0x0585, 251}, {0x0586, 253}, {0x0589, 131}, + {0x058a, 141}, {0x058e, 129}, {0x2013, 140}, {0x2014, 136}, + {0x2022, 7}, {0x2026, 142}, {0x203c, 19}, {0x2190, 27}, + {0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29}, + {0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, + {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, + {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, + {0x263b, 2}, {0x263c, 15}, {0x2640, 12}, {0x2642, 11}, + {0x2660, 6}, {0x2663, 5}, {0x2665, 3}, {0x2666, 4}, + {0x266a, 13}, {0x266b, 14}, {0xfffd, '?'} +}; + +static uint32_t haik8_unicode_table[128] = { + 0x00a0, 0x058e, 0x00a7, 0x0589, 0x0029, 0x002a, 0x00bb, 0x00ab, + 0x2014, 0x002e, 0x055d, 0x002c, 0x2013, 0x058a, 0x2026, 0x055c, + 0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563, + 0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567, + 0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b, + 0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f, + 0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573, + 0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b, + 0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f, + 0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583, + 0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x02bc, 0xfffd +}; + static int cmptab(const void *key, const void *entry) { @@ -1148,6 +1550,27 @@ struct codepage_def ciolib_cp[CIOLIB_CP_COUNT] = { {"CP865", CIOLIB_CP865, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext, cp865_table, sizeof(cp865_table) / sizeof(cp865_table[0]), cp865_unicode_table, cp437_ext_table}, + {"ISO-8859-7", CIOLIB_ISO_8859_7, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext, + iso8859_7_table, sizeof(iso8859_7_table) / sizeof(iso8859_7_table[0]), + iso8859_7_unicode_table, empty_ext_table}, + {"ISO-8859-1", CIOLIB_ISO_8859_1, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext, + iso8859_1_table, sizeof(iso8859_1_table) / sizeof(iso8859_1_table[0]), + iso8859_1_unicode_table, empty_ext_table}, + {"CP866M2", CIOLIB_CP866M2, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext, + cp866m2_table, sizeof(cp866m2_table) / sizeof(cp866m2_table[0]), + cp866m2_unicode_table, cp437_ext_table}, + {"CP866U", CIOLIB_CP866U, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext, + cp866u_table, sizeof(cp866u_table) / sizeof(cp866u_table[0]), + cp866u_unicode_table, cp437_ext_table}, + {"CP1131", CIOLIB_CP1131, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext, + cp1131_table, sizeof(cp1131_table) / sizeof(cp1131_table[0]), + cp1131_unicode_table, cp437_ext_table}, + {"ARMSCII-8", CIOLIB_ARMSCII8, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext, + armscii8_table, sizeof(armscii8_table) / sizeof(armscii8_table[0]), + armscii8_unicode_table, cp437_ext_table}, + {"HAIK8", CIOLIB_HAIK8, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext, + haik8_table, sizeof(haik8_table) / sizeof(haik8_table[0]), + haik8_unicode_table, cp437_ext_table}, }; uint8_t *cp_to_utf8(enum ciolib_codepage cp, const char *cpstr, size_t buflen, size_t *outlen) diff --git a/src/conio/utf8_codepages.h b/src/conio/utf8_codepages.h index 36b752ad6d3f25a03c162afc747dc2a47f44e3ca..cc68be1eab2796429067e70457b030c73746509e 100644 --- a/src/conio/utf8_codepages.h +++ b/src/conio/utf8_codepages.h @@ -15,6 +15,13 @@ enum ciolib_codepage { CIOLIB_ISO_8859_5, CIOLIB_CP850, CIOLIB_CP865, + CIOLIB_ISO_8859_7, + CIOLIB_ISO_8859_1, + CIOLIB_CP866M2, + CIOLIB_CP866U, + CIOLIB_CP1131, + CIOLIB_ARMSCII8, + CIOLIB_HAIK8, CIOLIB_CP_COUNT };