aboutsummaryrefslogblamecommitdiffstats
path: root/scripts/w3mman/w3mman.in
blob: 6a27e7060c879058d29f28f2e6b6f07b55b9e4df (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                                                          
                                  











                                                     



                                                           


















                                                                         
#!@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>] [-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();
    $query = "?keyword=" . &form_encode(shift @ARGV);
  } elsif (/^-l$/) {
    @ARGV || &usage(); 
    $query = "?quit=ok&local=" . &form_encode(shift @ARGV);
    $query .= "&pwd=" . &form_encode($ENV{'PWD'});
  } elsif (/^-/) {
    &usage();
  } elsif (/^\d/ || $_ eq 'n') {
    @ARGV || &usage();
    $query = "?quit=ok&man=" . &form_encode(shift @ARGV);
    $query .= "&section=" . &form_encode($_);
  } else {
    $query = "?quit=ok&man=" . &form_encode($_);
  }
}

exec @W3M, "$SCRIPT$query";

sub form_encode {
  local($_) = @_;
  s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg;
  return $_;
}