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 $_;
 | |
| }
 | |
| 
 |