bug-texinfo
[Top][All Lists]
Advanced

[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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]