This is the mail archive of the
gdb-patches@sourceware.cygnus.com
mailing list for the GDB project.
Re: gdb.texinfo broken?
- To: Michael Snyder <msnyder at cygnus dot com>
- Subject: Re: gdb.texinfo broken?
- From: Eli Zaretskii <eliz at delorie dot com>
- Date: Wed, 22 Mar 2000 11:55:08 -0500 (EST)
- CC: jtc at redback dot com (J.T. Conklin), gdb-patches at sourceware dot cygnus dot com
- References: <38D6CF69.6844@cygnus.com> <200003211819.NAA12435@indy.delorie.com>
- Reply-to: Eli Zaretskii <eliz at is dot elta dot co dot il>
<38D7C977.FA3@cygnus.com> <5mitygglxs.fsf@jtc.redbacknetworks.com>
> >>>>> "Michael" == Michael Snyder <msnyder@cygnus.com> writes:
> Michael> %] msnyder<2>% make gdb.info
> Michael> makeinfo -I
> Michael> /cleaver/blade/msnyder/sourceware/src/gdb/doc/../../readline/doc -I
> Michael> /cleaver/blade/msnyder/sourceware/src/gdb/doc -o ./gdb.info gdb.texinfo
> Michael> Making info file `./gdb.info' from `gdb.texinfo'.
> Michael> gdb.texinfo:113: No matching `@end ifnottex'.
> Michael> gdb.texinfo:156: Unmatched `@end'.
>
> It looks like the changes to the directory entry require the latest
> makeinfo. I tried to use makeinfo from texinfo-3.2 and it failed,
> makeinfo from texinfo-4.0 works.
Okay, I think I know what's going on with gdb.texinfo and old versions
of Texinfo.
First, I'm guessing that Michael Snyder didn't "cvs up annotate.texi".
The old version was written as a separate manual, so it had its own
Top node etc. The new gdb.texinfo @include's annotate.texi, so
Michael gets error messages about multiple Top nodes etc.. When I
introduced the changes into gdb.texinfo to include the Annotations
chapter, I changed annotate.texi accordingly, to avoid all these
problems.
This leaves us with two error messages cited above:
gdb.texinfo:113: No matching `@end ifnottex'.
gdb.texinfo:156: Unmatched `@end'.
These come from Texinfo 3.11 and later (I tried 3.12; I don't have
3.11 on my disk), which is where @ifnottex was introduced. Texinfo
3.9 and earlier doesn't grok @ifnottex at all, and Texinfo 4.0
converts the file without any problems.
The problem with @ifnottex in Texinfo 3.12 are actually a
bug/misfeature in that version: conditionals such as @ifnottex cannot
span node boundaries. Here's a ChangeLog entry from the latest
Texinfo distribution:
Sun Nov 29 17:12:35 1998 Karl Berry <karl@gnu.org>
[...]
* makeinfo/insertion.c (discard_insertions): Let any conditional
cross node boundary. (So the @top node can be wrapped
in @ifnottex, for example.)
This was done during the (long) pretest of Texinfo 4.0.
Since we decided not to depend on Texinfo 4.0, it seems we have 2
alternatives:
- Toss @ifnottex and go back to using @ifinfo. This will disallow
producing the manual in the HTML format (only possible with
Texinfo 4.0).
- Duplicate the offending Top node, once wrapped with @ifinfo, the
other time wrapped with @ifhtml. This works for me with Texinfo
3.12 and 4.0. The patch for this alternative is below.
I recommend to use the second alternative, even though it's kludgey.
Note that if we use @ifnottex, we need to require Texinfo 3.11 or
later; Texinfo 3.9 will not work.
--- gdb/doc/gdb.t~2 Wed Mar 22 12:49:54 2000
+++ gdb/doc/gdb.texinfo Wed Mar 22 18:02:48 2000
@@ -110,7 +110,7 @@
@end titlepage
@page
-@ifnottex
+@ifinfo
@node Top
@top Debugging with @value{GDBN}
@@ -153,7 +153,52 @@
* Index:: Index
@end menu
-@end ifnottex
+@end ifinfo
+
+@ifhtml
+@node Top
+@top Debugging with @value{GDBN}
+
+This file describes @value{GDBN}, the @sc{gnu} symbolic debugger.
+
+This is the @value{EDITION} Edition, @value{DATE}, for @value{GDBN} Version
+@value{GDBVN}.
+
+Copyright (C) 1988-1999 Free Software Foundation, Inc.
+@menu
+* Summary:: Summary of @value{GDBN}
+* Sample Session:: A sample @value{GDBN} session
+
+* Invocation:: Getting in and out of @value{GDBN}
+* Commands:: @value{GDBN} commands
+* Running:: Running programs under @value{GDBN}
+* Stopping:: Stopping and continuing
+* Stack:: Examining the stack
+* Source:: Examining source files
+* Data:: Examining data
+
+* Languages:: Using @value{GDBN} with different languages
+
+* Symbols:: Examining the symbol table
+* Altering:: Altering execution
+* GDB Files:: @value{GDBN} files
+* Targets:: Specifying a debugging target
+* Configurations:: Configuration-specific information
+* Controlling GDB:: Controlling @value{GDBN}
+* Sequences:: Canned sequences of commands
+* Emacs:: Using @value{GDBN} under @sc{gnu} Emacs
+* Annotations:: @value{GDBN}'s annotations interface.
+
+* GDB Bugs:: Reporting bugs in @value{GDBN}
+* Formatting Documentation:: How to format and print @value{GDBN} documentation
+
+* Command Line Editing:: Command Line Editing
+* Using History Interactively:: Using History Interactively
+* Installing GDB:: Installing GDB
+* Index:: Index
+@end menu
+
+@end ifhtml
@node Summary
@unnumbered Summary of @value{GDBN}