diff --git a/src/conio/utf8_codepages.c b/src/conio/utf8_codepages.c index b3a9005ce40ce8b1e1deb4202e38ef0b4656e374..158f1fe49fe24cdbab9c4f8ff8c0a087788d9765 100644 --- a/src/conio/utf8_codepages.c +++ b/src/conio/utf8_codepages.c @@ -1235,44 +1235,22 @@ const static uint32_t haik8_unicode_table[128] = { 0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x02bc, 0xfffd }; -const static struct ciolib_cpmap atascii_table[148] = { - {0x0007, 252}, {0x0008, 126}, {0x0009, 127}, {0x000d, 155}, - {0x001b, 27}, {0x0020, 32}, {0x0021, 33}, {0x0022, 34}, - {0x0023, 35}, {0x0024, 36}, {0x0025, 37}, {0x0026, 38}, - {0x0027, 39}, {0x0028, 40}, {0x0029, 41}, {0x002a, 42}, - {0x002b, 43}, {0x002c, 44}, {0x002d, 45}, {0x002e, 46}, - {0x002f, 47}, {0x0030, 48}, {0x0031, 49}, {0x0032, 50}, - {0x0033, 51}, {0x0034, 52}, {0x0035, 53}, {0x0036, 54}, - {0x0037, 55}, {0x0038, 56}, {0x0039, 57}, {0x003a, 58}, - {0x003b, 59}, {0x003c, 60}, {0x003d, 61}, {0x003e, 62}, - {0x003f, 63}, {0x0040, 64}, {0x0041, 65}, {0x0042, 66}, - {0x0043, 67}, {0x0044, 68}, {0x0045, 69}, {0x0046, 70}, - {0x0047, 71}, {0x0048, 72}, {0x0049, 73}, {0x004a, 74}, - {0x004b, 75}, {0x004c, 76}, {0x004d, 77}, {0x004e, 78}, - {0x004f, 79}, {0x0050, 80}, {0x0051, 81}, {0x0052, 82}, - {0x0053, 83}, {0x0054, 84}, {0x0055, 85}, {0x0056, 86}, - {0x0057, 87}, {0x0058, 88}, {0x0059, 89}, {0x005a, 90}, - {0x005b, 91}, {0x005c, 92}, {0x005d, 93}, {0x005e, 94}, - {0x005f, 95}, {0x0061, 97}, {0x0062, 98}, {0x0063, 99}, - {0x0064, 100}, {0x0065, 101}, {0x0066, 102}, {0x0067, 103}, - {0x0068, 104}, {0x0069, 105}, {0x006a, 106}, {0x006b, 107}, - {0x006c, 108}, {0x006d, 109}, {0x006e, 110}, {0x006f, 111}, - {0x0070, 112}, {0x0071, 113}, {0x0072, 114}, {0x0073, 115}, - {0x0074, 116}, {0x0075, 117}, {0x0076, 118}, {0x0077, 119}, - {0x0078, 120}, {0x0079, 121}, {0x007a, 122}, {0x007c, 124}, - {0x007f, 253}, {0x00a0, 155}, {0x2022, 148}, {0x2190, 30}, - {0x2191, 28}, {0x2192, 159}, {0x2193, 157}, {0x21b0, 125}, - {0x241b, 27}, {0x2500, 18}, {0x250c, 145}, {0x2510, 5}, - {0x2514, 26}, {0x2518, 131}, {0x251c, 129}, {0x2524, 132}, - {0x252c, 23}, {0x2534, 24}, {0x253c, 147}, {0x2571, 6}, - {0x2572, 135}, {0x2580, 149}, {0x2582, 142}, {0x2584, 21}, - {0x2586, 141}, {0x2588, 160}, {0x258a, 130}, {0x258c, 25}, - {0x258e, 150}, {0x2590, 153}, {0x2596, 143}, {0x2597, 137}, - {0x2598, 140}, {0x2599, 139}, {0x259b, 137}, {0x259c, 143}, - {0x259d, 139}, {0x259f, 140}, {0x25b6, 127}, {0x25c0, 126}, - {0x25d8, 148}, {0x25e2, 136}, {0x25e3, 10}, {0x25e4, 136}, - {0x25e5, 138}, {0x2660, 123}, {0x2663, 144}, {0x2665, 63}, - {0x2666, 96}, {0xfffd, 63}, {0x1fb82, 13}, {0x1fb87, 2} +const static struct ciolib_cpmap atascii_table[58] = { + {0x0007, 253}, {0x0008, 126}, {0x0009, 127}, {0x000d, 155}, + {0x007f, 254}, {0x00a0, 155}, {0x2022, 148}, {0x2190, 30}, + {0x2191, 28}, {0x2192, 159}, {0x2193, 157}, {0x2196, 125}, + {0x21b0, 125}, {0x241b, 27}, {0x2500, 18}, {0x2502, 124}, + {0x250c, 145}, {0x2510, 5}, {0x2514, 26}, {0x2518, 131}, + {0x251c, 129}, {0x2524, 132}, {0x252c, 23}, {0x2534, 24}, + {0x253c, 147}, {0x2571, 6}, {0x2572, 135}, {0x2580, 149}, + {0x2582, 142}, {0x2584, 21}, {0x2586, 141}, {0x2588, 160}, + {0x258a, 130}, {0x258c, 25}, {0x258e, 150}, {0x2590, 153}, + {0x2596, 143}, {0x2597, 137}, {0x2598, 140}, {0x2599, 139}, + {0x259b, 137}, {0x259c, 143}, {0x259d, 139}, {0x259f, 140}, + {0x25b6, 127}, {0x25c0, 126}, {0x25d8, 148}, {0x25e2, 136}, + {0x25e3, 10}, {0x25e4, 136}, {0x25e5, 138}, {0x2660, 123}, + {0x2663, 144}, {0x2665, 63}, {0x2666, 96}, {0xfffd, 63}, + {0x1fb82, 13}, {0x1fb87, 2} }; const static uint32_t atascii_unicode_table[256] = { @@ -1291,7 +1269,7 @@ const static uint32_t atascii_unicode_table[256] = { 0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x0008, 0x0009, + 0x0078, 0x0079, 0x007a, 0x2660, 0x2502, /* 0x21b0 */ 0x2196, 0x0008, 0x0009, 0x2665, 0x251c, 0x258a, 0x2518, 0x2524, 0x2510, 0x2571, 0x2572, 0x25e4, 0x259b, 0x25e5, 0x2599, 0x259f, 0x2586, 0x2582, 0x259c, 0x2663, 0x250c, 0x2500, 0x253c, 0x25d8, 0x2580, 0x258e, 0x252c, @@ -1307,7 +1285,7 @@ const static uint32_t atascii_unicode_table[256] = { 0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x2660, 0x0007, 0x007f, 0x25c0, 0x25b6 + 0x0078, 0x0079, 0x007a, 0x2660, 0x2502, 0x0007, 0x007f, 0x25b6 }; const static uint32_t atascii_ext_table[256] = { @@ -1326,7 +1304,7 @@ const static uint32_t atascii_ext_table[256] = { 0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x25c0, 0x25b6, + 0x0078, 0x0079, 0x007a, 0x2660, 0x2502, /* 0x21b0 */ 0x2196, 0x25c0, 0x25b6, 0x2665, 0x251c,0x1fb87, 0x2518, 0x2524, 0x2510, 0x2571, 0x2572, 0x25e2, 0x2597, 0x25e3, 0x259d, 0x2598,0x1fb82, 0x2582, 0x2596, 0x2663, 0x250c, 0x2500, 0x253c, 0x2022, 0x2584, 0x258e, 0x252c, @@ -1342,7 +1320,7 @@ const static uint32_t atascii_ext_table[256] = { 0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x25c0, 0x25b6 + 0x0078, 0x0079, 0x007a, 0x2660, 0x2502, /* 0x21b0 */ 0x2196, 0x25c0, 0x25b6 }; const static struct ciolib_cpmap petsciiu_table[129] = { diff --git a/src/syncterm/term.c b/src/syncterm/term.c index 52c433a4fcbb1d1a935da049a2482dd88bfaf0d2..d7c7bc64d8b5e307f925d986862028beaa73a02b 100644 --- a/src/syncterm/term.c +++ b/src/syncterm/term.c @@ -342,7 +342,6 @@ update_status(struct bbslist *bbs, int speed, int ooii_mode, bool ata_inv) char sep; int oldfont_norm; int oldfont_bright; - int calcwidth; if (term.nostatus) return; @@ -4267,10 +4266,18 @@ doterm(struct bbslist *bbs) ch[0] = 30; conn_send(ch, 1, 0); break; + case CIO_KEY_IC: + ch[0] = 255; + conn_send(ch, 1, 0); + break; case '\t': ch[0] = 127; conn_send(ch, 1, 0); break; + case '|': + ch[0] = 124 + (atascii_inverse ? 128 : 0); + conn_send(ch, 1, 0); + break; case 96: /* Backtick toggles inverse */ atascii_inverse = !atascii_inverse; break; @@ -4281,6 +4288,10 @@ doterm(struct bbslist *bbs) ch[0] = key + (atascii_inverse ? 128 : 0); conn_send(ch, 1, 0); } + else if (key > 252 && key < 256) { + ch[0] = key; + conn_send(ch, 1, 0); + } } break; }