Subject: bug#8703: truncated unicode glyphs in X11

From: Bertram Felgenhauer <[email-masked]>
Date: Thu, 19 May 2011 22:17:02 +0200

The behaviour is probably best demonstrated with screenshots,

http://cl-informatik.uibk.ac.at/users/bf3/emacs/

To summarize, Proof General (which is an emacs based frontend for
automatic theorem provers) can display parts of formulas using unicode
characters. In recent versions of emacs, these get truncated (i.e.
the corresponding character cells are too narrow to contain the
character.) This bug affects emacs 23.3 and the current development
version. Version 23.2 is fine.

I have tracked down the regression using git-bisect, and found it
was introduced by

http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=5d747e944fd5a15bb36f865efc214024803c5fcf

Undoing a single change restores the correct behaviour for me:

diff --git a/src/xdisp.c b/src/xdisp.c
index 3c9d385..20365ff 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5926,8 +5926,7 @@ get_next_display_element (struct it *it)
                           : STRINGP (it->string) ? IT_STRING_CHARPOS (*it)
                           : IT_CHARPOS (*it));
 
-         it->face_id = FACE_FOR_CHAR (it->f, face, it->char_to_display, pos,
-                                      it->string);
+         it->face_id = FACE_FOR_CHAR (it->f, face, it->c, pos, it->string);
        }
     }
 #endif

I do not know the code in question, so this fix may be wrong.

Best regards,

Bertram Felgenhauer