[vte] emulation: Make DEC alternate charset convert underscore to space



commit bff758d228772c2aac653d0feb9a51cd75ad80dd
Author: Egmont Koblinger <egmont gmail com>
Date:   Sat Sep 14 22:37:28 2019 +0200

    emulation: Make DEC alternate charset convert underscore to space
    
    https://gitlab.gnome.org/GNOME/vte/issues/157

 src/vte.cc | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index da2b0bad..fc772a37 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -2983,7 +2983,8 @@ Terminal::insert_char(gunichar c,
         gunichar c_unmapped = c;
 
         /* DEC Special Character and Line Drawing Set.  VT100 and higher (per XTerm docs). */
-        static const gunichar line_drawing_map[31] = {
+        static const gunichar line_drawing_map[32] = {
+                0x0020,  /* _ => blank (space) */
                 0x25c6,  /* ` => diamond */
                 0x2592,  /* a => checkerboard */
                 0x2409,  /* b => HT symbol */
@@ -3022,8 +3023,8 @@ Terminal::insert_char(gunichar c,
        /* If we've enabled the special drawing set, map the characters to
         * Unicode. */
         if (G_UNLIKELY (*m_character_replacement == VTE_CHARACTER_REPLACEMENT_LINE_DRAWING)) {
-                if (c >= 96 && c <= 126)
-                        c = line_drawing_map[c - 96];
+                if (c >= 95 && c <= 126)
+                        c = line_drawing_map[c - 95];
         } else if (G_UNLIKELY (*m_character_replacement == VTE_CHARACTER_REPLACEMENT_BRITISH)) {
                 if (G_UNLIKELY (c == '#'))
                         c = 0x00a3;  /* pound sign */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]