diff --git a/www/rem2html b/www/rem2html
index 3ca5dc56..e49203d0 100755
--- a/www/rem2html
+++ b/www/rem2html
@@ -12,6 +12,9 @@ my $rem2html_version = '2.0';
my($days, $shades, $moons, $classes, $Month, $Year, $Numdays, $Firstwkday, $Mondayfirst,
@Daynames, $Nextmon, $Nextlen, $Prevmon, $Prevlen);
+my $TIDY_PROGNAME = $0;
+$TIDY_PROGNAME =~ s|^.*/||;
+
# rem2html -- convert the output of "remind -p" to HTML
=head1 NAME
@@ -30,8 +33,12 @@ Print usage to STDERR and exit.
sub usage
{
+ my ($exit_status) = @_;
+ if (!defined($exit_status)) {
+ $exit_status = 1;
+ }
print STDERR <<"EOM";
-$0: Produce an HTML calendar from the output of "remind -p"
+$TIDY_PROGNAME: Produce an HTML calendar from the output of "remind -p"
Usage: remind -p ... | rem2html [options]
@@ -51,7 +58,7 @@ Options:
--prologue html_text Text to insert at the top of the body
--epilogue html_text Text to insert at the end of the body
EOM
- exit(0);
+ exit($exit_status);
}
=head2 parse_options
@@ -62,17 +69,20 @@ Parse command-line options
sub parse_options
{
- GetOptions(\%Options, "help|h",
- "version",
- "stylesheet|s:s",
- "nostyle|ns",
- "backurl|bu:s",
- "forwurl|fu:s",
- "title|ti:s",
- "prologue|pr:s",
- "epilogue|ep:s",
- "imgbase|ib:s",
- "tableonly|to");
+ local $SIG{__WARN__} = sub { print STDERR "$TIDY_PROGNAME: $_[0]\n"; };
+ if (!GetOptions(\%Options, "help|h",
+ "version",
+ "stylesheet=s",
+ "nostyles",
+ "backurl=s",
+ "forwurl=s",
+ "title=s",
+ "prologue=s",
+ "epilogue=s",
+ "imgbase=s",
+ "tableonly")) {
+ usage(1);
+ }
$Options{'title'} ||= 'HTML Calendar';
# Fix up imgbase
@@ -500,15 +510,16 @@ sub escape_html
parse_options();
if ($Options{'help'}) {
- usage();
+ usage(0);
+ exit(0);
} elsif ($Options{'version'}) {
print "rem2html version $rem2html_version.\n";
exit(0);
}
if (-t STDIN) {
- print STDERR "$0: Input should not come from a terminal.\n\n";
- usage();
+ print STDERR "$TIDY_PROGNAME: Input should not come from a terminal.\n\n";
+ usage(1);
}
my $found_something = 0;
@@ -522,7 +533,7 @@ if ($found_something) {
end_output();
exit(1);
} else {
- print STDERR "$0: Could not find any calendar data on STDIN.\n";
+ print STDERR "$TIDY_PROGNAME: Could not find any calendar data on STDIN.\n";
exit(1);
}