Subject: Re: bug#24468: Emacs 25.1: Use of face escape-glyph on curly quotes is irritating.

From: Alan Mackenzie <[email-masked]>
Date: Wed, 21 Sep 2016 15:04:09 +0000

Hello, Eli.

On Mon, Sep 19, 2016 at 07:52:16PM +0300, Eli Zaretskii wrote:
> > Date: Mon, 19 Sep 2016 10:01:01 +0000
> > From: Alan Mackenzie <[email-masked]>
> > 
> > In Emacs 25.1, I am using the info files built for the distribution
> > using texinfo 5 (?or 6).  They contain lots of curly quotes.

> > On my Linux virtual terminal, these are all displayed with the
> > escape-glyph, which is irritating in the extreme.  The workaround of
> > customizing escape-glyph to the default face would prevent the effect of
> > highlighting things like \377 and ^L, which is the proper use of
> > escape-glyph.

> This is not supposed to happen.  Emacs should test at startup whether
> the terminal can display these characters, and if not, replace them by
> ASCII equivalents.  Please try to figure out why this doesn't work for
> you (it does for me, although not on a Linux terminal).

It _is_ "working" for me.  The function startup--setup-quote-display
determines that my Linux vt can't display the four curly quote
characters.  It's half right (it can display the curly single quotes but
not the curly double quotes).

It then goes on to set up these four characters in the standard display
table, and what it sets up is the equivalent ASCII characters with hard
coded face escape-glyph.  It's this last bit I don't like.  That bit of
the code looks like this:

    (dotimes (i 4)
      (let ((char (aref "`'""" i))
            (repl (aref repls i)))
        (if repl
            (aset (or standard-display-table
                      (setq standard-display-table (make-display-table)))
                  char (vector (make-glyph-code repl 'escape-glyph)))   <=============
          (when standard-display-table
            (aset standard-display-table char nil)))))

> > Please, can we have this facility, at long last, controlled by a
> > customisable option?

> Let's first understand why the automatic detection doesn't work.  IME,
> devising a solution for a problem we don't understand is not a good
> idea.

I think there's no mystery here.  Just my original post wasn't too clear.
I would like there to be a user option to decide whether to put the face
'escape-glyph on these four characters, rather than it being hard coded
at start-up time.  (I have now commented out "'escape-glyph" in my own
copy of Emacs.)

> Thanks.

-- 
Alan Mackenzie (Nuremberg, Germany).