aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/w3mman/w3mman2html.cgi
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/w3mman/w3mman2html.cgi')
-rw-r--r--scripts/w3mman/w3mman2html.cgi252
1 files changed, 0 insertions, 252 deletions
diff --git a/scripts/w3mman/w3mman2html.cgi b/scripts/w3mman/w3mman2html.cgi
deleted file mode 100644
index 0f75502..0000000
--- a/scripts/w3mman/w3mman2html.cgi
+++ /dev/null
@@ -1,252 +0,0 @@
-#!/usr/local/bin/perl
-
-$MAN = $ENV{'MAN'} || 'man';
-$QUERY = $ENV{'QUERY_STRING'} || $ARGV[0];
-$SCRIPT_NAME = $ENV{'SCRIPT_NAME'} || $0;
-$CGI = "file://$SCRIPT_NAME";
-$CGI2 = "file:";
-# $CGI2 = "file:///\$LIB/hlink.cgi?";
-$SQUEEZE = 1;
-
-if ($QUERY =~ /\=/) {
- for (split('&', $QUERY)) {
- ($v, $q) = split('=', $_, 2);
- $query{$v} = &form_decode($q);
- }
-} else {
- $QUERY =~ s/^man=//;
- $query{"man"} = &form_decode($QUERY);
-}
-
-if (! $query{"man"}) {
- if ($query{"keyword"}) {
- $keyword = $query{"keyword"};
- $k = &html_quote($keyword);
- print <<EOF;
-Content-Type: text/html
-
-<html>
-<head><title>man -k $k</title></head>
-<body>
-<h2>man -k <b>$k</b></h2>
-<ul>
-EOF
- $keyword =~ s:([^\w./]):\\$1:g;
- open(F, "$MAN -k $keyword 2> /dev/null |");
- @line = ();
- while(<F>) {
- chop;
- $_ = &html_quote($_);
- s/(\s+-.*)$//;
- $title = $1;
- s@(\w[\w.\-]*(\s*\,\s*\w[\w.\-]*)*)\s*(\([\dn]\w*\))@&keyword_ref($1, $3)@ge;
- print "<li>$_$title\n";
- }
- close(F);
- print <<EOF;
-</ul>
-</body>
-</html>
-EOF
- exit;
- }
- print <<EOF;
-Content-Type: text/html
-
-<html>
-<head><title>man</title></head>
-<body>
-<form action="$CGI">
-<table>
-<tr><td>Manual:<td><input name=man>
-<tr><td>Section:<td><input name=section>
-<tr><td>Keyword:<td><input name=keyword>
-<tr><td><td><input type=submit> <input type=reset>
-</table>
-</form>
-</body>
-</html>
-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)";
-} else {
- $section = "";
- $man_section = "$man";
-}
-
-$section =~ s:([^\w./]):\\$1:g;
-$man =~ s:([^\w./]):\\$1:g;
-open(F, "$MAN $section $man 2> /dev/null |");
-$ok = 0;
-undef $header;
-$blank = -1;
-while(<F>) {
- if (! defined($header)) {
- /^\s*$/ && next;
- $header = $_;
- $space = $header;
- chop $space;
- $space =~ s/\S.*//;
- } elsif ($_ eq $header) { # delete header
- $blank = -1;
- next;
- } elsif (!/\010/ && /^$space[\w\200-\377].*\s\S/o) { # delete footer
- $blank = -1;
- next;
- }
- if ($SQUEEZE) {
- if (/^\s*$/) {
- $blank || $blank++;
- next;
- } elsif ($blank) {
- $blank > 0 && print "\n";
- $blank = 0;
- }
- }
-
- s/\&/\&amp;/g;
- s/\</\&lt;/g;
- s/\>/\&gt;/g;
-
- s@([\200-\377].)(\010{1,2}\1)+@<b>$1</b>@g;
- s@(\&\w+;|.)(\010\1)+@<b>$1</b>@g;
- s@__\010{1,2}((\<b\>)?[\200-\377].(\</b\>)?)@<u>$1</u>@g;
- s@_\010((\<b\>)?(\&\w+\;|.)(\</b\>)?)@<u>$1</u>@g;
- s@((\<b\>)?[\200-\377].(\</b\>)?)\010{1,2}__@<u>$1</u>@g;
- s@((\<b\>)?(\&\w+\;|.)(\</b\>)?)\010_@<u>$1</u>@g;
- s@.\010(.)@$1@g;
-
- s@\</b\>\</u\>\<b\>_\</b\>\<u\>\<b\>@_@g;
- s@\</u\>\<b\>_\</b\>\<u\>@_@g;
- s@\</u\>\<u\>@@g;
- s@\</b\>\<b\>@@g;
-
- if (! $ok) {
- /^No/ && last;
- print <<EOF;
-Content-Type: text/html
-
-<html>
-<head><title>man $man_section</title></head>
-<body>
-<pre>
-EOF
- print;
- $ok = 1;
- next;
- }
-
- 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)*\&lt;)([/\w.\-]+)@$1 . &include_ref($3)@ge;
- s@(\w[\w.\-]*)((\</[bu]\>)*)(\([\dm]\w*\))@<a href="$CGI?$1$4">$1</a>$2$4@g;
- print;
-}
-close(F);
-if (! $ok) {
- if ($query{'quit'}) {
- print STDERR "No manual entry for $man_section.\n";
- print <<EOF;
-w3m-control: EXIT
-EOF
- exit 1;
- }
- print <<EOF;
-Content-Type: text/html
-
-<html>
-<head><title>man $man_section</title></head>
-<body>
-<pre>
-EOF
- print "No manual entry for <B>$man_section</B>.\n";
-}
-print <<EOF;
-</pre>
-</body>
-</html>
-EOF
-
-sub is_command {
- local($_) = @_;
- local($p);
-
- (! -d && -x) || return 0;
- if (! defined(%PATH)) {
- for $p (split(":", $ENV{'PATH'})) {
- $p =~ s@/+$@@;
- $PATH{$p} = 1;
- }
- }
- s@/[^/]*$@@;
- return defined($PATH{$_});
-}
-
-sub file_ref {
- local($_) = @_;
-
- if (&is_command($_)) {
- ($man = $_) =~ s@.*/@@;
- return "<a href=\"$CGI?$man\">$_</a>";
- }
- if (/^\~/ || -f || -d) {
- return "<a href=\"$CGI2$_\">$_</a>";
- }
- return $_;
-}
-
-sub include_ref {
- local($_) = @_;
- local($d);
-
- for $d (
- "/usr/include",
- "/usr/local/include",
- "/usr/X11R6/include",
- "/usr/X11/include",
- "/usr/X/include",
- "/usr/include/X11"
- ) {
- -f "$d/$_" && return "<a href=\"$CGI2$d/$_\">$_</a>";
- }
- return $_;
-}
-
-sub keyword_ref {
- local($_, $s) = @_;
- local(@a) = ();
-
- for (split(/\s*,\s*/)) {
- push(@a, "<a href=\"$CGI?$_$s\">$_</a>");
- }
- return join(", ", @a) . $s;
-}
-
-sub html_quote {
- local($_) = @_;
- local(%QUOTE) = (
- '<', '&lt;',
- '>', '&gt;',
- '&', '&amp;',
- '"', '&quot;',
- );
- s/[<>&"]/$QUOTE{$&}/g;
- return $_;
-}
-
-sub form_decode {
- local($_) = @_;
- s/\+/ /g;
- s/%([\da-f][\da-f])/pack('c', hex($1))/egi;
- return $_;
-}
-