Subject: Re: bug#52459: 28.0.90; prin1-to-string does not escape bidi control characters despite print-escape-control-characters=t

From: Eli Zaretskii <[email-masked]>
Date: Tue, 14 Dec 2021 20:47:33 +0200

> Cc: [email-masked]
> From: Daniel Mendler <[email-masked]>
> Date: Tue, 14 Dec 2021 19:32:47 +0100
> 
> On 12/14/21 7:23 PM, Dmitry Gutov wrote:
> > I just did a little testing, and it seems 
> > 'print-escape-control-characters' only affects 'prin1-to-string' and 
> > 'prin1' but not 'message' or 'format'.
> 
> No, `print-escape-multibyte` also applies to `format  and `message`. Try
> the following:
> 
> (let ((print-escape-multibyte t))
>   (format "%S" bidi-directional-controls-chars)
>   (message "%S" bidi-directional-controls-chars))

Strings are not usually formatted using %S, they are formatted using
%s.  It would be unreasonable to expect Lisp programs to use %S for
formatting strings.