On Mon, Mar 20, 2023 at 08:08:53PM +0100, Arsen Arsenović wrote: > Hm, I think you're spot on.. the file is mangled by a build script. I > missed it since it was behind a layer of abstraction[1]. > > Sorry for the noise! > > I wonder if I just got lucky in Emacs wrt being able to read that index > search I did..
My guess is that Emacs has more tolerance for incorrect tag tables. > That leaves a question of what to do with "slotted" installs and info > pages. Mangling a binary format by injecting bytes into it to version > the names seems wrong. A dedicated mangler rather than `sed' could be > used, that can handle fixing up offsets in the tag table, but that > retains broken xrefs in other documents. Have you considered renaming the file but not altering the contents? As far as I remember the text that follows File: in a node does not have to match the file name and is not really used for anything (other than reminding the user where they are in case this text is displayed). > Maybe we should toss the thing out and just use INFO_PATH to pick up on > the latest version, like we do for gcc, which avoids all of those issues > but leaves us with shadowed pages for older versions. > > Do you have any alternative proposals? For cross-references to work while installing the Info files under the versioned names, you could use create symlinks from e.g. autoconf.info to autoconf-2.71.info. I'm not sure if it's relevant, but a feature of the Info browser which may be useful if you are installing collections of Info manuals which should all reference each other is the 'follow-strategy' variable: ‘follow-strategy’ When set to ‘remain’ (the default), Info tries to remain within the directory containing the currently displayed Info file when following a cross-reference to an external manual, before looking for the referenced manual in the search path. The alternative value is ‘path’, which means to look through the search path right away. ‘remain’ is intended to be useful for several Texinfo manuals that all reference each other and whose versions should match each other. (For example, various manuals relating to a particular version of Emacs.) The alternative behavior, with ‘path’, may be useful when your Info file search path parallels your command shell’s search path, and you always want to find documentation of the version of the program that the shell would execute.