#! /usr/bin/perl -w
use strict;
-# Read whole input.
-my $page;
-{
- local $/;
- $page .= <STDIN>;
-}
-
-# HTML entities.
-$page =~ s|&|&|sg;
-$page =~ s|<|<|sg;
-$page =~ s|>|>|sg;
-
-# Make sub-headings.
-$page =~ s|^.+?(Changes.+?\n+)|$1|s;
-$page =~ s|(Changes between.+?)\n|</pre>\n<h3>$1</h3>\n<pre>\n|sg;
-
-# Wrap it, and remove empty <pre></pre>
-$page = '<pre>' . $page . '</pre>';
-$page =~ s|<pre></pre>||g;
-
-# Make a TOC
my $ctr = 0;
my $toc;
my $out;
my $top = ' <a href="#toc"><img src="/img/up.gif"/></a>';
-for (split /^/, $page) {
- if ( /<h3>/ ) {
- my $name = $_;
- $name =~ s|<h3>(.*)</h3>|$1|;
- chop ($name);
- $out .= '<h3><a name="x' . $ctr . '">' . $name . "</a>$top</h3>\n";
- $toc .= '<li><a href="#x' . $ctr . '">' . $name . "</a></li>\n";
+my $skipping = 1;
+
+while ( <STDIN> ) {
+ chop;
+ # HTML entities.
+ s|&|&|sg;
+ s|<|<|sg;
+ s|>|>|sg;
+ if ( /^( Changes between.*)/ ) {
+ $out .= "</pre>\n" unless $skipping;
+ $skipping = 0;
+ $out .= "<h3><a name=\"x$ctr\">$1</a>$top</h3>\n<pre>\n";
+ $toc .= " <li><a href=\"#x$ctr\">$1</a></li>\n";
$ctr++;
- } else {
- $out .= $_;
+ } elsif ( ! $skipping ) {
+ $out .= $_ . "\n";
}
}
+$out .= "</pre>\n";
print "<h3><a name='toc'>Table of contents</a></h3>\n";
-print "<ul>";
+print "<ul>\n";
print $toc;
-print "</ul>";
+print "</ul>\n";
print $out;
exit(0);