]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve detection of glyphless characters on TTY frames
authorEli Zaretskii <eliz@gnu.org>
Thu, 27 Jan 2022 18:35:22 +0000 (20:35 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 27 Jan 2022 18:35:22 +0000 (20:35 +0200)
* src/term.c (produce_glyphs): If the terminal can report for
which characters it has glyphs, use that to determine whether
a given character should be displayed as glyphless.

src/term.c

index 4c7a90a577318aec2d1c22764dde76c750ccc597..ddf0e8e2f28c454b6747bdd149174e1b1c9e11c7 100644 (file)
@@ -1632,9 +1632,13 @@ produce_glyphs (struct it *it)
     }
   else
     {
-      Lisp_Object charset_list = FRAME_TERMINAL (it->f)->charset_list;
+      struct terminal *t = FRAME_TERMINAL (it->f);
+      Lisp_Object charset_list = t->charset_list, char_glyph;
 
-      if (char_charset (it->char_to_display, charset_list, NULL))
+      if (char_charset (it->char_to_display, charset_list, NULL)
+         && (char_glyph = terminal_glyph_code (t, it->char_to_display),
+             NILP (char_glyph)
+             || (FIXNUMP (char_glyph) && XFIXNUM (char_glyph) >= 0)))
        {
          it->pixel_width = CHARACTER_WIDTH (it->char_to_display);
          it->nglyphs = it->pixel_width;