File: w3mman.in

package info (click to toggle)
w3m 0.5.3%2Bgit20230121-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 11,520 kB
  • sloc: ansic: 59,204; sh: 4,331; perl: 4,217; javascript: 2,315; makefile: 913; cpp: 869; ruby: 776; awk: 78; sed: 16
file content (53 lines) | stat: -rw-r--r-- 1,390 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!@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 !~ /&section=/ && (/^\d/ || $_ eq 'n' || $_ eq 'l')) {
    if ( $query eq "" ) { $query = "?quit=ok"; }
    $query .= "&section=" . &form_encode($_);
  } else {
    if ( $query eq "" ) { $query = "?quit=ok"; }
    $query .= "&man=" . &form_encode($_);
  }
}
if ($query =~ /&section=/ && $query !~ /&keyword=/ && $query !~ /&man=/) {
  $query =~ s/&section=/&man=/;
}

exec @W3M, "$SCRIPT$query";

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