54 lines
1.4 KiB
Plaintext
54 lines
1.4 KiB
Plaintext
#!@PERL@
|
|
|
|
@W3M = split(' ', $ENV{'W3MMAN_W3M'} || '@W3M@');
|
|
$ENV{'W3MMAN_MAN'} ||= '@MAN@';
|
|
$SCRIPT = 'file:///$LIB/w3mman2html.cgi';
|
|
|
|
sub usage {
|
|
($_ = $0) =~ s@.*/@@;
|
|
print STDERR "$_ [-M <path>] [[<section>] <command>]\n";
|
|
print STDERR "$_ [-M <path>] [<section>] [-k <keyword>]\n";
|
|
print STDERR "$_ [-l <file>]\n";
|
|
exit 1;
|
|
}
|
|
|
|
$query = "";
|
|
while (@ARGV) {
|
|
$_ = shift @ARGV;
|
|
if (/^-M$/) {
|
|
@ARGV || &usage();
|
|
$ENV{'MANPATH'} = shift @ARGV;
|
|
} elsif (/^-k$/) {
|
|
@ARGV || &usage();
|
|
if ( $query eq "" ) { $query = "?quit=ok"; }
|
|
$query .= "&keyword=" . &form_encode(shift @ARGV);
|
|
} elsif (/^-l$/ || /\//) {
|
|
if (/^-l$/) {
|
|
@ARGV || &usage();
|
|
$_ = shift @ARGV;
|
|
}
|
|
$query = "?quit=ok&local=" . &form_encode($_);
|
|
$query .= "&pwd=" . &form_encode($ENV{'PWD'});
|
|
} elsif (/^-/) {
|
|
&usage();
|
|
} elsif ($query !~ /§ion=/ && (/^\d/ || $_ eq 'n' || $_ eq 'l')) {
|
|
if ( $query eq "" ) { $query = "?quit=ok"; }
|
|
$query .= "§ion=" . &form_encode($_);
|
|
} else {
|
|
if ( $query eq "" ) { $query = "?quit=ok"; }
|
|
$query .= "&man=" . &form_encode($_);
|
|
}
|
|
}
|
|
if ($query =~ /§ion=/ && $query !~ /&keyword=/ && $query !~ /&man=/) {
|
|
$query =~ s/§ion=/&man=/;
|
|
}
|
|
|
|
exec @W3M, "$SCRIPT$query";
|
|
|
|
sub form_encode {
|
|
local($_) = @_;
|
|
s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg;
|
|
return $_;
|
|
}
|
|
|