Hello, I found out this with the emacs manuals, but it is more general. When there is both -o some/dir/ option to texi2any and a @setfilename with leading directories, like @setfilename ../../info/emacs-xtra.info texi2any uses both directories unless output is split HTML. So the final output file ends up being (for Info, HTML not split, DocBook):
some/dir/../../info/emacs-xtra.XXX I think that ignoring the directory from @setfilename when the -o argument is determined to be a directory would be better, both more useful, simpler and more consistent with -o with a file name as argument. We should make sure that this does not break the emacs manual, but I think that it should not, as this use of @setfilename probably predates having -o recognize directories, which, I believe, started with Texinfo 5.0. Therefore I doubt that the emacs build system also uses -o DIR (except for split HTML). I had a look at emacs sources, and I found only non-split output with -o output_file being used that should be ok. It is very likely that there are other places where the emacs manuals are built, though, as the HTML manual linked to from the main emacs page is split. In the manuals tested that where downloaded in early 2025, mainly from https://www.gnu.org/manual/manual.html, emacs is the only project that uses leading paths in @setfilename. I did not manage to get all the manuals in thoses tests, including for GNU projects that have Texinfo manuals (lilypond, maxima, gnupg, octave...) and there aren't any non-GNU manual, so we still should be cautious and document any change. As a side note, having an (unused) @setfilename consistent with the output directory for emacs manuals is told in a comment in doc/emacs/Makefile.in: ## Where the output files go. ## Note that the setfilename command in the .texi files assumes this. I would still suggest using a simpler @setfilename, like @setfilename emacs-xtra.info in the emacs manuals, mainly for clarity. A consequence would be that doing makeinfo emacs-xtra.texi would put the info file in the texinfo manuals directory and not in the ../../info directory, but I think that it would nevertheless be more expected. -- Pat
