On Thu, Oct 22, 2026 at 11:30:20AM +0300, Eli Zaretskii wrote: > Hi, > > AFAIU the description of the format of menus in an Info file, the > following menu entry from the Index node of texi2any_internals manual > violates the spec: > > * Texinfo::Convert::Converter initialization: ^?Texinfo::Convert::Converter > Converter Initialization^?. > (line 6) > > (In the manual, the "^?" are the DEL characters.) This manual came > with Texinfo 7.3. There are several other entries there with the same > problem. > > The above menu entry includes colons, so AFAIU it must be quoted, but > isn't.
> ... > AFAIU this description, the "Texinfo::Convert::Converter > initialization" part of the above menu entry is "<label text>", so it > should have been quoted due to embedded colons. However, "Info Format > Printindex", which is also referenced above, confusingly says > something slightly different: > ... > Even though <entry text> is followed by a colon, it may itself > contain colons, so Info readers should try to include as much of the > line as possible in the <entry text>. (However, <entry text> may not > contain the ‘DEL’ characters that may occur in <node-spec>.) > > This seems to say that "<entry text>" does NOT follow the conventions > of menus, where menu entry text is quoted if it includes colons (and > other special characters). But then an Index is not "just a menu", > and so the "* Menu:" heading at the beginning of Index nodes is at > least misleading. Yes, index entries should be treated differently. I reported an Emacs "bug" about this: https://lists.gnu.org/archive/html/bug-gnu-emacs/2019-01/msg00235.html > Am I missing something, or is the above Index entry incorrect due to > some bug in texi2any? If such entries are correct, then it is > impossible for an Info reader to treat Index nodes as menus, and some > other strategy (but which one?) is needed for Index nodes. And if > this is indeed the case, what is the reason for the different > formatting of the menus in Index nodes? The recommendation was that Info resaders should use the last colon in the line, not the first. This was to support index entries with colons in them, assuming the node name doesn't contain a colon. To be fully correct, we should say that a DEL byte can't occur in the index entry text, so with your example above: * Texinfo::Convert::Converter initialization: ^?Texinfo::Convert::Converter Converter Initialization^?. - the index entry is for "Texinfo::Convert::Converter initialization", not for "Texinfo::Convert::Converter initialization: ^?Texinfo::Convert:". As you found below, the implementation in Info doesn't work with the DEL quoted node name if the node name contains a colon, which is definitely a bug. I will investigate. > > FWIW, the stand-alone Info reader from Texinfo 7.3 also gets confused > on that line: if I press RET, it says "Cannot find node 'Converter > Converter Initialization'". But then the stand-alone reader fails on > all the lines in that Index node, so maybe it's a separate problem. >
