home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / bin / w3mman < prev    next >
Encoding:
Text File  |  2006-04-05  |  941 b   |  42 lines

  1. #!/usr/bin/perl
  2.  
  3. @W3M = split(' ', $ENV{'W3MMAN_W3M'} || 'w3m');
  4. $ENV{'W3MMAN_MAN'} ||= '/usr/bin/man';
  5. $SCRIPT = 'file:///$LIB/w3mman2html.cgi';
  6.  
  7. sub usage {
  8.   ($_ = $0) =~ s@.*/@@;
  9.   print STDERR "$_ [-M <path>] [[<section>] <command>]\n";
  10.   print STDERR "$_ [-M <path>] [-k <keyword>]\n";
  11.   exit 1;
  12. }
  13.  
  14. $query = "";
  15. while (@ARGV) {
  16.   $_ = shift @ARGV;
  17.   if (/^-M$/) {
  18.     @ARGV || &usage();
  19.     $ENV{'MANPATH'} = shift @ARGV;
  20.   } elsif (/^-k$/) {
  21.     @ARGV || &usage();
  22.     $query = "?keyword=" . &form_encode(shift @ARGV);
  23.   } elsif (/^-/) {
  24.     &usage();
  25.   } elsif (/^\d/ || $_ eq 'n') {
  26.     @ARGV || &usage();
  27.     $query = "?quit=ok&man=" . &form_encode(shift @ARGV);
  28.     $query .= "§ion=" . &form_encode($_);
  29.   } else {
  30.     $query = "?quit=ok&man=" . &form_encode($_);
  31.   }
  32. }
  33.  
  34. exec @W3M, "$SCRIPT$query";
  35.  
  36. sub form_encode {
  37.   local($_) = @_;
  38.   s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg;
  39.   return $_;
  40. }
  41.  
  42.