On Thu, Jun 22, 2023 at 06:07:20PM +0200, Bruno Haible wrote: > > strings.texi:208: warning: node next pointer for `Strings with NUL > > characters' is `String Functions in C Locale' but next is `Comparison of > > string APIs' in menu > > strings.texi:21: warning: node `Strings' lacks menu item for `String > > Functions in C Locale' despite being its Up target > > strings.texi:233: warning: node prev pointer for `Comparison of string > > APIs' is `String Functions in C Locale' but prev is `Strings with NUL > > characters' in menu > > The essential warning in this case is the second one. The other two are > confusing, because they don't point at the root cause.
Getting a mass of error messages and warnings when getting the menu structure wrong is completely overwhelming and can make restructuring Texinfo files difficult if not doing it in Emacs where menus can be updated automatically. This is one reason I was happy to not output the warnings by default. However, as you point out, this can leave mistakes in manuals undetected. Running with CHECK_NORMAL_MENU_STRUCTURE=1 on texinfo.texi (Texinfo's own manual) revealed several menu errors that should have been fixed. It might be a good idea to show some of the warnings by default but not all of them. I agree that the warning you identified as the essential one. If I disable the warnings about node and menu directions and only keep the ones about missing menu items, there is usually still enough information to know what the problem is and what should be fixed. The only thing that is not warned about is if the menu entries are in the wrong order, which is a less important mistake and one people are less likely to make than missing the entry out. So I've made a change to output this warning unconditionally, in commit 92600710f6. Please let us know if it outputs the necessary warnings.
