Commit | Line | Data |
44a8e56a |
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 | |
12 | print <<'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 |
28 | EOF |
29 | while (<>) { |
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__ |
57 | Index:Title 1 "PERL 1" |
58 | Index:Name 1 "perl - Practical Extraction and Report Language" |
59 | Index:Header 1 "NAME" |
60 | Index:Header 1 "SYNOPSIS" |
61 | Index:Header 2 "DESCRIPTION" |
62 | Index:Item 2 "\(bu Many usability enhancements" |
63 | Index:Item 2 "\(bu Simplified grammar" |
64 | Index:Item 2 "\(bu Lexical scoping" |
65 | Index:Item 2 "\(bu Arbitrarily nested data structures" |
66 | Index:Item 2 "\(bu Modularity and reusability" |