Subject: Re: bug#30405: 26.0.91; Incorrect apostrophe translation in ImageMagick error message

From: Eli Zaretskii <[email-masked]>
Date: Tue, 13 Feb 2018 07:03:19 +0200

> Cc: [email-masked], [email-masked], [email-masked]
> From: Paul Eggert <[email-masked]>
> Date: Mon, 12 Feb 2018 12:31:55 -0800
> 
> On 02/12/2018 11:59 AM, Eli Zaretskii wrote:
> > unibyte-display-via-language-environment
> > explicitly requests display of raw bytes as Latin-1 characters, and it
> > requests that everywhere, including the echo area and whatnot.
> 
> That's not how Emacs works, at least not in my experience. For example, 
> on current emacs-26:
> 
>     emacs -Q
>     M-x set-variable RET unibyte-display-via-language-environment RET t RET
>     (defun foo ()
>       (interactive)
>       (message "cannot \xA2\u00A2")) C-j
>     M-x foo RET
> 
> This displays "\242¢", not "¢¢".

Because you shoot your self in the foot by passing a multibyte string
to 'message'.  In this scenario, you are not supposed to do that, you
are supposed to use only unibyte strings.

Also, did you try the variant with 'error' instead of 'message' (in
which case you need to make *scratch* unibyte before invoking 'foo'.

> Since the echo area's context is text and not binary data, the
> display of raw bytes in the echo area should be unaffected by
> unibyte-display-via-language-environment.

That variable's purpose is to display raw bytes as readable text, so I
definitely disagree in this specific use case.