* Printing \\= in the docstring
[not found] <WOGXhoHXi-ghoVidse8cDwgfvmLUKIRqLxBwbF97alGfbnXgAISYEy9GKfzTC6yCqxaCn4Yjks7lzl_bTZyEuhIv91aWowm9r3whjcWlmz0=@protonmail.com>
@ 2024-07-15 22:43 ` Heime
2024-07-15 23:10 ` Stephen Berman
0 siblings, 1 reply; 7+ messages in thread
From: Heime @ 2024-07-15 22:43 UTC (permalink / raw)
To: Heime, Heime via Users list for the GNU Emacs text editor
On Tuesday, July 16th, 2024 at 9:22 AM, Heime <heimeborgia@protonmail.com> wrote:
> How can I print \\= in the docstring ?
When I try \\= the = does not display. Neither does \\\\= or \\\=
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Printing \\= in the docstring
2024-07-15 22:43 ` Printing \\= in the docstring Heime
@ 2024-07-15 23:10 ` Stephen Berman
2024-07-16 8:20 ` Heime
0 siblings, 1 reply; 7+ messages in thread
From: Stephen Berman @ 2024-07-15 23:10 UTC (permalink / raw)
To: Heime; +Cc: Heime via Users list for the GNU Emacs text editor
On Mon, 15 Jul 2024 22:43:26 +0000 Heime <heimeborgia@protonmail.com> wrote:
> On Tuesday, July 16th, 2024 at 9:22 AM, Heime <heimeborgia@protonmail.com> wrote:
>
>> How can I print \\= in the docstring ?
>
> When I try \\= the = does not display. Neither does \\\\= or \\\=
To print the sequence "\\=" as a string but not as a doc string escape
sequence, using "\\\\=" does work. But if you want to print it in the
context of a doc string escape sequence, you have to double it, just
like you have to double "\" in normal Lisp strings. For example, this
in a doc string:
"\\\\=\\=\\=`\\(\\s-\\\\=\\=\\=\\[\\-\\]\\s-\\)\\(.*\\) uses \\\\="
appears like this in a "*Help*" buffer:
\\=`\(\s-\\=\[\-\]\s-\)\(.*\) uses \\=
Steve Berman
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Printing \\= in the docstring
2024-07-15 23:10 ` Stephen Berman
@ 2024-07-16 8:20 ` Heime
2024-07-16 8:25 ` Stephen Berman
0 siblings, 1 reply; 7+ messages in thread
From: Heime @ 2024-07-16 8:20 UTC (permalink / raw)
To: Stephen Berman; +Cc: Heime via Users list for the GNU Emacs text editor
On Tuesday, July 16th, 2024 at 11:10 AM, Stephen Berman <stephen.berman@gmx.net> wrote:
> On Mon, 15 Jul 2024 22:43:26 +0000 Heime heimeborgia@protonmail.com wrote:
>
> > On Tuesday, July 16th, 2024 at 9:22 AM, Heime heimeborgia@protonmail.com wrote:
> >
> > > How can I print \\= in the docstring ?
> >
> > When I try \\= the = does not display. Neither does \\\\= or \\\=
>
>
> To print the sequence "\\=" as a string but not as a doc string escape
> sequence, using "\\\\=" does work. But if you want to print it in the
> context of a doc string escape sequence, you have to double it, just
> like you have to double "\" in normal Lisp strings. For example, this
> in a doc string:
>
> "\\\\=\\=\\=`\\\\(\\\\s-\\\\\\\\=\\\\=\\\\=\\\\[\\\\-\\\\]\\\\s-\\\\)\\\\(.*\\\\) uses \\\\\\\\=" appears like this in a "*Help*" buffer: \\\\=`\(\s-\\=\[\-\]\s-\)\(.*\) uses \\=
>
> Steve Berman
If I use "\\\\=" the only thing that is displayed is "\" when using "C-h v myvar".
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Printing \\= in the docstring
2024-07-16 8:20 ` Heime
@ 2024-07-16 8:25 ` Stephen Berman
2024-07-16 8:32 ` Heime
0 siblings, 1 reply; 7+ messages in thread
From: Stephen Berman @ 2024-07-16 8:25 UTC (permalink / raw)
To: Heime; +Cc: Heime via Users list for the GNU Emacs text editor
On Tue, 16 Jul 2024 08:20:05 +0000 Heime <heimeborgia@protonmail.com> wrote:
> On Tuesday, July 16th, 2024 at 11:10 AM, Stephen Berman
> <stephen.berman@gmx.net> wrote:
>
>> On Mon, 15 Jul 2024 22:43:26 +0000 Heime heimeborgia@protonmail.com wrote:
>>
>> > On Tuesday, July 16th, 2024 at 9:22 AM, Heime heimeborgia@protonmail.com wrote:
>> >
>> > > How can I print \\= in the docstring ?
>> >
>> > When I try \\= the = does not display. Neither does \\\\= or \\\=
>>
>>
>> To print the sequence "\\=" as a string but not as a doc string escape
>> sequence, using "\\\\=" does work. But if you want to print it in the
>> context of a doc string escape sequence, you have to double it, just
>> like you have to double "\" in normal Lisp strings. For example, this
>> in a doc string:
>>
>> "\\\\=\\=\\=`\\\\(\\\\s-\\\\\\\\=\\\\=\\\\=\\\\[\\\\-\\\\]\\\\s-\\\\)\\\\(.*\\\\)
>> uses \\\\\\\\=" appears like this in a "*Help*" buffer:
>> \\\\=`\(\s-\\=\[\-\]\s-\)\(.*\) uses \\=
>>
>> Steve Berman
>
> If I use "\\\\=" the only thing that is displayed is "\" when using "C-h v myvar".
It works in the example I gave just above. As so often you have not
provided a complete reproducer, so I can only try to guess why what you
did does not work. But I won't guess now.
Steve Berman
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Printing \\= in the docstring
2024-07-16 8:25 ` Stephen Berman
@ 2024-07-16 8:32 ` Heime
2024-07-16 8:49 ` Stephen Berman
0 siblings, 1 reply; 7+ messages in thread
From: Heime @ 2024-07-16 8:32 UTC (permalink / raw)
To: Stephen Berman; +Cc: Heime via Users list for the GNU Emacs text editor
Sent with Proton Mail secure email.
On Tuesday, July 16th, 2024 at 8:25 PM, Stephen Berman <stephen.berman@gmx.net> wrote:
> On Tue, 16 Jul 2024 08:20:05 +0000 Heime heimeborgia@protonmail.com wrote:
>
> > On Tuesday, July 16th, 2024 at 11:10 AM, Stephen Berman
> > stephen.berman@gmx.net wrote:
> >
> > > On Mon, 15 Jul 2024 22:43:26 +0000 Heime heimeborgia@protonmail.com wrote:
> > >
> > > > On Tuesday, July 16th, 2024 at 9:22 AM, Heime heimeborgia@protonmail.com wrote:
> > > >
> > > > > How can I print \\= in the docstring ?
> > > >
> > > > When I try \\= the = does not display. Neither does \\\\= or \\\=
> > >
> > > To print the sequence "\\=" as a string but not as a doc string escape
> > > sequence, using "\\\\=" does work. But if you want to print it in the
> > > context of a doc string escape sequence, you have to double it, just
> > > like you have to double "\" in normal Lisp strings. For example, this
> > > in a doc string:
> > >
> > > "\\\\=\\=\\=`\\\\\\\\(\\\\\\\\s-\\\\\\\\\\\\\\\\=\\\\\\\\=\\\\\\\\=\\\\\\\\[\\\\\\\\-\\\\\\\\]\\\\\\\\s-\\\\\\\\)\\\\\\\\(.*\\\\\\\\) uses \\\\\\\\\\\\\\\\=" appears like this in a "*Help*" buffer: \\\\\\\\=`\(\s-\\=\[\-\]\s-\)\(.*\) uses \\=
> > >
> > > Steve Berman
> >
> > If I use "\\\\=" the only thing that is displayed is "\" when using "C-h v myvar".
>
>
> It works in the example I gave just above. As so often you have not
> provided a complete reproducer, so I can only try to guess why what you
> did does not work. But I won't guess now.
>
> Steve Berman
(defconst mydocstring ""
"In the docstring, apply the escape sequence \\\\= to stop conversion by
`substitute-command-keys'."
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Printing \\= in the docstring
2024-07-16 8:32 ` Heime
@ 2024-07-16 8:49 ` Stephen Berman
2024-07-16 10:56 ` Stephen Berman
0 siblings, 1 reply; 7+ messages in thread
From: Stephen Berman @ 2024-07-16 8:49 UTC (permalink / raw)
To: Heime; +Cc: Heime via Users list for the GNU Emacs text editor
On Tue, 16 Jul 2024 08:32:36 +0000 Heime <heimeborgia@protonmail.com> wrote:
> Sent with Proton Mail secure email.
>
> On Tuesday, July 16th, 2024 at 8:25 PM, Stephen Berman
> <stephen.berman@gmx.net> wrote:
>
>> On Tue, 16 Jul 2024 08:20:05 +0000 Heime heimeborgia@protonmail.com wrote:
>>
>> > On Tuesday, July 16th, 2024 at 11:10 AM, Stephen Berman
>> > stephen.berman@gmx.net wrote:
>> >
>> > > On Mon, 15 Jul 2024 22:43:26 +0000 Heime heimeborgia@protonmail.com wrote:
>> > >
>> > > > On Tuesday, July 16th, 2024 at 9:22 AM, Heime
>> > > > heimeborgia@protonmail.com wrote:
>> > > >
>> > > > > How can I print \\= in the docstring ?
>> > > >
>> > > > When I try \\= the = does not display. Neither does \\\\= or \\\=
>> > >
>> > > To print the sequence "\\=" as a string but not as a doc string escape
>> > > sequence, using "\\\\=" does work. But if you want to print it in the
>> > > context of a doc string escape sequence, you have to double it, just
>> > > like you have to double "\" in normal Lisp strings. For example, this
>> > > in a doc string:
>> > >
>> > > "\\\\=\\=\\=`\\\\\\\\(\\\\\\\\s-\\\\\\\\\\\\\\\\=\\\\\\\\=\\\\\\\\=\\\\\\\\[\\\\\\\\-\\\\\\\\]\\\\\\\\s-\\\\\\\\)\\\\\\\\(.*\\\\\\\\)
>> > > uses \\\\\\\\\\\\\\\\=" appears like this in a "*Help*" buffer:
>> > > \\\\\\\\=`\(\s-\\=\[\-\]\s-\)\(.*\) uses \\=
>> > >
>> > > Steve Berman
>> >
>> > If I use "\\\\=" the only thing that is displayed is "\" when using "C-h v
>> > myvar".
>>
>>
>> It works in the example I gave just above. As so often you have not
>> provided a complete reproducer, so I can only try to guess why what you
>> did does not work. But I won't guess now.
>>
>> Steve Berman
>
> (defconst mydocstring ""
>
> "In the docstring, apply the escape sequence \\\\= to stop conversion by
> `substitute-command-keys'."
Thank you, now I can reproduce the problem. From brief testing it seems
"\\\\=" in a doc string only prints as "\\=" when it is the final
character sequence in the doc string. This could be a bug but I don't
have time to debug it now. However, escaping "\\=" as above does work:
(defvar mydocstring ""
"In the docstring, apply the escape sequence \\\\=\\=\\= to stop
conversion by `substitute-command-keys'.")
So I guess the recommendation is to always use this if you want to see
"\\=" in a *Help* buffer.
Steve Berman
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Printing \\= in the docstring
2024-07-16 8:49 ` Stephen Berman
@ 2024-07-16 10:56 ` Stephen Berman
0 siblings, 0 replies; 7+ messages in thread
From: Stephen Berman @ 2024-07-16 10:56 UTC (permalink / raw)
To: Heime; +Cc: Heime via Users list for the GNU Emacs text editor
On Tue, 16 Jul 2024 10:49:05 +0200 Stephen Berman <stephen.berman@gmx.net> wrote:
> On Tue, 16 Jul 2024 08:32:36 +0000 Heime <heimeborgia@protonmail.com> wrote:
[...]
>> (defconst mydocstring ""
>>
>> "In the docstring, apply the escape sequence \\\\= to stop conversion by
>> `substitute-command-keys'."
>
> Thank you, now I can reproduce the problem. From brief testing it seems
> "\\\\=" in a doc string only prints as "\\=" when it is the final
> character sequence in the doc string. This could be a bug but I don't
> have time to debug it now. However, escaping "\\=" as above does work:
>
> (defvar mydocstring ""
>
> "In the docstring, apply the escape sequence \\\\=\\=\\= to stop
> conversion by `substitute-command-keys'.")
After seeing your post about the discussion of substitute-command-keys
in the Elisp manual, and re-reading that section, I have to make what I
wrote above more precise: to make "\\=" appear in a *Help* buffer by
itself, i.e. not functioning as an escape sequence, write "\\\\=\\=" in
the doc string; to make "\\=" appear in a *Help* buffer in a context
where it functions as an escape sequence, write "\\\\=\\=\\=" in the doc
string. So in the above example of a doc string for the variable
`mydocstring', "\\\\=\\=" suffices.
Steve Berman
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-07-16 10:56 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <WOGXhoHXi-ghoVidse8cDwgfvmLUKIRqLxBwbF97alGfbnXgAISYEy9GKfzTC6yCqxaCn4Yjks7lzl_bTZyEuhIv91aWowm9r3whjcWlmz0=@protonmail.com>
2024-07-15 22:43 ` Printing \\= in the docstring Heime
2024-07-15 23:10 ` Stephen Berman
2024-07-16 8:20 ` Heime
2024-07-16 8:25 ` Stephen Berman
2024-07-16 8:32 ` Heime
2024-07-16 8:49 ` Stephen Berman
2024-07-16 10:56 ` Stephen Berman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).