Fowarding this message to [email protected] which is relevant to
recent discussions.

Replying to 
https://lists.gnu.org/archive/html/bug-gnu-emacs/2026-10/msg01223.html

Can people please remember to copy relevant messages about the behaviour of
the texi2any program or the standalone "info" program to [email protected]
so nothing is missed?

----- Forwarded message from Gavin Smith <[email protected]> -----

Date: Sat, 24 Oct 2026 19:13:42 +0100
From: Gavin Smith <[email protected]>
To: [email protected]
Cc: Eli Zaretskii <[email protected]>, [email protected]
Subject: Re: bug#57277: 29.0.50; Support quoted node names in Info

On Sat, Oct 24, 2026 at 06:36:22PM +0200, [email protected] wrote:
> On Sat, Oct 24, 2026 at 06:06:29PM +0300, Eli Zaretskii wrote:
> >      If <label> contains a colon character (:), it should be surrounded
> >   with a pair of <del> characters.  Likewise, quoting characters may be
> >   used for the node name if it contains problematic characters; then a
> >   terminating comma or period is not needed.
> > 
> > Can we agree that periods in node names also require quoting?  Can we
> > also agree that the terminating period and/or comma are always
> > required, even if the node is quoted?  It seems like texi2any always
> > emits them.
> 
> Actually I tested
> 
>  BB @ref{c::} gg.
> 
> and the generated Info is:
> 
>  BB *note ^?c::^?:: gg.
> 
> so there is a :: emitted after the quoted node name contrary to what is
> said in the text, so it seems that you are right, this text seems
> incorrect.

That test case isn't relevant to the part of the manual you quoted.  It
doesn't discuss a terminating pair of colons.  It is only relevant to the
form of the cross-reference which has a separate label to node specification:

* (N|n)ote <label>:<id>(.|,)

It may be useful to be able to omit a terminating . or , as it is not
always clear whether these are part of the grammar of the sentence that
should be displayed to the viewer, or if they are merely there to delimit
the node specification.  For example, in Info text like

"For more, see *note documentation here:(manual)node. where this is
fully explained."

- the . after "(manual)node" doesn't end the sentence.

I saw no reason not to make standalone Info recognize the node reference
without the terminating '.', as in:

"For more, see *note documentation here:(manual)^?node^? where this is
fully explained."

>  I also tested with @ref{d., nn}, . is added even though the
> node is quoted.

However, as you say, if texi2any always outputs the '.' anyway, it may
not make a difference if Emacs Info can't cope with a reference without
the terminating '.' (or ',' if one was used in the original Texinfo source).

> Also, a dot after @ref is ignored with a node argument only, with or
> without space after:
> 
>  CC @ref{aa}.b
> 
>  DD @ref{aa}. f
> 
> leads to
> 
>  CC *note aa::.b
> 
>  DD *note aa::.  f

That looks correct.  Is there a problem with this?


> Another element, regarding the . followed or not by space when there is
> a name:
> 
>  NAX @ref{aa, nn}.b
> 
>  NAY @ref{aa, nn}. f
> 
>  NAZ @ref{aa, nn} no punct.
> 
>  NAG @ref{aa, nn}no space no punt.
> 
> lead to
> 
>    NAX *note nn: aa.b
> 
>    NAY *note nn: aa.  f
> 
>    NAZ *note nn: aa. no punct.
> 
>    NAG *note nn: aa.no space no punt.
> 
> So texi2any does not consider that a space is needed after the dot, a
> dot only is added, if there is no dot, and no space.

All of those work with Info, tested with Info generated from the input
below:

\input texinfo

@node Top
@top

NAX @ref{aa, nn}.b                                                           

NAY @ref{aa, nn}. f                                                          

NAZ @ref{aa, nn} no punct.                                                   

NAG @ref{aa, nn}no space no punt. 

@node aa
@xrefname aa

in node aa


@bye

So it appears that . not followed by a space does need to be quoted in
a *note cross-reference.

I tested that with Info, an index entry like the following goes to the
correct node:

* CONFIG_COMMANDS:                       Obsolete config.status Use.
                                                             (line   10)

(From "(autoconf)Concept Index".)

If "." ended the node name, it would try to go to a node "Obsolete config"
rather than "Obsolete config.status Use".  In practice, in the output of
@printindex the terminating "." is always followed by space or newline, so
there was no reason not to make index entries such as these work as intended.

So the inconsistency between menu entries and *note references as to whether
"." terminates a cross-reference without following whitespace appears to me
to be justified in terms of supporting Info files.  (I cannot remember any
details of previous discussions on this, although there probably have been
some.)

Note that such menu entries are most likely to occur in indices, as it is
fairly rare for entries elswhere in menus to have a separate label and node.
For example, here is the entry for this node in its parent node's menu:

* Obsolete config.status Use::  Obsolete convention for ‘config.status’

The . in "config.status" occurs before a colon on the line so there is no
question of it terminating anything.




> 
> So the different between menu and *Note regarding dot exist in texi2any.
> So this is worth discussing.
> 
> -- 
> Pat

----- End forwarded message -----

Reply via email to