xref: /openbsd/gnu/usr.bin/perl/pod/rofftoc (revision d415bd75)
1# Usage: rofftoc PerlTOC.xxx.raw
2#
3# Post-processes roffitall output. Called from roffitall to produce
4# a formatted table of contents.
5#
6# Author: Tom Christiansen
7
8print <<'EOF';
9.de NP
10'.sp 0.8i
11.tl ''- % -''
12'bp
13'sp 0.5i
14.tl ''\fB\s+2Perl Table of Contents\s0\fR''
15'sp 0.3i
16..
17.wh -1i NP
18.af % i
19.sp 0.5i
20.tl ''\fB\s+5Perl Table of Contents\s0\fR''
21.sp 0.5i
22.nf
23.na
24EOF
25while (<>) {
26    #chomp;
27    s/Index://;
28    ($type, $page, $desc) = split ' ', $_, 3;
29    $desc =~ s/^"(.*)"$/$1/;
30    if      ($type eq 'Title') {
31	($name = $desc) =~ s/ .*//;
32	next;
33    } elsif ($type eq 'Name') {
34	#print STDERR  $page, "\t", $desc;
35	print ".ne 5\n";
36	print ".in 0\n";
37	print ".sp\n";
38	print ".ft B\n";
39	print "$desc\n";
40	print ".ft P\n";
41	print ".in 5n\n";
42    } elsif ($type eq 'Header') {
43	print ".br\n", $page, "\t", $desc;
44    } elsif ($type eq 'Subsection') {
45	print ".br\n", $page, "\t\t", $desc;
46    } elsif ($type eq 'Item') {
47	next if $desc =~ /\\bu/;
48	next unless $name =~ /POSIX|func/i;
49	print ".br\n", $page, "\t\t\t", $desc;
50    }
51}
52__END__
53Index:Title	1	"PERL 1"
54Index:Name	1	"perl - Practical Extraction and Report Language"
55Index:Header	1	"NAME"
56Index:Header	1	"SYNOPSIS"
57Index:Header	2	"DESCRIPTION"
58Index:Item	2	"\(bu Many usability enhancements"
59Index:Item	2	"\(bu Simplified grammar"
60Index:Item	2	"\(bu Lexical scoping"
61Index:Item	2	"\(bu Arbitrarily nested data structures"
62Index:Item	2	"\(bu Modularity and reusability"
63