w3m

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/w3m.git/
Log | Files | Refs | README

commit ff70c10125353071d15116197b7bedc8ca55199e
parent 205967d0654850921226a6f6a5d9edea67e9092f
Author: inu <inu>
Date:   Fri,  7 Apr 2006 15:33:56 +0000

Add w3mman -l <file> command line argument for viewing of local man files.

Diffstat:
Mscripts/w3mman/w3mman.1.in | 11+++++++++--
Mscripts/w3mman/w3mman.in | 5+++++
Mscripts/w3mman/w3mman2html.cgi.in | 47++++++++++++++++++++++++++++++++---------------
3 files changed, 46 insertions(+), 17 deletions(-)

diff --git a/scripts/w3mman/w3mman.1.in b/scripts/w3mman/w3mman.1.in @@ -1,4 +1,4 @@ -.TH W3MMAN 1 "Mar 14, 2002" +.TH W3MMAN 1 "Nov 5, 2005" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -19,6 +19,9 @@ w3mman \- an interface to the on-line reference manuals by w3m(1) .br .B w3mman .RI "[-M " path "] -k " keyword +.br +.B w3mman +.RI -l " file .SH DESCRIPTION .B w3mman is the system's manual pager by @@ -31,9 +34,13 @@ Specify .I path as MANPATH. .TP -.B \-k " keyword" +.BI \-k " keyword" Specify .I keyword. +.TP +.BI \-l " file" +Specify a +.I file. .SH ENVIRONMENT .TP .B W3MMAN_W3M diff --git a/scripts/w3mman/w3mman.in b/scripts/w3mman/w3mman.in @@ -8,6 +8,7 @@ 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; } @@ -20,6 +21,10 @@ while (@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') { diff --git a/scripts/w3mman/w3mman2html.cgi.in b/scripts/w3mman/w3mman2html.cgi.in @@ -19,7 +19,7 @@ if ($QUERY =~ /\=/) { $query{"man"} = &form_decode($QUERY); } -if (! $query{"man"}) { +if ((! $query{"man"}) && (! $query{"local"})) { if ($query{"keyword"}) { $keyword = $query{"keyword"}; $k = &html_quote($keyword); @@ -71,21 +71,29 @@ EOF exit; } -$man = $query{"man"}; -if ($man =~ s/\((\w+)\)$//) { - $section = $1; - $man_section = "$man($1)"; -} elsif ($query{"section"}) { - $section = $query{"section"}; - $man_section = "$man($section)"; +if ($query{"local"}) { + $file = $query{"local"}; + if (! ($file =~ /^\//)) { + $file = $query{"pwd"} . '/' . $file; + } + open(F, "$MAN -l $file 2> /dev/null |"); } else { - $section = ""; - $man_section = "$man"; -} + $man = $query{"man"}; + if ($man =~ s/\((\w+)\)$//) { + $section = $1; + $man_section = "$man($1)"; + } elsif ($query{"section"}) { + $section = $query{"section"}; + $man_section = "$man($section)"; + } else { + $section = ""; + $man_section = "$man"; + } -$section =~ s:([^-\w\200-\377.,])::g; -$man =~ s:([^-\w\200-\377.,])::g; -open(F, "$MAN $section $man 2> /dev/null |"); + $section =~ s:([^-\w\200-\377.,])::g; + $man =~ s:([^-\w\200-\377.,])::g; + open(F, "$MAN $section $man 2> /dev/null |"); +} $ok = 0; undef $header; $blank = -1; @@ -176,6 +184,11 @@ if ($prev) { close(F); if (! $ok) { if ($query{'quit'}) { + if ($query{'local'}) { + print STDERR "File $file not found.\n"; + } else { + print STDERR "No manual entry for $man_section.\n"; + } print STDERR "No manual entry for $man_section.\n"; print <<EOF; w3m-control: EXIT @@ -190,7 +203,11 @@ Content-Type: text/html <body> <pre> EOF - print "No manual entry for <B>$man_section</B>.\n"; + if ($query{'local'}) { + print "File <B>$file</B> not found.\n"; + } else { + print "No manual entry for <B>$man_section</B>.\n"; + } } print <<EOF; </pre>