[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
makeinfo no longer validates the menu structure
From: |
Bruno Haible |
Subject: |
makeinfo no longer validates the menu structure |
Date: |
Thu, 22 Jun 2023 16:32:59 +0200 |
Hi,
In .info files, the @menu items are essential for a good navigation
experience. Thus, it is helpful if 'makeinfo' reports
./strings.texi:21: node `Strings' lacks menu item for `String Functions in C
Locale' despite being its Up target
makeinfo did so up to version 6.7. In versions 6.8 and 7.0.3, it does not
do that any more.
How to reproduce:
$ cd /tmp
$ git clone git://git.savannah.gnu.org/gnulib.git
$ cd gnulib
$ git checkout 458694e4174ea60b525e688f8d9ec4950f85b4ab
$ cd doc
$ make updated-stamp
$ env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= makeinfo --no-split
--reference-limit=2000 gnulib.texi
Result with makeinfo 6.4 ... 6.7:
./strings.texi:208: warning: node next `Strings with NUL characters' in menu
`Comparison of string APIs' and in sectioning `String Functions in C Locale'
differ
./c-locale.texi:1: warning: node `Comparison of string APIs' is next for
`String Functions in C Locale' in sectioning but not in menu
./c-locale.texi:1: warning: node `Strings with NUL characters' is prev for
`String Functions in C Locale' in sectioning but not in menu
./c-locale.texi:1: warning: node `Strings' is up for `String Functions in C
Locale' in sectioning but not in menu
./strings.texi:21: node `Strings' lacks menu item for `String Functions in C
Locale' despite being its Up target
./strings.texi:233: warning: node prev `Comparison of string APIs' in menu
`Strings with NUL characters' and in sectioning `String Functions in C Locale'
differ
Result with makeinfo 6.8, 7.0.3:
No warning, no error, and the problem has not been autocorrected: The menu in
section "16.1 Strings" has 3 items; the section
"16.1.2 Strings with NUL characters" is missing in this menu.
To me, that's a regression, since I was relying on these diagnostics for
producing
navigatable info files.
The documentation
https://www.gnu.org/software/texinfo/manual/texinfo/html_node/Invoking-texi2any.html
as well as "makeinfo --help" tell me about options
--no-validate
--no-warn
but don't give me hints how to enforce validation of menu structure.
The texinfo 6.8 announcement
<https://lists.gnu.org/archive/html/bug-texinfo/2021-07/msg00011.html>
mentions that
"only check menu structure if CHECK_NORMAL_MENU_STRUCTURE variable is set"
but that does not have an effect, neither with 6.8 nor 7.0.3:
$ env CHECK_NORMAL_MENU_STRUCTURE=1 LANG= LC_MESSAGES= LC_ALL= LANGUAGE=
makeinfo --no-split --reference-limit=2000 gnulib.texi
(Still no warning, no error.)
How to enable the validation of menu structure with makeinfo 6.8 or 7.0.3 ?
Bruno
- makeinfo no longer validates the menu structure,
Bruno Haible <=