diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/w3mman/README | 7 | ||||
-rw-r--r-- | scripts/w3mman/w3mman.1.in | 7 | ||||
-rw-r--r-- | scripts/w3mman/w3mman.in | 4 | ||||
-rw-r--r-- | scripts/w3mman/w3mman2html.cgi.in | 27 |
4 files changed, 40 insertions, 5 deletions
diff --git a/scripts/w3mman/README b/scripts/w3mman/README index 0fc817e..3bcbb3b 100644 --- a/scripts/w3mman/README +++ b/scripts/w3mman/README @@ -11,6 +11,13 @@ w3mman w3mman [<section>] <command> w3mman -k <keyword> +環境変数 + + W3MMAN_W3M + 使用する w3m コマンドを指定します(デフォルトは w3m) + W3MMAN_MAN + 使用する man コマンドを指定します(デフォルトは man) + インストール make install diff --git a/scripts/w3mman/w3mman.1.in b/scripts/w3mman/w3mman.1.in index 2221200..3bc5998 100644 --- a/scripts/w3mman/w3mman.1.in +++ b/scripts/w3mman/w3mman.1.in @@ -34,6 +34,13 @@ as MANPATH. .B \-k " keyword" Specify .I keyword. +.SH ENVIRONMENT +.TP +.B W3MMAN_W3M +If W3MMAN_W3M is set, its value is used instead of @W3M@. +.TP +.B W3MMAN_MAN +If W3MMAN_MAN is set, its value is used instead of @MAN@. .SH FILES .TP .I @LIB_DIR@/w3mman2html.cgi diff --git a/scripts/w3mman/w3mman.in b/scripts/w3mman/w3mman.in index 0c57135..6c6f65d 100644 --- a/scripts/w3mman/w3mman.in +++ b/scripts/w3mman/w3mman.in @@ -1,7 +1,7 @@ #!@PERL@ -@W3M = split(' ', '@W3M@'); -$ENV{'MAN'} = '@MAN@'; +@W3M = split(' ', $ENV{'W3MMAN_W3M'} || '@W3M@'); +$ENV{'W3MMAN_MAN'} ||= '@MAN@'; $SCRIPT = 'file:///$LIB/w3mman2html.cgi'; sub usage { diff --git a/scripts/w3mman/w3mman2html.cgi.in b/scripts/w3mman/w3mman2html.cgi.in index 88eb8d0..f41d487 100644 --- a/scripts/w3mman/w3mman2html.cgi.in +++ b/scripts/w3mman/w3mman2html.cgi.in @@ -1,6 +1,6 @@ #!@PERL@ -$MAN = $ENV{'MAN'} || '@MAN@'; +$MAN = $ENV{'W3MMAN_MAN'} || '@MAN@'; $QUERY = $ENV{'QUERY_STRING'} || $ARGV[0]; $SCRIPT_NAME = $ENV{'SCRIPT_NAME'} || $0; $CGI = "file://$SCRIPT_NAME"; @@ -89,6 +89,8 @@ open(F, "$MAN $section $man 2> /dev/null |"); $ok = 0; undef $header; $blank = -1; +$cmd = ""; +$prev = ""; while(<F>) { if (! defined($header)) { /^\s*$/ && next; @@ -147,11 +149,30 @@ EOF s@(http|ftp)://[\w.\-/~]+[\w/]@<a href="$&">$&</a>@g; s@(\W)(mailto:)?(\w[\w.\-]*\@\w[\w.\-]*\.[\w.\-]*\w)@$1<a href="mailto:$3">$2$3</a>@g; - s@(\W)(\~?/[\w.][/\w.\-]*)@$1 . &file_ref($2)@ge; - s@(include(<\/?[bu]\>|\s)*\<)([/\w.\-]+)@$1 . &include_ref($3)@ge; + s@(\W)(\~?/[\w.][\w.\-/~]*)@$1 . &file_ref($2)@ge; + s@(include(<\/?[bu]\>|\s)*\<)([\w.\-/]+)@$1 . &include_ref($3)@ge; + if ($prev && m@^\s*(\<[bu]\>)*(\w[\w.\-]*)(\</[bu]\>)*(\([\dm]\w*\))@) { + $cmd .= "$2$4"; + $prev =~ s@(\w[\w.\-]*-)((\</[bu]\>)*\s*)$@<a href="$CGI?$cmd">$1</a>$2@; + print $prev; + $prev = ''; + s@^(\s*(\<[bu]\>)*)(\w[\w.\-]*)@@; + print "$1<a href=\"$CGI?$cmd\">$3</a>"; + } elsif ($prev) { + print $prev; + $prev = ''; + } s@(\w[\w.\-]*)((\</[bu]\>)*)(\([\dm]\w*\))@<a href="$CGI?$1$4">$1</a>$2$4@g; + if (m@(\w[\w.\-]*)-(\</[bu]\>)*\s*$@) { + $cmd = $1; + $prev = $_; + next; + } print; } +if ($prev) { + print $prev; +} close(F); if (! $ok) { if ($query{'quit'}) { |