Subject: bug#28242: Batch mode compiling: Error messages are displayed with "invalid character" glyph bounding symbols.

From: Alan Mackenzie <[email-masked]>
Date: Sun, 27 Aug 2017 17:23:10 +0000

Hello, Paul.

On Sun, Aug 27, 2017 at 09:46:32 -0700, Paul Eggert wrote:
> Eli Zaretskii wrote:
> > is it possible to use for this purpose a technique similar to
> > what you coded in calculate_glyph_code_table?  That is, call that
> > special ioctl function, then look in the mapping it returns for the
> > curly quote characters, and if they aren't there, reset
> > text_quoting_flag?  Would that work?

> Although it might work if Emacs is run directly from a Linux console, I doubt 
> whether it'd work in general.

Does it need to work in general?  Other methods are clearly not working
at all, in general.

> The ioctl needs a file descriptor, and which file descriptor should
> Emacs try? Stdout? Stderr?

Both.  If both are known to be able to display curlies, use them,
otherwise stick to the ASCII quotes.

> What if the output of Emacs is being sent to a file or pipe, and some
> other program later displays the text?

Play it safe.  Somebody redirecting output to a file is going to want to
analyse it.  Make it easy for that person, and use the ASCII quote
characters.

> I'd like to see what GCC does before worrying about this too much. Also I'd like 
> to know why Alan sometimes sees block squares and sometimes diagonal lines.

Block squares arise from an attempt to display curly quotes and other
undisplayable characters.  Diagonal lines are the font's representation
of ASCII grave (0x60), and arise from typing the key to the left of "1".

-- 
Alan Mackenzie (Nuremberg, Germany).