GNU bug report logs -
#52459
28.0.90; prin1-to-string does not escape bidi control characters despite print-escape-control-characters=t
Previous Next
Full log
View this message in rfc822 format
On 14.12.2021 21:32, Daniel Mendler wrote:
> 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))
This is interesting, because print-escape-control-characters (which I
mentioned) does not:
ELISP> (let ((print-escape-control-characters t)) (prin1 "\b"))
"\10"
""
ELISP> (let ((print-escape-control-characters t)) (prin1-to-string "\b"))
"\"\\10\""
ELISP> (let ((print-escape-control-characters t)) (format "\b"))
""
ELISP> (let ((print-escape-control-characters t)) (message "\b"))
""
>> 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.
...but indeed if the new variable has the same scope as either of the
existing ones, it seems easy to justify.
Maybe reconcile the scopes of the existing vars, too.
'print-escape-multibyte' is documented as "This affects only ‘prin1’",
but it is the other var which makes the distinction.
This bug report was last modified 3 years and 184 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.