The indirect table is written to the main file in the case of split output only. It specifies the starting byte position of each split output file (as a decimal integer):
<indirect table> = ^_ Indirect: (<filename>: <bytepos>)*
The number of preamble bytes written to each output file is included in the positions. Neither the preamble nor the size of the top-level output file is included.
The first actual node of content will be pointed to by the first entry.
Unfortunately, Info-creating programs such as
makeinfo have not
always implemented these rules perfectly, due to various bugs and
oversights. Therefore, robust Info viewers should fall back to
searching “nearby” the given position for a node, instead of just
giving up if the position is not perfectly at a node beginning.
As an example, suppose split output is generated for the GDB manual. The top-level file gdb.info will contain something like this:
^_ Indirect: gdb.info-1: 1878 gdb.info-2: 295733 ...
This tells Info viewers that the first node of the manual occurs at byte 1878 (i.e., after the preamble) of the file gdb.info-1. The first node written to gdb.info-2 would start at byte 295733 if the subsequent gdb.info-* files (not including gdb.info files were appended to gdb.info-1, including their preambles.