From 036e07ef4aa3e18bbbe0d2552da920ef2e4b3594 Mon Sep 17 00:00:00 2001 From: tkchia Date: Sat, 10 Sep 2022 07:09:13 +0000 Subject: [PATCH] Bare metal VGA: render "italicized"/"Fraktur" text as normal text --- libc/vga/tty.c | 61 +++++++++----------------------------------------- 1 file changed, 11 insertions(+), 50 deletions(-) diff --git a/libc/vga/tty.c b/libc/vga/tty.c index e213b11ca..4c3c89099 100644 --- a/libc/vga/tty.c +++ b/libc/vga/tty.c @@ -146,66 +146,27 @@ static wchar_t *GetXlatLineDrawing(void) { return xlat; } -static void XlatAlphabet(wchar_t xlat[128], int a, int b) { - unsigned i; - for (i = 0; i < 128; ++i) { - if ('a' <= i && i <= 'z') { - xlat[i] = i - 'a' + a; - } else if ('A' <= i && i <= 'Z') { - xlat[i] = i - 'A' + b; - } else { - xlat[i] = i; - } - } -} - static wchar_t *GetXlatItalic(void) { - static bool once; - static wchar_t xlat[128]; - if (!once) { - XlatAlphabet(xlat, L'𝑎', L'𝐴'); - once = true; - } - return xlat; + /* Unimplemented. Simply output normal non-italicized characters for now. */ + return GetXlatAscii(); } static wchar_t *GetXlatBoldItalic(void) { - static bool once; - static wchar_t xlat[128]; - if (!once) { - XlatAlphabet(xlat, L'𝒂', L'𝑨'); - once = true; - } - return xlat; + /* + * Unimplemented. Simply output high-intensity non-italicized characters + * for now. + */ + return GetXlatAscii(); } static wchar_t *GetXlatBoldFraktur(void) { - static bool once; - static wchar_t xlat[128]; - if (!once) { - XlatAlphabet(xlat, L'𝖆', L'𝕬'); - once = true; - } - return xlat; + /* Unimplemented. */ + return GetXlatAscii(); } static wchar_t *GetXlatFraktur(void) { - unsigned i; - static bool once; - static wchar_t xlat[128]; - if (!once) { - for (i = 0; i < ARRAYLEN(xlat); ++i) { - if ('A' <= i && i <= 'Z') { - xlat[i] = L"𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ"[i - 'A']; - } else if ('a' <= i && i <= 'z') { - xlat[i] = i - 'a' + L'𝔞'; - } else { - xlat[i] = i; - } - } - once = true; - } - return xlat; + /* Unimplemented. */ + return GetXlatAscii(); } static wchar_t *GetXlatDoubleWidth(void) {