Note: This bug is fixed in the emacs-23 branch now, so emacs 23.4 (once released) should handle this correctly again. See also the emacs bug tracker.
This is Proof General running with emacs head. Version 23.3 behaves the same, while 23.2 is fine.
The characters should not be truncated.
This is Proof General running on emacs head with the work-around below.
The behaviour was introduced with this patch ("Fix handling of 8-bit characters in a display table.")
I do not really understand the code, but with the following change the correct behaviour is restored.
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
This work-around is not correct though. See the emacs bug tracker for a correct fix.