Subject: bug#23594: 25.0.94; Display errors on Linux tty

From: Alan Mackenzie <[email-masked]>
Date: Sun, 22 May 2016 09:38:13 +0000

Hello, Eli.

On Sat, May 21, 2016 at 10:09:38PM +0300, Eli Zaretskii wrote:
> > > This bug exists since we started showing the 'decomposition' of
> > > characters in Emacs 24.1.  With LF, we send a literal LF character
> > > to the screen.

That's only half the story.  The literal LF doesn't seem to be the
problem.  Rather, it's got a 'composition text-property attached to it.
The string we're trying to display is

#("  decomposition: (10) ('\n')\n" 24 25 (composition (0 1 [9 10 9])))
                           ^
			   |
			   24

What is this composition trying to do?  The [9 10 9] is [\t \n \t].

The whole thing is a result of calling
    (char-code-property-description 'decomposition '(10))

Under X-Windows, the same string is displayed, this time successfully.
The call
    (inseert #("  decomposition: .... [9 10 9])))
works on X-Windows, the "\n" with the composition property being
displayed as a square box.

> > OK.  The next question is is it easy to fix?

> Yes.  We should not send control characters to that buffer.

It seems to me there is a bug in the display engine here: the same
string which is displayed successfully in X-Windows goes badly wrong on
a Linux tty.

Comments?

-- 
Alan Mackenzie (Nuremberg, Germany).