Skip to content
Snippets Groups Projects
Commit a580cd33 authored by deuce's avatar deuce
Browse files

More codepages: CP866 (Modified), ISO-8859-9, ISO-8859-8, KOI8-U, ISO-8859-15,

ISO-8859-5, CP850, CP865
parent 2c6becf7
Branches
Tags
No related merge requests found
......@@ -3083,7 +3083,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
"\x00\x70\xd8\x30\x60\xc8\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\x00\x00\x00\x00\x00\x00"
, NULL, NULL, NULL, "Codepage 866 (c) Russian", CIOLIB_CP437}
, NULL, NULL, NULL, "Codepage 866 (c) Russian", CIOLIB_CP866M}
,{"\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"
......@@ -3340,7 +3340,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
"\x00\x00\x00\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x18\x30\x00\x00"
"\x00\x00\x66\x66\x00\xee\x66\x66\x66\x66\x66\x3e\x06\x0c\x38\x00"
, NULL, NULL, NULL, "ISO-8859-9 Turkish", CIOLIB_CP437}
, NULL, NULL, NULL, "ISO-8859-9 Turkish", CIOLIB_ISO_8859_9}
,{"\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"
......@@ -4878,7 +4878,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
"\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00"
, NULL, "ISO-8859-8 Hebrew", CIOLIB_CP437}
, NULL, "ISO-8859-8 Hebrew", CIOLIB_ISO_8859_8}
,{"\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"
......@@ -5647,7 +5647,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
"\x66\x66\x66\x3e\x06\x06\x06\x00"
"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
, NULL, "Ukrainian font koi8-u", CIOLIB_CP437}
, NULL, "Ukrainian font koi8-u", CIOLIB_KOI8_U}
,{"\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"
......@@ -5904,7 +5904,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
"\x00\x00\x04\x08\x10\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
"\x00\x20\x20\x20\x3e\x21\x21\x21\x21\x31\x2e\x20\x20\x20\x00\x00"
"\x00\x00\x24\x24\x00\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
, NULL, NULL, NULL, "ISO-8859-15 West European, (thin)", CIOLIB_CP437}
, NULL, NULL, NULL, "ISO-8859-15 West European, (thin)", CIOLIB_ISO_8859_15}
,{"\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"
......@@ -7956,7 +7956,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
"\x7e\xc0\x7c\xc6\x7c\x06\xfc\x00"
"\x18\x00\x66\x66\x3e\x06\x3c\x00"
"\x00\x00\xc6\xc6\xfe\x38\x38\x00"
, NULL, "ISO-8859-5 Cyrillic", CIOLIB_CP437}
, NULL, "ISO-8859-5 Cyrillic", CIOLIB_ISO_8859_5}
,{"\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"
......@@ -9494,7 +9494,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-15 West European", CIOLIB_CP437}
, NULL, "ISO-8859-15 West European", CIOLIB_ISO_8859_15}
,{"\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"
......@@ -10007,7 +10007,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
"\x30\x48\x10\x20\x78\x00\x00\x00"
"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00"
, NULL, "Codepage 850 Multilingual Latin I, (thin)", CIOLIB_CP437}
, NULL, "Codepage 850 Multilingual Latin I, (thin)", CIOLIB_CP850}
,{"\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"
......@@ -10776,7 +10776,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
"\x78\x0c\x18\x30\x7c\x00\x00\x00"
"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00"
, NULL, "Codepage 850 Multilingual Latin I", CIOLIB_CP437}
, NULL, "Codepage 850 Multilingual Latin I", CIOLIB_CP850}
,{"\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"
......@@ -11289,7 +11289,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
"\x30\x48\x10\x20\x78\x00\x00\x00"
"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00"
, NULL, "Codepage 885 Norwegian, (thin)", CIOLIB_CP437}
, NULL, "Codepage 865 Norwegian, (thin)", CIOLIB_CP865}
,{"\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"
......@@ -16930,7 +16930,7 @@ CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
"\x78\x0c\x18\x30\x7c\x00\x00\x00"
"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00"
, NULL, "Codepage 885 Norwegian", CIOLIB_CP437}
, NULL, "Codepage 865 Norwegian", CIOLIB_CP865}
,{"\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"
......@@ -330,6 +330,524 @@ static uint32_t iso8859_4_unicode_table[128] = {
0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9
};
static struct ciolib_cpmap cp866_table[160] = {
{0x00a0, 255}, {0x00a4, 253}, {0x00a7, 21}, {0x00b0, 248},
{0x00b6, 20}, {0x00b7, 250}, {0x0401, 240}, {0x0404, 242},
{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},
{0x0457, 245}, {0x045e, 247}, {0x2022, 7}, {0x203c, 19},
{0x2116, 252}, {0x2190, 27}, {0x2191, 24}, {0x2192, 26},
{0x2193, 25}, {0x2194, 29}, {0x2195, 18}, {0x21a8, 23},
{0x2219, 249}, {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 cp866_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,
0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0
};
static struct ciolib_cpmap cp866m_table[160] = {
{0x00a0, 255}, {0x00a7, 21}, {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}, {0x045F, 252}, {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 cp866m_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, 0x045F, 0x00B2, 0x25a0, 0x00a0
};
static struct ciolib_cpmap iso8859_9_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}, {0x00d1, 209}, {0x00d2, 210},
{0x00d3, 211}, {0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214},
{0x00d7, 215}, {0x00d8, 216}, {0x00d9, 217}, {0x00da, 218},
{0x00db, 219}, {0x00dc, 220}, {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}, {0x00f1, 241},
{0x00f2, 242}, {0x00f3, 243}, {0x00f4, 244}, {0x00f5, 245},
{0x00f6, 246}, {0x00f7, 247}, {0x00f8, 248}, {0x00f9, 249},
{0x00fa, 250}, {0x00fb, 251}, {0x00fc, 252}, {0x00ff, 255},
{0x011e, 208}, {0x011f, 240}, {0x0130, 221}, {0x0131, 253},
{0x015e, 222}, {0x015f, 254}, {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_9_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,
0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df,
0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff
};
static struct ciolib_cpmap iso8859_8_table[92] = {
{0x00a0, 160}, {0x00a2, 162}, {0x00a3, 163}, {0x00a4, 164},
{0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167}, {0x00a7, 21},
{0x00a8, 168}, {0x00a9, 169}, {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}, {0x00bb, 187}, {0x00bc, 188},
{0x00bd, 189}, {0x00be, 190}, {0x00d7, 170}, {0x00f7, 186},
{0x05d0, 224}, {0x05d1, 225}, {0x05d2, 226}, {0x05d3, 227},
{0x05d4, 228}, {0x05d5, 229}, {0x05d6, 230}, {0x05d7, 231},
{0x05d8, 232}, {0x05d9, 233}, {0x05da, 234}, {0x05db, 235},
{0x05dc, 236}, {0x05dd, 237}, {0x05de, 238}, {0x05df, 239},
{0x05e0, 240}, {0x05e1, 241}, {0x05e2, 242}, {0x05e3, 243},
{0x05e4, 244}, {0x05e5, 245}, {0x05e6, 246}, {0x05e7, 247},
{0x05e8, 248}, {0x05e9, 249}, {0x05ea, 250}, {0x200e, 253},
{0x200f, 254}, {0x2017, 223}, {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_8_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, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 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, 0x2017,
0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd
};
static struct ciolib_cpmap koi8_u_table[160] = {
{0x00a0, 154}, {0x00a7, 21}, {0x00a9, 191}, {0x00b0, 156},
{0x00b2, 157}, {0x00b6, 20}, {0x00b7, 158}, {0x00f7, 159},
{0x0401, 179}, {0x0404, 180}, {0x0406, 182}, {0x0407, 183},
{0x0410, 225}, {0x0411, 226}, {0x0412, 247}, {0x0413, 231},
{0x0414, 228}, {0x0415, 229}, {0x0416, 246}, {0x0417, 250},
{0x0418, 233}, {0x0419, 234}, {0x041a, 235}, {0x041b, 236},
{0x041c, 237}, {0x041d, 238}, {0x041e, 239}, {0x041f, 240},
{0x0420, 242}, {0x0421, 243}, {0x0422, 244}, {0x0423, 245},
{0x0424, 230}, {0x0425, 232}, {0x0426, 227}, {0x0427, 254},
{0x0428, 251}, {0x0429, 253}, {0x042a, 255}, {0x042b, 249},
{0x042c, 248}, {0x042d, 252}, {0x042e, 224}, {0x042f, 241},
{0x0430, 193}, {0x0431, 194}, {0x0432, 215}, {0x0433, 199},
{0x0434, 196}, {0x0435, 197}, {0x0436, 214}, {0x0437, 218},
{0x0438, 201}, {0x0439, 202}, {0x043a, 203}, {0x043b, 204},
{0x043c, 205}, {0x043d, 206}, {0x043e, 207}, {0x043f, 208},
{0x0440, 210}, {0x0441, 211}, {0x0442, 212}, {0x0443, 213},
{0x0444, 198}, {0x0445, 200}, {0x0446, 195}, {0x0447, 222},
{0x0448, 219}, {0x0449, 221}, {0x044a, 223}, {0x044b, 217},
{0x044c, 216}, {0x044d, 220}, {0x044e, 192}, {0x044f, 209},
{0x0451, 163}, {0x0454, 164}, {0x0456, 166}, {0x0457, 167},
{0x0490, 189}, {0x0491, 173}, {0x2022, 7}, {0x203c, 19},
{0x2190, 27}, {0x2191, 24}, {0x2192, 26}, {0x2193, 25},
{0x2194, 29}, {0x2195, 18}, {0x21a8, 23}, {0x2219, 149},
{0x221a, 150}, {0x221f, 28}, {0x2248, 151}, {0x2264, 152},
{0x2265, 153}, {0x2320, 147}, {0x2321, 155}, {0x2500, 128},
{0x2502, 129}, {0x250c, 130}, {0x2510, 131}, {0x2514, 132},
{0x2518, 133}, {0x251c, 134}, {0x2524, 135}, {0x252c, 136},
{0x2534, 137}, {0x253c, 138}, {0x2550, 160}, {0x2551, 161},
{0x2552, 162}, {0x2554, 165}, {0x2557, 168}, {0x2558, 169},
{0x2559, 170}, {0x255a, 171}, {0x255b, 172}, {0x255d, 174},
{0x255e, 175}, {0x255f, 176}, {0x2560, 177}, {0x2561, 178},
{0x2563, 181}, {0x2566, 184}, {0x2567, 185}, {0x2568, 186},
{0x2569, 187}, {0x256a, 188}, {0x256c, 190}, {0x2580, 139},
{0x2584, 140}, {0x2588, 141}, {0x258c, 142}, {0x2590, 143},
{0x2591, 144}, {0x2592, 145}, {0x2593, 146}, {0x25a0, 148},
{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 koi8_u_unicode_table[128] = {
0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e,
0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9,
0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
};
static struct ciolib_cpmap iso8859_15_table[128] = {
{0x00a0, 160}, {0x00a1, 161}, {0x00a2, 162}, {0x00a3, 163},
{0x00a5, 165}, {0x00a7, 167}, {0x00a7, 21}, {0x00a9, 169},
{0x00aa, 170}, {0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173},
{0x00ae, 174}, {0x00af, 175}, {0x00b0, 176}, {0x00b1, 177},
{0x00b2, 178}, {0x00b3, 179}, {0x00b5, 181}, {0x00b6, 20},
{0x00b6, 182}, {0x00b7, 183}, {0x00b9, 185}, {0x00ba, 186},
{0x00bb, 187}, {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}, {0x0152, 188}, {0x0153, 189},
{0x0160, 166}, {0x0161, 168}, {0x0178, 190}, {0x017d, 180},
{0x017e, 184}, {0x2022, 7}, {0x203c, 19}, {0x20ac, 164},
{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_15_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, 0x20ac, 0x00a5, 0x0160, 0x00a7,
0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7,
0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 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 iso8859_5_table[128] = {
{0x00a0, 160}, {0x00a7, 21}, {0x00a7, 253}, {0x00ad, 173},
{0x00b6, 20}, {0x0401, 161}, {0x0402, 162}, {0x0403, 163},
{0x0404, 164}, {0x0405, 165}, {0x0406, 166}, {0x0407, 167},
{0x0408, 168}, {0x0409, 169}, {0x040a, 170}, {0x040b, 171},
{0x040c, 172}, {0x040e, 174}, {0x040f, 175}, {0x0410, 176},
{0x0411, 177}, {0x0412, 178}, {0x0413, 179}, {0x0414, 180},
{0x0415, 181}, {0x0416, 182}, {0x0417, 183}, {0x0418, 184},
{0x0419, 185}, {0x041a, 186}, {0x041b, 187}, {0x041c, 188},
{0x041d, 189}, {0x041e, 190}, {0x041f, 191}, {0x0420, 192},
{0x0421, 193}, {0x0422, 194}, {0x0423, 195}, {0x0424, 196},
{0x0425, 197}, {0x0426, 198}, {0x0427, 199}, {0x0428, 200},
{0x0429, 201}, {0x042a, 202}, {0x042b, 203}, {0x042c, 204},
{0x042d, 205}, {0x042e, 206}, {0x042f, 207}, {0x0430, 208},
{0x0431, 209}, {0x0432, 210}, {0x0433, 211}, {0x0434, 212},
{0x0435, 213}, {0x0436, 214}, {0x0437, 215}, {0x0438, 216},
{0x0439, 217}, {0x043a, 218}, {0x043b, 219}, {0x043c, 220},
{0x043d, 221}, {0x043e, 222}, {0x043f, 223}, {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},
{0x0452, 242}, {0x0453, 243}, {0x0454, 244}, {0x0455, 245},
{0x0456, 246}, {0x0457, 247}, {0x0458, 248}, {0x0459, 249},
{0x045a, 250}, {0x045b, 251}, {0x045c, 252}, {0x045e, 254},
{0x045f, 255}, {0x2022, 7}, {0x203c, 19}, {0x2116, 240},
{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_5_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, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f,
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,
0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f
};
static struct ciolib_cpmap cp850_table[160] = {
{0x00a0, 255}, {0x00a1, 173}, {0x00a2, 189}, {0x00a3, 156},
{0x00a4, 207}, {0x00a5, 190}, {0x00a6, 221}, {0x00a7, 21},
{0x00a7, 245}, {0x00a8, 249}, {0x00a9, 184}, {0x00aa, 166},
{0x00ab, 174}, {0x00ac, 170}, {0x00ad, 240}, {0x00ae, 169},
{0x00af, 238}, {0x00b0, 248}, {0x00b1, 241}, {0x00b2, 253},
{0x00b3, 252}, {0x00b4, 239}, {0x00b5, 230}, {0x00b6, 20},
{0x00b6, 244}, {0x00b7, 250}, {0x00b8, 247}, {0x00b9, 251},
{0x00ba, 167}, {0x00bb, 175}, {0x00bc, 172}, {0x00bd, 171},
{0x00be, 243}, {0x00bf, 168}, {0x00c0, 183}, {0x00c1, 181},
{0x00c2, 182}, {0x00c3, 199}, {0x00c4, 142}, {0x00c5, 143},
{0x00c6, 146}, {0x00c7, 128}, {0x00c8, 212}, {0x00c9, 144},
{0x00ca, 210}, {0x00cb, 211}, {0x00cc, 222}, {0x00cd, 214},
{0x00ce, 215}, {0x00cf, 216}, {0x00d0, 209}, {0x00d1, 165},
{0x00d2, 227}, {0x00d3, 224}, {0x00d4, 226}, {0x00d5, 229},
{0x00d6, 153}, {0x00d7, 158}, {0x00d8, 157}, {0x00d9, 235},
{0x00da, 233}, {0x00db, 234}, {0x00dc, 154}, {0x00dd, 237},
{0x00de, 232}, {0x00df, 225}, {0x00e0, 133}, {0x00e1, 160},
{0x00e2, 131}, {0x00e3, 198}, {0x00e4, 132}, {0x00e5, 134},
{0x00e6, 145}, {0x00e7, 135}, {0x00e8, 138}, {0x00e9, 130},
{0x00ea, 136}, {0x00eb, 137}, {0x00ec, 141}, {0x00ed, 161},
{0x00ee, 140}, {0x00ef, 139}, {0x00f0, 208}, {0x00f1, 164},
{0x00f2, 149}, {0x00f3, 162}, {0x00f4, 147}, {0x00f5, 228},
{0x00f6, 148}, {0x00f7, 246}, {0x00f8, 155}, {0x00f9, 151},
{0x00fa, 163}, {0x00fb, 150}, {0x00fc, 129}, {0x00fd, 236},
{0x00fe, 231}, {0x00ff, 152}, {0x0131, 213}, {0x0192, 159},
{0x2017, 242}, {0x2022, 7}, {0x203c, 19}, {0x2190, 27},
{0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29},
{0x2195, 18}, {0x21a8, 23}, {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},
{0x2554, 201}, {0x2557, 187}, {0x255a, 200}, {0x255d, 188},
{0x2560, 204}, {0x2563, 185}, {0x2566, 203}, {0x2569, 202},
{0x256c, 206}, {0x2580, 223}, {0x2584, 220}, {0x2588, 219},
{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 cp850_unicode_table[128] = {
0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192,
0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0,
0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510,
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3,
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce,
0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,
0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe,
0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4,
0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8,
0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
};
static struct ciolib_cpmap cp865_table[160] = {
{0x00a0, 255}, {0x00a1, 173}, {0x00a3, 156}, {0x00a4, 175},
{0x00a7, 21}, {0x00aa, 166}, {0x00ab, 174}, {0x00ac, 170},
{0x00b0, 248}, {0x00b1, 241}, {0x00b2, 253}, {0x00b5, 230},
{0x00b6, 20}, {0x00b7, 250}, {0x00ba, 167}, {0x00bc, 172},
{0x00bd, 171}, {0x00bf, 168}, {0x00c4, 142}, {0x00c5, 143},
{0x00c6, 146}, {0x00c7, 128}, {0x00c9, 144}, {0x00d1, 165},
{0x00d6, 153}, {0x00d8, 157}, {0x00dc, 154}, {0x00df, 225},
{0x00e0, 133}, {0x00e1, 160}, {0x00e2, 131}, {0x00e4, 132},
{0x00e5, 134}, {0x00e6, 145}, {0x00e7, 135}, {0x00e8, 138},
{0x00e9, 130}, {0x00ea, 136}, {0x00eb, 137}, {0x00ec, 141},
{0x00ed, 161}, {0x00ee, 140}, {0x00ef, 139}, {0x00f1, 164},
{0x00f2, 149}, {0x00f3, 162}, {0x00f4, 147}, {0x00f6, 148},
{0x00f7, 246}, {0x00f8, 155}, {0x00f9, 151}, {0x00fa, 163},
{0x00fb, 150}, {0x00fc, 129}, {0x00ff, 152}, {0x0192, 159},
{0x0393, 226}, {0x0398, 233}, {0x03a3, 228}, {0x03a6, 232},
{0x03a9, 234}, {0x03b1, 224}, {0x03b4, 235}, {0x03b5, 238},
{0x03c0, 227}, {0x03c3, 229}, {0x03c4, 231}, {0x03c6, 237},
{0x2022, 7}, {0x203c, 19}, {0x207f, 252}, {0x20a7, 158},
{0x2190, 27}, {0x2191, 24}, {0x2192, 26}, {0x2193, 25},
{0x2194, 29}, {0x2195, 18}, {0x21a8, 23}, {0x2219, 249},
{0x221a, 251}, {0x221e, 236}, {0x221f, 28}, {0x2229, 239},
{0x2248, 247}, {0x2261, 240}, {0x2264, 243}, {0x2265, 242},
{0x2310, 169}, {0x2320, 244}, {0x2321, 245}, {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 cp865_unicode_table[128] = {
0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192,
0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00a4,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
};
static int
cmptab(const void *key, const void *entry)
{
......@@ -606,6 +1124,30 @@ struct codepage_def ciolib_cp[CIOLIB_CP_COUNT] = {
{"ISO-8859-4", CIOLIB_ISO_8859_4, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext,
iso8859_4_table, sizeof(iso8859_4_table) / sizeof(iso8859_4_table[0]),
iso8859_4_unicode_table, empty_ext_table},
{"CP866M", CIOLIB_CP866M, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext,
cp866m_table, sizeof(cp866m_table) / sizeof(cp866m_table[0]),
cp866m_unicode_table, cp437_ext_table},
{"ISO-8859-9", CIOLIB_ISO_8859_9, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext,
iso8859_9_table, sizeof(iso8859_9_table) / sizeof(iso8859_9_table[0]),
iso8859_9_unicode_table, empty_ext_table},
{"ISO-8859-8", CIOLIB_ISO_8859_8, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext,
iso8859_8_table, sizeof(iso8859_8_table) / sizeof(iso8859_8_table[0]),
iso8859_8_unicode_table, empty_ext_table},
{"KOI8-U", CIOLIB_KOI8_U, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext,
koi8_u_table, sizeof(koi8_u_table) / sizeof(koi8_u_table[0]),
koi8_u_unicode_table, empty_ext_table},
{"ISO-8859-15", CIOLIB_ISO_8859_15, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext,
iso8859_15_table, sizeof(iso8859_15_table) / sizeof(iso8859_15_table[0]),
iso8859_15_unicode_table, empty_ext_table},
{"ISO-8859-5", CIOLIB_ISO_8859_5, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext,
iso8859_5_table, sizeof(iso8859_5_table) / sizeof(iso8859_5_table[0]),
iso8859_5_unicode_table, empty_ext_table},
{"CP850", CIOLIB_CP850, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cptable_from_unicode_cpoint_ext,
cp850_table, sizeof(cp850_table) / sizeof(cp850_table[0]),
cp850_unicode_table, cp437_ext_table},
{"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},
};
uint8_t *cp_to_utf8(enum ciolib_codepage cp, const char *cpstr, size_t buflen, size_t *outlen)
......
......@@ -7,6 +7,14 @@ enum ciolib_codepage {
CIOLIB_KOI8_R,
CIOLIB_ISO_8859_2,
CIOLIB_ISO_8859_4,
CIOLIB_CP866M,
CIOLIB_ISO_8859_9,
CIOLIB_ISO_8859_8,
CIOLIB_KOI8_U,
CIOLIB_ISO_8859_15,
CIOLIB_ISO_8859_5,
CIOLIB_CP850,
CIOLIB_CP865,
CIOLIB_CP_COUNT
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment