diff options
Diffstat (limited to 'nx-X11/extras/rman/contrib/hman.pl')
-rw-r--r-- | nx-X11/extras/rman/contrib/hman.pl | 261 |
1 files changed, 0 insertions, 261 deletions
diff --git a/nx-X11/extras/rman/contrib/hman.pl b/nx-X11/extras/rman/contrib/hman.pl deleted file mode 100644 index 099db0417..000000000 --- a/nx-X11/extras/rman/contrib/hman.pl +++ /dev/null @@ -1,261 +0,0 @@ -#!/usr/bin/perl -w -#!/citi/gtfd/mach/bin/perl -w -############### -# $Id: hman.pl,v 1.1.1.4 2004/03/14 08:29:12 eich Exp $ -# $Source: /cvs/xorg/xc/extras/rman/contrib/hman.pl,v $ -############################################ -# TODO: -# reorganize location of man pages - move 3x stuff from man3 to man3x -# recurse - if 'man 3x curses' does not work try 'man 3 curses' -# display more STDERR -# Fix broken whatis entries - instead of -# manpage section - description -# manpage description section - -# highlite keywords found -# pass MANPATH as a command line argument -############################################ -# Inspired by: -# http://www.jinr.dubna.su/~gagin -# http://thsun1.jinr.dubna.su/~gagin/rman.pl -# http://thsun1.jinr.dubna.su/cgi-bin/rman.pl -# http://www.jinr.dubna.su/~gagin/rman.pl.html -# -# CGI form interface to PolyglotMan program, which is available as -# ftp://ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -# -# The most recent version of this program available as -# http://www.geocities.com/SiliconValley/Lakes/8777/hman.html -#--------------------------------------------------------------------- -# This is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# hman is distributed in the hope that -# it will be useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this software; see the file COPYING. If not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. -# -# THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE -# CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE -# PERFOHMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT -# NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE -# SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE -# SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE -# PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). -# ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES -# IS SPECIFICALLY DISCLAIMED. -#--------------------------------------------------------------------- -# Request form: hman.pl?ManTopic=SOMETOPIC&ManSection=SECTION -# Request form: hman.pl?DirectPath=filename -# -#--------------------------------------------------------------------- -# Stuff to change - -# path to PolyglotMan program. "-b" is not nessesary -$hman="$ENV{HMANPRG} $ENV{HMANOPT}"; - -# path to man program -$ManPrg='/usr/bin/man'; - -# path to cat program -$ENV{PAGER} = '/bin/cat'; - -# path to man directories -($ManPathFind = $ENV{MANPATH}) =~ s/:/ /g; - -# URL to this program -$hmanpl='/cgi-bin/hman'; - -# if man produced number of lines less then follows, -# I assume that request failed -$emptyman=5; - -# tail of every produced html document -$HtmlTail='<hr><A HREF="' . $hmanpl . '">Back to Hman</a>'; -# $HtmlTitle="<title>CGI form interface to PolyglotMan</title>\n"; -$HtmlHdr="Content-type: text/html\n\n"; - -# end changable things -#---------------------------------------------------------------------- -@ManSections = ( - '1', 'user commands', - '2', 'system calls', - '3', 'subroutines', - '4', 'devices', - '5', 'file formats', - '6', 'games', - '7', 'miscellanious', - '8', 'sys. admin.', - '9', 'Linux Internals', - 'n', 'section n' -); - -# Set unbuffered I/O. Prevents buffering problems with -# "system()" calls. -select((select(STDOUT), $| = 1)[0]); -print $HtmlHdr; - -$string = $ENV{QUERY_STRING}; -# -# Initial Form -# -if($string eq "") { initialForm(); } - -# -# Generic parameter parsing ... -# -$DirectPath = $ManSection = $ManTopic = ""; -$string =~ s/&/'; \$/g; -$string =~ s/=/='/g; -$string =~ s/^(.*)$/\$$1';/; -eval $string; - -hmanDirect($DirectPath) if ($DirectPath ne ""); - -if ($ManTopic eq "") { badness("<code>Topic for man search needed</code>\n"); } - -if ($ManSection eq "") { badness("<code>No section specified</code>\n"); } - -$ManSection =~ s/all//; -if ($ManSection =~ /key/) { manKey($ManTopic); } - -findIt($ManTopic); -open(MANOUT, "$ManPrg $ManSection $ManTopic |") - || die "$hmanpl: can't run \"$ManPrg Section $ManTopic |\", $!\n"; -for (0..$emptyman) { - $temp = <MANOUT> || last; - push @temp, $temp; -} -# -if (@temp < $emptyman) { - close(MANOUT); - print"<strong>Request failed for topic $ManTopic:</strong>\n<code>"; - for (@temp) {print;} - print "</code><br><h3>Let's try a keyword search:</h3><hr>\n"; - manKey($ManTopic); -} -# -$cmd = "$hman -r \"$hmanpl?ManTopic=%s&ManSection=%s\" -l \"Man page for $ManTopic"; -if ($ManSection eq "") { - $cmd .= '"'; -} else { - $cmd .= "($ManSection)\""; -} -# -open(HMANIN, "| $cmd") || die "$hmanpl: can't open $cmd: $!\n"; -for (@temp) {print HMANIN;} -while(<MANOUT>){print HMANIN;} -close(MANOUT); -close(HMANIN); - -exitIt(); -############################################################################### -sub initialForm { - print <<EOF; -<h1>Select a manual page:</h1> - <FORM METHOD="GET" action="$hmanpl"> - <table border=0> - <tr> - <td align=right>Section:</td> - <td> - <select name=ManSection> - <OPTION value=all>All</option> - <OPTION value=key>Keyword Search</option> -EOF - for ($ndx = 0; $ndx < @ManSections; $ndx += 2) { - print ' <OPTION value=' . $ManSections[$ndx] . '>' - . "$ManSections[$ndx] - $ManSections[$ndx + 1] " - . '</option>' . "\n"; - } - print <<EOF; - </SELECT> - </td> - </tr> - <tr> - <td align=right>Topic:</td> - <td><input type="TEXT" name="ManTopic"></td> - </tr> - <tr> - <td align=right><INPUT TYPE="submit" VALUE="Search"> - <td align=left><input type="reset" value="Reset"> - </td> - </tr> - </table> - </FORM> -EOF - exitIt(); -} -sub findIt { - my($topic) = ($_[0]); - my($cmd, $mixedCase, $navigation, $zcat); - $mixedCase = ''; - foreach (split(/\s*/, $topic)) { - $mixedCase .= "[" . $_ . uc($_) . "]"; - } - $cmd = 'find ' . $ManPathFind . ' \( -type f -o -type l \) -name ' - . $mixedCase .'\* | sort -t. +1'; - open(FINDIN, "$cmd |") || die "can't open pipe \"$cmd |\": $!"; - $navigation = 0; - while (<FINDIN>) { - if ($navigation == 0) { - print "<UL>\n"; - $navigation = 1; - } - $_ =~ s/[\n\r]*$//; - print "<li><A HREF=\"$hmanpl?DirectPath=$_\">$_</a>\n"; - } - close(FINDIN); - print "</UL><hr>\n" if ($navigation == 1); -} -sub hmanDirect { - my($path) = ($_[0], $_[1]); - my($cmd, $dir, $topic, $section); - ($dir = $path) =~ s/\.(gz|z|Z)$//; - ($topic = $dir) =~ s,^.*/,,; - $dir =~ s,/[^/]*/[^/]*$,,; - # $dir =~ s,/[^/]*$,,; - ($section=$topic)=~s/^.*\.([^\.]*)$/$1/; - $topic =~ s/\.[^\.]*$//; - findIt($topic); - $cmd = "cd $dir; (gzip -dc < $path 2>/dev/null || cat < $path) | $hman -r '" - . $hmanpl . '?ManTopic=%s&ManSection=%s' ."' -l 'Man page for $topic($section)'"; - system($cmd) || warn "can't run command \"$cmd\": $!"; - print $HtmlTail; - exit 0; -} -sub exitIt { - print $HtmlTail; - exit 0; -} -sub badness { - my($text) = ($_[0]); - print "<strong>Request failed:</strong> $text, Try again<hr>\n"; - initialForm(); -} -sub manKey { - my($topic) = ($_[0]); - open(TMPHTML,"$ManPrg -k $topic | sort -u |") - || die "can't open pipe \"$ManPrg -k $topic | sort -u |\": $!\n"; - print "<title>Keyword search results for \"$topic\"</title>\n"; - print "<h1>Keyword search results for \"$topic\"</h1><hr>\n"; - while(<TMPHTML>) { - s/\( \)//g; - next if (! /^([^(]+)\s*\(([^)]+)[^-]+-\s(.*)[\n\r]*$/); - @topics=split(/, /,$1); - next if ($2 eq ""); - print "<h2>$3:</h2>\n"; - print "<UL>\n"; - for $topic (@topics) { - print "<li><A HREF=\"$hmanpl?ManSection=$2&ManTopic=$topic\">$topic</a>($2)\n"; - } - print "</UL>\n"; - } - close(TMPHTML); - exitIt(); -} |