unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* 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).