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