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

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))

Anyway Eli's criticism does not apply to my proposal of the addition of
such a configuration variable. The variable would have the same scope as
`print-escape-multiple` and the other `print-escape-*` variables. My
proposal does not introduce an inconsistency or any other kind of
incoherence.

> Is that a problem?
> 
> If not, adding a new variable which makes the same distinction seems 
> consistent with the current design.

Exactly. My proposal is consistent with the current design.

Daniel