emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Display of undisplayable characters: \U01F3A8 instead of diamond


From: Alan Mackenzie
Subject: Re: Display of undisplayable characters: \U01F3A8 instead of diamond
Date: Sun, 28 Aug 2022 10:07:00 +0000

Hello, Eli.

On Sun, Aug 28, 2022 at 08:22:02 +0300, Eli Zaretskii wrote:
> > From: Richard Stallman <rms@gnu.org>
> > Cc: emacs-devel@gnu.org
> > Date: Sun, 28 Aug 2022 00:04:53 -0400

> >   > It disturbs me most whilst reading info.  Modern versions of makeinfo
> >   > generate Unicode punctuation characters, and having them displayed on
> >   > the screen as \Uxxxx completely screws up the alignment these characters
> >   > are meant to achieve (for example).

> > Can we modify info.el so as to display those characters
> > as the curresponding ASCII punctuation characters?

> It already does, where an ASCII equivalent exists.  See
> info-symbols-and-replacements.  Alan didn't report any details, so I
> don't have any idea why it doesn't work for him (if indeed it doesn't).

I didn't actually know about that feature, which you added in October
2019 (commit 8dd18bbb6f3c09a4988cf2e06378aa24b098fb85).  It fails on my
Linux console because of a guarding clause in the `unless' which
surrounds the initialisation of buffer-display-table:

  (unless (or (display-multi-font-p)
              (coding-system-equal                 <====================
               (coding-system-base (terminal-coding-system)) <==========
               'utf-8))                            <====================
    (dolist (elt info-symbols-and-replacements)
      (let ((ch (car elt))
            (repl (cdr elt)))
        (or (char-displayable-p ch)
            (aset (or buffer-display-table
                      (setq buffer-display-table (make-display-table)))
                  ch (vconcat (mapcar (lambda (c)
                                        (make-glyph-code c 'homoglyph))
                                      repl)))))))

On my setup that (coding-system-equal .... 'utf-8) returns t, so
buffer-display-table never gets initialised.

Why is that coding-system-equal form there?  I think the mechanism would
work on my system if it weren't (though I haven't tried it, yet).

-- 
Alan Mackenzie (Nuremberg, Germany).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]