Subject: Re: bug#19347: 24.4.50; Display of bengali text

From: Eli Zaretskii <[email-masked]>
Date: Mon, 29 Dec 2014 21:00:59 +0200

Added Handa-san, as this seems to be some subtle issue with composed
characters.

The beginning of this thread is here:

  http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19347

The files Richard sent are here:

  http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19347#101

> Date: Sat, 27 Dec 2014 17:55:42 -0500
> From: Richard Stallman <[email-masked]>
> CC: [email-masked], [email-masked]
> 
> enabled.out is output with Auto-Composition mode enabled.
> disabled.out is output with Auto-Composition mode disabled.  They
> don't correspond to the same commands, but they both display the same
> buffer.  With Auto-Composition mode enabled, the screen was messed up.
> With Auto-Composition mode disabled, display was correct.

The difference is the character whose codepoint is 0x09C1.  This
character's general category is "non-spacing mark".  When
Auto-Composition mode is disabled, we compute the width of this
character as zero, and don't add it to the glyph row, so it doesn't
get written to the terminal.  When Auto-Composition mode is enabled,
we compose this character with the preceding one, and send them both
to the terminal.

More importantly, it looks like, when a TTY frame displays on a
terminal in a UTF-8 locale, we send composed characters to the
terminal, and I'm not sure text-mode terminals and/or our TTY display
code are ready for that.  For example, moving the cursor seems to send
only part of the composition sequence to the screen, which produces
garbled display.

Should we disable (or bypass) Auto-Composition mode on TTY frames?