Subject: bug#70382: 29.3; Info-fontify-node renders cross-references misleadingly

From: Stefan Monnier <[email-masked]>
Date: Sun, 14 Apr 2024 14:43:31 -0400

> will look in the reader.  You will see that the paragraph about @ref
> in that section is also shown incorrectly (the Emacs Info reader
> doesn't show "see" for @ref), and the paragraph about @pxref
> incorrectly says the result starts with "*note" (it actually starts
> with "see").

Yes, our prettifying of cross-references gets confused here because it
mistakes the doc's text for a cross-reference (because that text is
indeed showing an example of what such cross-references look like).

Given that the Info format doesn't document what the actual text should
look like, our prettifying can only be heuristic.

Notice that even if you set `Info-hide-note-references` to nil,
the "*Note NAME: NODE." is still highlighted if it were an actual
cross-reference (and if you click on it you jump to the "node" node).
In the Info reader, the behavior is almost the same: this example is
also highlighted but if you hit RET on it it signals an error because it
can't find a node named "NODE" (looks like `/usr/bin/info` is case
sensitive while Emacs's Info reader is not).

IOW, Texinfo's own reader gets confused by its own doc.

> I think the only sane way of dealing with this problem is to disable
> Info-hide-note-references in that particular node (and any other
> nodes,  if we find them, where there's a similar issue).  The patch
> below attempts to do that.

Sounds OK.

> Juri and Stefan, do you see a cleaner solution?

We could try and detect that the cross ref is within a '...'.

BTW, I'm not sure whether the current behavior is really a problem:
after all, in Emacs, people indeed won't see something of the form
`*note NAME: NODE.` but they'll see something of the form `see NAME` or
`See NAME`, so the bug could be considered a feature (depending on
whether we think the doc describes the content of the Info file or
whether it describes when readers will see when reading their doc in
Emacs).

        Stefan