From 715da3c2b8096df611ffb20d6e17df36d342aaed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Kugland?= Date: Mon, 30 May 2022 07:10:03 +0000 Subject: [PATCH] Updated DEC Line Graphics character set to use Unicode 3.2.0 characters where appropriate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four characters in DEC Special Graphics (Line Drawing)[⁽¹⁾] charset were translated by Konsole into codepoints in private use area. This patch uses the same code points that xterm uses. | Index | Previously | Should be | | ------ | ---------- | ----------| | `0x6F` | `U+F800` | `U+23BA` | | `0x70` | `U+F801` | `U+23BB` | | `0x72` | `U+F803` | `U+23BC` | | `0x73` | `U+F804` | `U+23BD` | The old behavior used the same mapping used by Linux consoles, as stated in `unicode.txt`[⁽²⁾] in Linux's documents. This has been changed long ago when Unicode 3.2.0 introduced the codepoints `U+23BA`, `U+23BB`, `U+23BC`, `U+23BD`, as the following excerpt of `unicode.txt` says: ``` In addition, the following characters not present in Unicode 1.1.4 have been defined; these are used by the DEC VT graphics map. [v1.2] THIS USE IS OBSOLETE AND SHOULD NO LONGER BE USED; PLEASE SEE BELOW. ====== ====================================== U+F800 DEC VT GRAPHICS HORIZONTAL LINE SCAN 1 U+F801 DEC VT GRAPHICS HORIZONTAL LINE SCAN 3 U+F803 DEC VT GRAPHICS HORIZONTAL LINE SCAN 7 U+F804 DEC VT GRAPHICS HORIZONTAL LINE SCAN 9 ====== ====================================== [...] [v1.3]: These characters have been officially added to Unicode 3.2.0; they are added at U+23BA, U+23BB, U+23BC, U+23BD. Linux now uses the new values. ``` [⁽¹⁾]: https://vt100.net/docs/vt220-rm/chapter2.html#T2-4 [⁽²⁾]: https://raw.githubusercontent.com/torvalds/linux/5bfc75d92efd494db37f5c4c173d3639d4772966/Documentation/admin-guide/unicode.rst --- doc/user/README.fonts | 15 ++++----------- src/Vt102Emulation.cpp | 2 +- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/doc/user/README.fonts b/doc/user/README.fonts index 6d10126e..61601c07 100644 --- a/doc/user/README.fonts +++ b/doc/user/README.fonts @@ -58,7 +58,11 @@ Fonts need to suit the needs of X11, QT and konsole. - 0x0d U+250c : BOX DRAWINGS LIGHT DOWN AND RIGHT - 0x0e U+2514 : BOX DRAWINGS LIGHT UP AND RIGHT - 0x0f U+253c : BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL + - 0x10 U+23ba : HORIZONTAL SCAN LINE-1 + - 0x11 U+23bb : HORIZONTAL SCAN LINE-3 - 0x12 U+2500 : BOX DRAWINGS LIGHT HORIZONTAL (scan line 5) + - 0x13 U+23bc : HORIZONTAL SCAN LINE-7 + - 0x14 U+23bd : HORIZONTAL SCAN LINE-9 - 0x15 U+251c : BOX DRAWINGS LIGHT VERTICAL AND RIGHT - 0x16 U+2524 : BOX DRAWINGS LIGHT VERTICAL AND LEFT - 0x17 U+2534 : BOX DRAWINGS LIGHT UP AND HORIZONTAL @@ -69,17 +73,6 @@ Fonts need to suit the needs of X11, QT and konsole. - 0x02 U+2592 : MEDIUM SHADE - 0x1F U+00b7 : MIDDLE DOT - The following graphical glyphs are defined in - VT100 fonts, too, but are not used in any program - i know about. Codes for them have been assigned - in the private unicode page. See the linux kernel - documentation file [unicode.txt] about this assignment. - - - 0x10 U+f800 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 1 - - 0x11 U+f801 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 3 - - 0x13 U+f803 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 7 - - 0x14 U+f804 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 9 - Also, the VT100 knows about the following glyphs, though omitting them is unlikely to break anything. diff --git a/src/Vt102Emulation.cpp b/src/Vt102Emulation.cpp index 66061832..3987f435 100644 --- a/src/Vt102Emulation.cpp +++ b/src/Vt102Emulation.cpp @@ -52,7 +52,7 @@ unsigned short Konsole::vt100_graphics[32] = { // 0/8 1/9 2/10 3/11 4/12 5/13 6/14 7/15 0x0020, 0x25C6, 0x2592, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0, 0x00b1, 0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, - 0xF800, 0xF801, 0x2500, 0xF803, 0xF804, 0x251c, 0x2524, 0x2534, + 0x23ba, 0x23bb, 0x2500, 0x23bc, 0x23bd, 0x251c, 0x2524, 0x2534, 0x252c, 0x2502, 0x2264, 0x2265, 0x03C0, 0x2260, 0x00A3, 0x00b7 }; /* clang-format on */