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