···
864
-
static uint8_t dec_special_to_cp437(uint8_t c) {
864
+
static bool dec_special_print(struct term_context *ctx, uint8_t c) {
865
+
#define TERM_DEC_SPCL_PRN(C) ctx->raw_putchar(ctx, (C)); return true;
866
-
case '`': return 0x04;
867
-
case '0': return 0xdb;
868
-
case '-': return 0x18;
869
-
case ',': return 0x1b;
870
-
case '.': return 0x19;
871
-
case 'a': return 0xb1;
872
-
case 'f': return 0xf8;
873
-
case 'g': return 0xf1;
874
-
case 'h': return 0xb0;
875
-
case 'j': return 0xd9;
876
-
case 'k': return 0xbf;
877
-
case 'l': return 0xda;
878
-
case 'm': return 0xc0;
879
-
case 'n': return 0xc5;
880
-
case 'q': return 0xc4;
881
-
case 's': return 0x5f;
882
-
case 't': return 0xc3;
883
-
case 'u': return 0xb4;
884
-
case 'v': return 0xc1;
885
-
case 'w': return 0xc2;
886
-
case 'x': return 0xb3;
887
-
case 'y': return 0xf3;
888
-
case 'z': return 0xf2;
889
-
case '~': return 0xfa;
890
-
case '_': return 0xff;
891
-
case '+': return 0x1a;
892
-
case '{': return 0xe3;
893
-
case '}': return 0x9c;
867
+
case '`': TERM_DEC_SPCL_PRN(0x04)
868
+
case '0': TERM_DEC_SPCL_PRN(0xdb)
869
+
case '-': TERM_DEC_SPCL_PRN(0x18)
870
+
case ',': TERM_DEC_SPCL_PRN(0x1b)
871
+
case '.': TERM_DEC_SPCL_PRN(0x19)
872
+
case 'a': TERM_DEC_SPCL_PRN(0xb1)
873
+
case 'f': TERM_DEC_SPCL_PRN(0xf8)
874
+
case 'g': TERM_DEC_SPCL_PRN(0xf1)
875
+
case 'h': TERM_DEC_SPCL_PRN(0xb0)
876
+
case 'j': TERM_DEC_SPCL_PRN(0xd9)
877
+
case 'k': TERM_DEC_SPCL_PRN(0xbf)
878
+
case 'l': TERM_DEC_SPCL_PRN(0xda)
879
+
case 'm': TERM_DEC_SPCL_PRN(0xc0)
880
+
case 'n': TERM_DEC_SPCL_PRN(0xc5)
881
+
case 'q': TERM_DEC_SPCL_PRN(0xc4)
882
+
case 's': TERM_DEC_SPCL_PRN(0x5f)
883
+
case 't': TERM_DEC_SPCL_PRN(0xc3)
884
+
case 'u': TERM_DEC_SPCL_PRN(0xb4)
885
+
case 'v': TERM_DEC_SPCL_PRN(0xc1)
886
+
case 'w': TERM_DEC_SPCL_PRN(0xc2)
887
+
case 'x': TERM_DEC_SPCL_PRN(0xb3)
888
+
case 'y': TERM_DEC_SPCL_PRN(0xf3)
889
+
case 'z': TERM_DEC_SPCL_PRN(0xf2)
890
+
case '~': TERM_DEC_SPCL_PRN(0xfa)
891
+
case '_': TERM_DEC_SPCL_PRN(0xff)
892
+
case '+': TERM_DEC_SPCL_PRN(0x1a)
893
+
case '{': TERM_DEC_SPCL_PRN(0xe3)
894
+
case '}': TERM_DEC_SPCL_PRN(0x9c)
896
+
#undef TERM_DEC_SPCL_PRN
// Following wcwidth related code inherited from:
···
case CHARSET_DEC_SPECIAL:
1319
-
c = dec_special_to_cp437(c);
1321
+
if (dec_special_print(ctx, c)) {