#!/space/imail/perl/bin/perl
=head1 NAME
htmlFmt - format HTML files
=head1 SYNOPSIS
htmlFmt [file]..
=head1 DESCRIPTION
=head1 OPTIONS
There are two options for setting the margins:
-lm5
sets the left margin to skip 5 chars.
-lm without a number means -lm3.
The default is -lm0.
-rm75
sets the right margin to 75 chars.
-rm without a number means -rm72.
The default is -rm70.
=head1 FILES
=head1 BUGS
=head1 AUTHOR
John Chambers
=cut
$| = 1;
($me = $0) =~ s".*/"";
$V = 1;
use HTML::Parse;
use HTML::FormatText;
$files = 0;
$lm = 0;
$rm = 70;
for $a (@ARGV) {
print "$me: Arg: \"$a\"\n" if $V>1;
if (($flg,$opts) = ($a =~ /^([-+])(.*)$/)) {
print "$me: Opts \"$flg\" \"$opts\"\n" if $V>1;
while (($opt,$rest) = ($opts =~ /^(.)(.*)$/)) {
print "$me: Opt: \"$flg\" \"$opt\"\n" if $V>1;
$opt = lc($opt);
if (($opt eq 'l') && ($rest =~ s/^m//i)) {
if ($rest =~ s/^(\d+)//) {$lm = $1} else {$lm = 3}
} elsif (($opt eq 'r') && ($rest =~ s/^m//i)) {
if ($rest =~ s/^(\d+)//) {$rm = $1} else {$rm = 72}
} else {
}
$opts = $rest;
}
} else {
print "$me: File \"$a\"\n" if $V>1;
$html = parse_htmlfile($a);
$formatter = HTML::FormatText->new(leftmargin => $lm, rightmargin => $rm);
print $formatter->format($html);
++$files;
}
}
print "$me: $files files read.\n" if $V>1;
if ($files < 1) {
$html = parse_html(join("\n",));
$formatter = HTML::FormatText->new(leftmargin => $lm, rightmargin => $rm);
print $formatter->format($html);
}