diff options
Diffstat (limited to 'en/cgi/man.cgi')
-rwxr-xr-x | en/cgi/man.cgi | 1229 |
1 files changed, 0 insertions, 1229 deletions
diff --git a/en/cgi/man.cgi b/en/cgi/man.cgi deleted file mode 100755 index 1db02f1c53..0000000000 --- a/en/cgi/man.cgi +++ /dev/null @@ -1,1229 +0,0 @@ -#!/usr/bin/perl -T -# -# Copyright (c) 1996-2004 Wolfram Schneider <wosch@FreeBSD.org> -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# man.cgi - HTML hypertext FreeBSD man page interface -# -# based on bsdi-man.pl,v 2.17 1995/10/05 16:48:58 sanders Exp -# bsdi-man -- HTML hypertext BSDI man page interface -# based on bsdi-man.pl,v 2.10 1993/10/02 06:13:23 sanders Exp -# by polk@BSDI.COM 1/10/95 -# BSDI Id: bsdi-man,v 1.2 1995/01/11 02:30:01 polk Exp -# Dual CGI/Plexus mode and new interface by sanders@bsdi.com 9/22/1995 -# -# $Id: man.cgi,v 1.149 2005-06-27 09:55:49 wosch Exp $ - -#use Data::Dumper; -#use Carp; - - -$www{'title'} = 'FreeBSD Hypertext Man Pages'; -$www{'home'} = 'http://www.FreeBSD.org'; -$www{'head'} = qq[<A HREF="$www{'home'}">$www{'title'}</a> ] . - qq[<IMG SRC="/gifs/littlelogo.gif">] . - ""; - -$command{'man'} = 'man'; # 8Bit clean man -$command{'man'} = '/home/wosch/bin/cgi-man'; # 8Bit clean man -$command{'man'} = '/usr/bin/man'; # 8Bit clean man - - -# Config Options -# map sections to their man command argument(s) -%sections = ( - '', '', - 'All', '', - '0', '', - - '1', '-S1', - '1c', '-S1', - '1C', '-S1', - '1g', '-S1', - '1m', '-S1', - '2', '-S2', - '2j', '-S2', - '3', '-S3', - '3S', '-S3', - '3f', '-S3', - '3j', '-S3', - '3m', '-S3', - '3n', '-S3', - '3r', '-S3', - '3s', '-S3', - '3x', '-S3', - '4', '-S4', - '5', '-S5', - '6', '-S6', - '7', '-S7', - '8', '-S8', - '8c', '-S8', - '9', '-S9', - 'l', '-Sl', - 'n', '-Sn', -); - -$sectionpath = { - 'HP-UX 11.22' => { 'path' => '1:1m:2:3:4:5:7:9' }, - 'HP-UX 11.20' => { 'path' => '1:1m:2:3:4:5:7:9' }, - 'HP-UX 11.11' => { 'path' => '1:1m:2:3:4:5:7:9' }, - 'HP-UX 11.00' => { 'path' => '1:1m:2:3:4:5:7:9' }, - 'HP-UX 10.20' => { 'path' => '1:1m:2:3:4:5:7:9' }, - 'HP-UX 10.10' => { 'path' => '1:1m:2:3:4:5:7:9' }, - 'HP-UX 10.01' => { 'path' => '1:1m:2:3:4:5:7:9' }, - 'SunOS 5.9' => { - 'path' => '1:1m:1s:2:3:3c:3malloc:3dl:3nsl:3socket:3ldap:3nisdb:3rac:3resolv:3rpc:3slp:3xfn:3proc:3rt:3thr:3elf:3kvm:3kstat:3m:3mp:3pam:3sched:3aio:3bsm:3cpc:3sec:3secdb:3cfgadm:3crypt:3devid:3devinfo:3door:3lib:3libucb:3head:3nvpair:3rsm:7:7d:7fs:7i:7m:7p:9:9e:9f:9p:9s:4:5:4b:3gen:3exacct:3sysevent:3wsreg:3dmi:3snmp:3tnf:3volmgt:3mail:3layout:3ext:3picl:3picltree:3pool:3project:1b:1c:1f:3ucb:3xnet:3curses:3plot:3xcurses:3gss:6:l:n', - }, - 'SunOS 5.8' => { - 'path' => '1:1m:1s:2:3:3c:3malloc:3dl:3nsl:3socket:3ldap:3krb:3nisdb:3rac:3resolv:3rpc:3slp:3xfn:3proc:3rt:3thr:3elf:3kvm:3kstat:3m:3mp:3pam:3sched:3aio:3bsm:3cpc:3sec:3secdb:3cfgadm:3crypt:3devid:3devinfo:3door:3lib:3libucb:3head:7:7d:7fs:7i:7m:7p:9:9e:9f:9s:4:5:4b:3gen:3dmi:3snmp:3tnf:3volmgt:3mail:3layout:3ext:1b:1c:1f:3ucb:3xnet:3curses:3plot:3xcurses:6:l:n', - }, - 'SunOS 5.7' => { - 'path' => '1:1m:1c:1f:1s:1b:2:3:3c:3s:3x:3xc:3n:3r:3t:3xn:3m:3k:3g:3e:3b:9f:9s:9e:9:4:5:7:7d:7i:7m:7p:7fs:4b:6:l:n', - }, - 'SunOS 5.6' => { - 'path' => '1:1m:1c:1f:1s:1b:2:3:3c:3s:3x:3xc:3xn:3r:3t:3n:3m:3k:3g:3e:3b:9f:9s:9e:9:4:5:7:7d:7i:7m:7p:7fs:4b:6:l:n', - }, - 'SunOS 5.5.1' => { - 'path' => '1:1m:1c:1f:1s:1b:2:3:3c:3s:3x:3xc:3xn:3r:3t:3n:3m:3k:3g:3e:3b:9f:9s:9e:9:4:5:7:7d:7i:7m:7p:7fs:4b:6:l:n', - }, - 'OpenBSD 3.0' => { - 'path' => '1:2:3:3p:4:5:6:7:8:9', - }, - 'OpenBSD 3.1' => { - 'path' => '1:2:3:3p:4:5:6:7:8:9', - }, - 'OpenBSD 3.2' => { 'path' => '1:2:3:3p:4:5:6:7:8:9', }, - 'OpenBSD 3.3' => { 'path' => '1:2:3:3p:4:5:6:7:8:9', }, - 'OpenBSD 3.4' => { 'path' => '1:2:3:3p:4:5:6:7:8:9', }, - 'OpenBSD 3.5' => { 'path' => '1:2:3:3p:4:5:6:7:8:9', }, - 'OpenBSD 3.6' => { 'path' => '1:2:3:3p:4:5:6:7:8:9', }, -}; - -foreach my $os (keys %$sectionpath) { - foreach my $section (split(/:/, $sectionpath->{$os}{'path'})) { - $section =~ /(.)(.*)/; - $sectionpath->{$os}{$1} .= - ($sectionpath->{$os}{$1} ? ':' : '') . $section; - } -} - - -%sectionName = - ( - '0', 'All Sections', - '1', '1 - General Commands', - '2', '2 - System Calls', - '3', '3 - Subroutines', - '4', '4 - Special Files', - '5', '5 - File Formats', - '6', '6 - Games', - '7', '7 - Macros and Conventions', - '8', '8 - Maintenance Commands', - '9', '9 - Kernel Interface', - 'n', 'n - New Commands', - ); - -$manLocalDir = '/usr/local/www/bsddoc/man'; -$manPathDefault = 'FreeBSD 5.4-RELEASE and Ports'; -#$manPathDefault = 'FreeBSD 5.1-RELEASE'; - -%manPath = - ( - 'FreeBSD 5.4-RELEASE and Ports', "$manLocalDir/FreeBSD-5.4-RELEASE/man:$manLocalDir/FreeBSD-5.4-RELEASE/openssl/man:$manLocalDir/FreeBSD-ports-5.3-RELEASE", - - 'FreeBSD 6.0-current', "$manLocalDir/FreeBSD-6-current", - 'FreeBSD 5.4-stable', "$manLocalDir/FreeBSD-5.4-stable", - 'FreeBSD 4.11-stable', "$manLocalDir/FreeBSD-4.11-stable", - - 'FreeBSD 5.4-RELEASE', "$manLocalDir/FreeBSD-5.4-RELEASE/man:$manLocalDir/FreeBSD-5.4-RELEASE/openssl/man", - 'FreeBSD 5.3-RELEASE', "$manLocalDir/FreeBSD-5.3-RELEASE/man:$manLocalDir/FreeBSD-5.3-RELEASE/openssl/man", - 'FreeBSD 5.2.1-RELEASE', "$manLocalDir/FreeBSD-5.2-RELEASE/man:$manLocalDir/FreeBSD-5.2-RELEASE/openssl/man", - 'FreeBSD 5.2-RELEASE', "$manLocalDir/FreeBSD-5.2-RELEASE/man:$manLocalDir/FreeBSD-5.2-RELEASE/openssl/man", - 'FreeBSD 5.1-RELEASE', "$manLocalDir/FreeBSD-5.1-RELEASE/man:$manLocalDir/FreeBSD-5.1-RELEASE/openssl/man", - 'FreeBSD 5.0-RELEASE', "$manLocalDir/FreeBSD-5.0-RELEASE", - 'FreeBSD 4.11-RELEASE', "$manLocalDir/FreeBSD-4.11-RELEASE/man:$manLocalDir/FreeBSD-4.11-RELEASE/openssl/man:$manLocalDir/FreeBSD-4.11-RELEASE/perl/man", - 'FreeBSD 4.10-RELEASE', "$manLocalDir/FreeBSD-4.10-RELEASE/man:$manLocalDir/FreeBSD-4.10-RELEASE/openssl/man:$manLocalDir/FreeBSD-4.10-RELEASE/perl/man", - 'FreeBSD 4.9-RELEASE', "$manLocalDir/FreeBSD-4.9-RELEASE", - 'FreeBSD 4.8-RELEASE', "$manLocalDir/FreeBSD-4.8-RELEASE", - 'FreeBSD 4.7-RELEASE', "$manLocalDir/FreeBSD-4.7-RELEASE", - 'FreeBSD 4.6.2-RELEASE', "$manLocalDir/FreeBSD-4.6.2-RELEASE", - 'FreeBSD 4.6-RELEASE', "$manLocalDir/FreeBSD-4.6-RELEASE", - 'FreeBSD 4.5-RELEASE', "$manLocalDir/FreeBSD-4.5-RELEASE", - 'FreeBSD 4.4-RELEASE', "$manLocalDir/FreeBSD-4.4-RELEASE", - 'FreeBSD 4.3-RELEASE', "$manLocalDir/FreeBSD-4.3-RELEASE", - 'FreeBSD 4.2-RELEASE', "$manLocalDir/FreeBSD-4.2-RELEASE", - 'FreeBSD 4.1.1-RELEASE', "$manLocalDir/FreeBSD-4.1.1-RELEASE", - 'FreeBSD 4.1-RELEASE', "$manLocalDir/FreeBSD-4.1-RELEASE", - 'FreeBSD 4.0-RELEASE', "$manLocalDir/FreeBSD-4.0-RELEASE", - 'FreeBSD 3.5.1-RELEASE', "$manLocalDir/FreeBSD-3.5.1-RELEASE", - 'FreeBSD 3.4-RELEASE', "$manLocalDir/FreeBSD-3.4-RELEASE", - 'FreeBSD 3.3-RELEASE', "$manLocalDir/FreeBSD-3.3-RELEASE", - 'FreeBSD 3.2-RELEASE', "$manLocalDir/FreeBSD-3.2-RELEASE", - 'FreeBSD 3.1-RELEASE', "$manLocalDir/FreeBSD-3.1-RELEASE", - 'FreeBSD 3.0-RELEASE', "$manLocalDir/FreeBSD-3.0-RELEASE", - 'FreeBSD 2.2.5-RELEASE', "$manLocalDir/FreeBSD-2.2.5-RELEASE", - 'FreeBSD 2.2.6-RELEASE', "$manLocalDir/FreeBSD-2.2.6-RELEASE", - 'FreeBSD 2.2.7-RELEASE', "$manLocalDir/FreeBSD-2.2.7-RELEASE", - 'FreeBSD 2.2.8-RELEASE', "$manLocalDir/FreeBSD-2.2.8-RELEASE", - 'FreeBSD 2.2.2-RELEASE', "$manLocalDir/FreeBSD-2.2.2-RELEASE", - 'FreeBSD 2.2.1-RELEASE', "$manLocalDir/FreeBSD-2.2.1-RELEASE", - 'FreeBSD 2.1.7.1-RELEASE', "$manLocalDir/FreeBSD-2.1.7.1-RELEASE", - 'FreeBSD 2.1.6.1-RELEASE', "$manLocalDir/FreeBSD-2.1.6.1-RELEASE", - 'FreeBSD 2.1.5-RELEASE', "$manLocalDir/FreeBSD-2.1.5-RELEASE", - 'FreeBSD 2.1.0-RELEASE', "$manLocalDir/FreeBSD-2.1.0-RELEASE", - 'FreeBSD 2.0.5-RELEASE', "$manLocalDir/FreeBSD-2.0.5-RELEASE", - 'FreeBSD 2.0-RELEASE', "$manLocalDir/FreeBSD-2.0-RELEASE", - 'FreeBSD 1.1.5.1-RELEASE', "$manLocalDir/FreeBSD-1.1.5.1-RELEASE", - 'FreeBSD 1.1-RELEASE', "$manLocalDir/FreeBSD-1.1-RELEASE", - 'FreeBSD 1.0-RELEASE', "$manLocalDir/FreeBSD-1.0-RELEASE", - - 'FreeBSD Ports 5.3-RELEASE', "$manLocalDir/FreeBSD-ports-5.3-RELEASE", - 'FreeBSD Ports 5.1-RELEASE', "$manLocalDir/FreeBSD-ports-5.1-RELEASE", - 'FreeBSD Ports 5.0-RELEASE', "$manLocalDir/FreeBSD-ports-5.0-RELEASE", - 'FreeBSD Ports 4.7-RELEASE', "$manLocalDir/FreeBSD-ports-4.7-RELEASE", - - 'OpenBSD 2.0', "$manLocalDir/OpenBSD-2.0", - 'OpenBSD 2.1', "$manLocalDir/OpenBSD-2.1", - 'OpenBSD 2.2', "$manLocalDir/OpenBSD-2.2", - 'OpenBSD 2.3', "$manLocalDir/OpenBSD-2.3", - 'OpenBSD 2.4', "$manLocalDir/OpenBSD-2.4", - 'OpenBSD 2.5', "$manLocalDir/OpenBSD-2.5", - 'OpenBSD 2.6', "$manLocalDir/OpenBSD-2.6", - 'OpenBSD 2.7', "$manLocalDir/OpenBSD-2.7", - 'OpenBSD 2.8', "$manLocalDir/OpenBSD-2.8", - 'OpenBSD 2.9', "$manLocalDir/OpenBSD-2.9", - 'OpenBSD 3.0', "$manLocalDir/OpenBSD-3.0", - 'OpenBSD 3.1', "$manLocalDir/OpenBSD-3.1", - 'OpenBSD 3.2', "$manLocalDir/OpenBSD-3.2", - 'OpenBSD 3.3', "$manLocalDir/OpenBSD-3.3", - 'OpenBSD 3.4', "$manLocalDir/OpenBSD-3.4/share/man:$manLocalDir/OpenBSD-3.4/X11R6/man", - 'OpenBSD 3.5', "$manLocalDir/OpenBSD-3.5/share/man:$manLocalDir/OpenBSD-3.5/X11R6/man", - 'OpenBSD 3.6', "$manLocalDir/OpenBSD-3.6/share/man:$manLocalDir/OpenBSD-3.6/X11R6/man", - - #'NetBSD 0.9', "$manLocalDir/NetBSD-0.9", - 'NetBSD 1.0', "$manLocalDir/NetBSD-1.0", - 'NetBSD 1.1', "$manLocalDir/NetBSD-1.1", - 'NetBSD 1.2', "$manLocalDir/NetBSD-1.2", - 'NetBSD 1.2.1', "$manLocalDir/NetBSD-1.2.1", - 'NetBSD 1.3', "$manLocalDir/NetBSD-1.3", - 'NetBSD 1.3.1', "$manLocalDir/NetBSD-1.3.1", - 'NetBSD 1.3.2', "$manLocalDir/NetBSD-1.3.2", - 'NetBSD 1.3.3', "$manLocalDir/NetBSD-1.3.3", - 'NetBSD 1.4', "$manLocalDir/NetBSD-1.4", - 'NetBSD 1.4.1', "$manLocalDir/NetBSD-1.4.1", - 'NetBSD 1.4.2', "$manLocalDir/NetBSD-1.4.2", - 'NetBSD 1.4.3', "$manLocalDir/NetBSD-1.4.3", - 'NetBSD 1.5', "$manLocalDir/NetBSD-1.5", - 'NetBSD 1.5.1', "$manLocalDir/NetBSD-1.5.1", - 'NetBSD 1.5.2', "$manLocalDir/NetBSD-1.5.2", - 'NetBSD 1.5.3', "$manLocalDir/NetBSD-1.5.3", - 'NetBSD 1.6', "$manLocalDir/NetBSD-1.6", - 'NetBSD 1.6.1', "$manLocalDir/NetBSD-1.6.1", - 'NetBSD 1.6.2', "$manLocalDir/NetBSD-1.6.2", - 'NetBSD 2.0', "$manLocalDir/NetBSD-2.0", - - '2.8 BSD', "$manLocalDir/2.8BSD", - '2.9.1 BSD', "$manLocalDir/2.9.1BSD", - '2.10 BSD', "$manLocalDir/2.10BSD", - '2.11 BSD', "$manLocalDir/2.11BSD", - '386BSD 0.0', "$manLocalDir/386BSD-0.0", - '386BSD 0.1', "$manLocalDir/386BSD-0.1", - '4.3BSD Reno', "$manLocalDir/4.3BSD-Reno", - '4.3BSD NET/2', "$manLocalDir/net2", - '4.4BSD Lite2', "$manLocalDir/4.4BSD-Lite2", - - 'Linux Slackware 3.1', "$manLocalDir/Slackware-3.1", - 'Red Hat Linux/i386 4.2', "$manLocalDir/RedHat-4.2", - 'Red Hat Linux/i386 5.0', "$manLocalDir/RedHat-5.0", - 'Red Hat Linux/i386 5.2', "$manLocalDir/RedHat-5.2-i386", - 'Red Hat Linux/i386 6.1', "$manLocalDir/RedHat-6.1-i386", - 'Red Hat Linux/i386 6.2', "$manLocalDir/RedHat-6.2-i386", - 'Red Hat Linux/i386 7.0', "$manLocalDir/RedHat-7.0-i386", - 'Red Hat Linux/i386 7.1', "$manLocalDir/RedHat-7.1-i386", - 'Red Hat Linux/i386 7.2', "$manLocalDir/RedHat-7.2-i386", - 'Red Hat Linux/i386 7.3', "$manLocalDir/RedHat-7.3-i386", - 'Red Hat Linux/i386 8.0', "$manLocalDir/RedHat-8.0-i386", - 'Red Hat Linux/i386 9', "$manLocalDir/RedHat-9-i386", - - 'SuSE Linux/i386 4.3', "$manLocalDir/SuSE-4.3-i386", - 'SuSE Linux/i386 5.0', "$manLocalDir/SuSE-5.0-i386", - 'SuSE Linux/i386 5.2', "$manLocalDir/SuSE-5.2-i386", - 'SuSE Linux/i386 5.3', "$manLocalDir/SuSE-5.3-i386", - 'SuSE Linux/i386 6.0', "$manLocalDir/SuSE-6.0-i386", - 'SuSE Linux/i386 6.1', "$manLocalDir/SuSE-6.1-i386", - 'SuSE Linux/i386 6.3', "$manLocalDir/SuSE-6.3-i386", - 'SuSE Linux/i386 6.4', "$manLocalDir/SuSE-6.4-i386", - 'SuSE Linux/i386 7.0', "$manLocalDir/SuSE-7.0-i386", - 'SuSE Linux/i386 7.1', "$manLocalDir/SuSE-7.1-i386", - 'SuSE Linux/i386 7.2', "$manLocalDir/SuSE-7.2-i386", - 'SuSE Linux/i386 7.3', "$manLocalDir/SuSE-7.3-i386", - 'SuSE Linux/i386 8.0', "$manLocalDir/SuSE-8.0-i386", - 'SuSE Linux/i386 8.1', "$manLocalDir/SuSE-8.1-i386", - 'SuSE Linux/i386 8.2', "$manLocalDir/SuSE-8.2-i386", - - 'HP-UX 11.22', "$manLocalDir/HP-UX-11.22", - 'HP-UX 11.20', "$manLocalDir/HP-UX-11.20", - 'HP-UX 11.11', "$manLocalDir/HP-UX-11.11", - 'HP-UX 11.00', "$manLocalDir/HP-UX-11.00", - 'HP-UX 10.20', "$manLocalDir/HP-UX-10.20", - 'HP-UX 10.10', "$manLocalDir/HP-UX-10.10", - 'HP-UX 10.01', "$manLocalDir/HP-UX-10.01", - - 'SunOS 5.9', "$manLocalDir/SunOS-5.9", - 'SunOS 5.8', "$manLocalDir/SunOS-5.8", - 'SunOS 5.7', "$manLocalDir/SunOS-5.7", - 'SunOS 5.6', "$manLocalDir/SunOS-5.6", - 'SunOS 5.5.1', "$manLocalDir/SunOS-5.5.1", - 'SunOS 4.1.3', "$manLocalDir/SunOS-4.1.3", - - 'XFree86 3.2', "$manLocalDir/XFree86-3.2", - 'XFree86 3.3', "$manLocalDir/XFree86-3.3", - 'XFree86 3.3.6', "$manLocalDir/XFree86-3.3.6", - 'XFree86 4.0', "$manLocalDir/XFree86-4.0", - 'XFree86 4.0.1', "$manLocalDir/XFree86-4.0.1", - 'XFree86 4.0.2', "$manLocalDir/XFree86-4.0.2", - 'XFree86 4.1.0', "$manLocalDir/XFree86-4.1.0", - 'XFree86 4.2.0', "$manLocalDir/XFree86-4.2.0", - 'XFree86 4.2.99.3', "$manLocalDir/XFree86-4.2.99.3", - 'XFree86 4.3.0', "$manLocalDir/XFree86-4.3.0", - 'XFree86 4.4.0', "$manLocalDir/XFree86-4.4.0", - - 'X11R6.7.0', "$manLocalDir/X11R6.7.0", - - 'ULTRIX 4.2', "$manLocalDir/ULTRIX-4.2", - 'OSF1 V4.0/alpha', "$manLocalDir/OSF1-V4.0-alpha", - 'OSF1 V5.1/alpha', "$manLocalDir/OSF1-V5.1-alpha", - - 'Plan 9', "$manLocalDir/plan9", - 'Minix 2.0', "$manLocalDir/Minix-2.0", - 'Unix Seventh Edition', "$manLocalDir/v7man", - 'deutsch - Linux/GNU', "$manLocalDir/linux-de-0.4", - 'Darwin 1.3 PPC', "$manLocalDir/Darwin-1.3-ppc", - 'Darwin 7.0.1 PPC', "$manLocalDir/Darwin-7.0.1-ppc", -); - -# delete not existing releases -while (($key,$val) = each %manPath) { - my $counter = 0; - - # if the manpath contains colons, at least one directory must exists - foreach (split(/:/, $val)) { - $counter++ if -d; - } - - # give up and delete release - delete $manPath{"$key"} if !$counter && $key ne $manPathDefault; -} - -# keywords must be in lower cases. -%manPathAliases = - ( - 'freebsd', 'FreeBSD 5.3-RELEASE', - 'freebsd-stable', 'FreeBSD 4.11-stable', - 'freebsd-stable5', 'FreeBSD 5.4-stable', - 'freebsd-current', 'FreeBSD 6-current', - 'slackware', 'Linux Slackware 3.1', - 'linux-de', 'deutsch - Linux/GNU', - 'redhat', 'Red Hat Linux/i386 9', - 'suse', 'SuSE Linux/i386 8.2', - 'linux', 'Red Hat Linux/i386 9', - 'darwin', 'Darwin 7.0.1 PPC', - 'macosx', 'Darwin 7.0.1 PPC', - - 'netbsd', 'NetBSD 2.0', - 'openbsd', 'OpenBSD 3.6', - 'v7', 'Unix Seventh Edition', - 'v7man', 'Unix Seventh Edition', - 'x11', 'X11R6.7.0', - 'xfree86', 'XFree86 4.4.0', - 'ultrix', 'ULTRIX 4.2', - 'hpux', 'HP-UX 11.22', - 'solaris', 'SunOS 5.9', - 'sunos5', 'SunOS 5.9', - 'sunos4', 'SunOS 4.1.3', - 'sunos', 'SunOS 4.1.3', - 'freebsd ports', 'FreeBSD Ports 5.3-RELEASE', - 'ports', 'FreeBSD Ports 5.3-RELEASE', - 'plan9', 'Plan 9', - 'osf1', 'OSF1 V5.1/alpha', - 'true64', 'OSF1 V5.1/alpha', -); - -foreach (sort keys %manPathAliases) { - # delete non-existing aliases - if (!defined($manPath{$manPathAliases{$_}})) { - undef $manPathAliases{$_}; - next; - } - - # add aliases, replases spaces with dashes - if (/\s/) { - local($key) = $_; - $key =~ s/\s+/-/g; - $manPathAliases{$key} = $manPathAliases{$_}; - } -} - -@sections = keys %sections; shift @sections; # all but the "" entry -$sections = join("|", @sections); # sections regexp - - -# mailto - Author -# webmaster - who run this service -$mailto = 'wosch@FreeBSD.org'; -$mailtoURL = 'http://wolfram.schneider.org'; -$mailtoURL = "mailto:$mailto" if !$mailtoURL; -$webmaster = $mailto; -$webmasterURL = $mailtoURL; -$manstat = 'http://www.de.freebsd.org/de/stat/man'; - -&secure_env; -# CGI Interface -- runs at load time -&do_man(&env('SCRIPT_NAME'), &env('PATH_INFO'), &env('QUERY_STRING')) - unless defined($main'plexus_configured); - -$enable_include_links = 0; - -# Plexus Native Interface -sub do_man { - local($BASE, $path, $form) = @_; - local($_, %form, $query, $proto, $name, $section, $apropos); - - # spinner is buggy, shit - local($u) = 'http://user.cs.tu-berlin.de/~wosch/man.cgi'; - local($u)= $BASE; - - return &faq_output($u) if ($path =~ /faq.html$/); - return ©right_output($u) if ($path =~ /copyright.html$/); - return &get_the_sources if ($path =~ /source$/); - - return &include_output($path) - if ($enable_include_links && $path =~ m%^/usr/include/% && -f $path); - - return &indexpage if ($form eq ""); - - &decode_form($form, *form, 0); - - $format = $form{'format'}; - $format = 'html' if $format !~ /^(ps|pdf|ascii|latin1|dvi|troff)$/; - - local($fform) = &dec($form); - if ($fform =~ m%^([a-zA-Z_\-]+)$%) { - return &man($1, ''); - } elsif ($fform =~ m%^([a-zA-Z_\-]+)\(([0-9a-zA-Z]+)\)$%) { - return &man($1, $2); - } - - # remove trailing spaces for dumb users - $form{'query'} =~ s/\s+$//; - $form{'query'} =~ s/^\s+//; - - $name = $query = $form{'query'}; - $section = $form{'sektion'}; - $apropos = $form{'apropos'}; - $alttitle = $form{'title'}; - $manpath = $form{'manpath'}; - if (!$manpath) { - $manpath = $manPathDefault; - } elsif (!$manPath{$manpath}) { - local($m) = ($manpath =~ y/A-Z/a-z/); - if ($manPath{$manPathAliases{$manpath}}) { - $manpath = $manPathAliases{$manpath}; - } else { - $manpath = $manPathDefault; - } - } - - # download a man hierarchie as gzip'd tar file - return &download if ($apropos > 1); - - # empty query - return &indexpage if ($manpath && $form !~ /query=/); - - $section = "" if $section eq "ALL" || $section eq ''; - - if (!$apropos && $query =~ m/^(.*)\(([^\)]*)\)/) { - $name = $1; $section = $2; - } - - $apropos ? &apropos($query) : &man($name, $section); -} - -# --------------------- support routines ------------------------ - -sub debug { - &http_header("text/plain"); - print @_,"\n----------\n\n\n"; -} - -sub get_the_sources { - local($file) = '/usr/local/www/bsddoc/bin/man.cgi'; - $file = $0 if ! -f $file; - - open(R, $file) || &mydie("open $file: $!\n"); - print "Content-type: text/plain\n\n"; - while(<R>) { print } - close R; - exit; -} - -# download a manual directory as gzip'd tar archive -sub download { - - $| = 1; - my $filename = $manpath; - $filename =~ s/\s+/_/; - $filename = &encode_url($filename); - $filename .= '.tar.gz'; - - print qq{Content-type: application/x-tar\n} . - qq{Content-encoding: x-gzip\n} . - qq{Content-disposition: inline; filename="$filename"\n} . - "\n"; - - local(@m); - local($m) = $manPath{"$manpath"}; - foreach (split(/:/, $m)) { - push(@m, $_) if s%^$manLocalDir/?%%; - } - - chdir($manLocalDir) || do { - print "chdir: $!\n"; exit(0); - }; - - $m = join(" ", @m); - #warn "find $m -print | cpio -o -H tar 2>/dev/null | gzip -cqf"; - - sleep 1; - system("find $m -print | cpio -o -H tar 2>/dev/null | gzip -cqf"); - exit(0); -} - -sub http_header { - local($content_type) = @_; - if (defined($main'plexus_configured)) { - &main'MIME_header('ok', $content_type); - } else { - print "Content-type: $content_type\n\n"; - } -} - -sub env { defined($main'ENV{$_[0]}) ? $main'ENV{$_[0]} : undef; } - -sub apropos { - local($query) = @_; - local($_, $title, $head, *APROPOS); - local($names, $section, $msg, $key); - local($prefix); - - $prefix = "Apropos "; - if ($alttitle) { - $prefix = ""; - $title = &encode_title($alttitle); - $head = &encode_data($alttitle); - } else { - $title = &encode_title($query); - $head = &encode_data($query); - } - - &http_header("text/html"); - print &html_header("Apropos $title"); - print "<H1>$www{'head'}</H1>\n\n"; - &formquery; - - local($mpath) = $manPath{$manpath}; - - open(APROPOS, "env MANPATH=$mpath $command{'man'} -k . |") || do { - warn "$0: Cannot open whatis database for `$mpath'\n"; - print "Cannot open whatis database for `$mpath'\n"; - print "</DL>\n</BODY>\n</HTML>\n"; - return; - }; - - local($q) = $query; - $q =~ s/(\W)/\\W/g; - local($acounter) = 0; - - while (<APROPOS>) { - next if !/$q/oi; - $acounter++; - - # matches whatis.db lines: name[, name ...] (sect) - msg - $names = $section = $msg = $key = undef; - ($key, $section) = m/^([^()]+)\(([^)]*)\)/; - $key =~ s/\s+$//; - $key =~ s/.*\s+//; - ($names, $msg) = m/^(.*\))\s+-\s+(.*)/; - print "<DT><A HREF=\"$BASE?query=", &encode_url($key), - "&sektion=", &encode_url($section), "&apropos=0", - "&manpath=", &encode_url($manpath), "\">", - &encode_data("$names"), "</A>\n<DD>", - &encode_data($msg), "\n"; - } - close(APROPOS); - - if (!$acounter) { - print "Sorry, no data found for `$query'.\n"; - print qq{You may look for other } . - qq{<a href="../../search/">FreeBSD Search Services</a>.\n}; - } - print "</DL>\n</BODY>\n</HTML>\n"; -} - -sub man { - local($name, $section) = @_; - local($_, $title, $head, *MAN); - local($html_name, $html_section, $prefix); - local(@manargs); - local($query) = $name; - - # $section =~ s/^([0-9ln]).*$/$1/; - $section =~ tr/A-Z/a-z/; - - $prefix = "Man "; - if ($alttitle) { - $prefix = ""; - $title = &encode_title($alttitle); - $head = &encode_data($alttitle); - } elsif ($section) { - $title = &encode_title("${name}($section)"); - $head = &encode_data("${name}($section)"); - } else { - $title = &encode_title("${name}"); - $head = &encode_data("${name}"); - } - - if ($format eq "html") { - &http_header("text/html"); - print &html_header("$title"); - print "<H1>$www{'head'}</H1>\n\n"; - &formquery; - print "<PRE>\n"; - } else { - #$format =~ /^(ps|ascii|latin1|dvi|troff)$/') - $ENV{'NROFF_FORMAT'} = $format; - - # Content-encoding: x-gzip - if ($format eq "ps") { - &http_header("application/postscript"); - } elsif ($format eq "pdf") { - &http_header("application/pdf"); - } elsif ($format eq "dvi") { - &http_header("application/x-dvi"); - } elsif ($format eq "troff") { - &http_header("application/x-troff-mandoc"); - } else { - &http_header("text/plain"); - } - } - - $html_name = &encode_data($name); - $html_section = &encode_data($section); - - #print Dumper($sectionpath); - #print "yy $section yy $manpath\n"; - if ($name =~ /^\s*$/) { - print "Empty input, no man page given.\n"; - return; - } - - if (index($name, '*') != -1) { - print "Invalid character input '*': $name\n"; - return; - } - - if ($section !~ /^[0-9ln]\w*$/ && $section ne '') { - print "Sorry, section `$section' is not valid\n"; - return; - } - - if (!$section) { - if ($sectionpath->{$manpath}) { - $section = "-S " . $sectionpath->{$manpath}{'path'}; - } else { - $section = ''; - } - } else { - if ($sectionpath->{$manpath}{$section}) { - $section = "-S " . $sectionpath->{$manpath}{$section}; - } else { - $section = "-S $section"; - } - } - - @manargs = split(/ /, $section); - if ($manpath) { - if ($manPath{$manpath}) { - unshift(@manargs, ('-M', $manPath{$manpath})); - } elsif ($manpath{&dec($manpath)}) { - unshift(@manargs, ('-M', $manPath{&dec($manpath)})); - } else { - # unset invalid manpath - print "x $manpath x\n"; - print "x " . &dec($manpath) . "x\n"; - undef $manpath; - } - } - - if ($format =~ /^(ps|pdf)$/) { - push(@manargs, '-t'); - } - - # print "X $command{'man'} @manargs -- x $name x\n"; - &proc(*MAN, $command{'man'}, @manargs, "--", $name) || - &mydie ("$0: open of $command{'man'} command failed: $!\n"); - if (eof(MAN)) { - # print "X $command{'man'} @manargs -- x $name x\n"; - print "Sorry, no data found for `$html_name" . - ($html_section ? "($html_section)": '') . "'.\n"; - print qq{You may look for other } . - qq{<a href="../../search/">FreeBSD Search Services</a>.\n}; - return; - } - - if ($format ne "html") { - if ($format eq "latin1" || $format eq "ascii") { - while(<MAN>) { s/.//g; print; } - } elsif ($format eq "pdf") { - # - # run a PostScript to PDF converter - # - local(@args) = ('mktemp', '/tmp/_man.cgi-ps2pdf-XXXXXXXXXXXX'); - open(TMP, "-|") or - exec(@args) or die "open @args: $!\n"; - local($tempfile) = <TMP>; - close TMP; - - # chomp, avoid security warnings using -T switch - #chop($tempfile); - if ($tempfile =~ /(\S+)/) { - $tempfile = $1; - } - - if (!$tempfile || ! -f $tempfile) { - die "Cannot create tempfile: $tempfile\n"; - } - #warn $tempfile; - - #$tempfile = '/tmp/bla2'; - open(TMP, "> $tempfile") or die "open $tempfile: $!\n"; - while(<MAN>) { - print TMP $_; - } - close TMP; - local($ENV{'PATH'}) = '/bin:/usr/bin:/usr/local/bin'; - open(PDF, "-|") or - exec('/usr/local/bin/ps2pdf', $tempfile, '/dev/stdout') or - die "open ps2pdf: $!\n"; - - # sleep and delete the temp file - #select(undef, undef, undef, 0.8); - #unlink($tempfile); - - while(<PDF>) { - print; - } - close PDF; - unlink($tempfile); - - } else { - while(<MAN>) { print; } - } - close(MAN); - exit(0); - } - - local($space) = 1; - local(@sect); - local($i, $j); - while(<MAN>) { - # remove tailing white space - if (/^\s+$/) { - next if $space; - $space = 1; - } else { - $space = 0; - } - - $_ = &encode_data($_); - if($enable_include_links && - m,(<B>)?\#include(</B>)?\s+(<B>)?\<\;(.*\.h)\>\;(</B>)?,) { - $match = $4; ($regexp = $match) =~ s/\./\\\./; - s,$regexp,\<A HREF=\"$BASE/usr/include/$match\"\>$match\</A\>,; - } - /^\s/ && # skip headers - s,((<[IB]>)?[\w\_\.\-]+\s*(</[IB]>)?\s*\(([1-9ln][a-zA-Z]*)\)),&mlnk($1),oige; - - # detect E-Mail Addreses in manpages - if (/\@/) { - s/([a-z0-9_\-\.]+\@[a-z0-9\-\.]+\.[a-z]+)/<A HREF="mailto:$1">$1<\/A>/gi; - } - - # detect URLs in manpages - if (m%tp://%) { - s,((ftp|http)://[^\s<>\)]+),<A HREF="$1">$1</A>,gi; - } - - if (/^<B>\S+/ && m%^<B>([^<]+)%) { - $i = $1; $j = &encode_url($i); - s%^<B>([^<]+)</B>%<a name="$j" href="#end"><B>$i</B></a>%; - push(@sect, $1); - } - print; - } - close(MAN); - print qq{</PRE>\n<a name="end">\n<hr noshade>\n}; - - for ($i = 0; $i <= $#sect; $i++) { - print qq{<a href="#} . &encode_url($sect[$i]) . - qq{">$sect[$i]</a>} . ($i < $#sect ? " |\n" : "\n"); - } - - print "</BODY>\n"; - print "</HTML>\n"; - - # Sleep 0.35 seconds to avoid DoS attacs - select undef, undef, undef, 0.35; -} - -sub mlnk { - local($matched) = @_; - local($link, $section); - ($link = $matched) =~ s/[\s]+//g; - $link =~ s/<\/?[IB]>//g; - ($link, $section) = ($link =~ m/^([^\(]*)\((.*)\)/); - $link = &encode_url($link); - $section = &encode_url($section); - local($manpath) = &encode_url($manpath); - return qq{<A HREF="$BASE?query=$link} . - qq{&sektion=$section&apropos=0&manpath=$manpath">$matched</A>}; -} - -sub proc { - local(*FH, $prog, @args) = @_; - local($pid) = open(FH, "-|"); - return undef unless defined($pid); - if ($pid == 0) { - exec $prog, @args; - &mydie("exec $prog failed\n"); - } - 1; -} - -# $indent is a bit of optional data processing I put in for -# formatting the data nicely when you are emailing it. -# This is derived from code by Denis Howe <dbh@doc.ic.ac.uk> -# and Thomas A Fine <fine@cis.ohio-state.edu> -sub decode_form { - local($form, *data, $indent, $key, $_) = @_; - foreach $_ (split(/&/, $form)) { - ($key, $_) = split(/=/, $_, 2); - $_ =~ s/\+/ /g; # + -> space - $key =~ s/\+/ /g; # + -> space - $_ =~ s/%([\da-f]{1,2})/pack(C,hex($1))/eig; # undo % escapes - $key =~ s/%([\da-f]{1,2})/pack(C,hex($1))/eig; # undo % escapes - $_ =~ s/[\r\n]+/\n\t/g if defined($indent); # indent data after \n - $data{$key} = &escape($_); - } -} - -# block cross-site scripting attacks (css) -sub escape($) { $_ = $_[0]; s/&/&/g; s/</</g; s/>/>/g; $_; } - -sub dec { - local($_) = @_; - - s/\+/ /g; # '+' -> space - s/%(..)/pack("c",hex($1))/ge; # '%ab' -> char ab - - return($_); -} - -# -# Splits up a query request, returns an array of items. -# usage: @items = &main'splitquery($query); -# -sub splitquery { - local($query) = @_; - grep((s/%([\da-f]{1,2})/pack(C,hex($1))/eig, 1), split(/\+/, $query)); -} - -# encode unknown data for use in a URL <A HREF="..."> -sub encode_url { - local($_) = @_; - # rfc1738 says that ";"|"/"|"?"|":"|"@"|"&"|"=" may be reserved. - # And % is the escape character so we escape it along with - # single-quote('), double-quote("), grave accent(`), less than(<), - # greater than(>), and non-US-ASCII characters (binary data), - # and white space. Whew. - s/([\000-\032\;\/\?\:\@\&\=\%\'\"\`\<\>\177-\377 ])/sprintf('%%%02x',ord($1))/eg; - s/%20/+/g; - $_; -} -# encode unknown data for use in <TITLE>...</TITILE> -sub encode_title { - # like encode_url but less strict (I couldn't find docs on this) - local($_) = @_; - s/([\000-\031\%\&\<\>\177-\377])/sprintf('%%%02x',ord($1))/eg; - $_; -} -# encode unknown data for use inside markup attributes <MARKUP ATTR="..."> -sub encode_attribute { - # rfc1738 says to use entity references here - local($_) = @_; - s/([\000-\031\"\'\`\%\&\<\>\177-\377])/sprintf('\&#%03d;',ord($1))/eg; - $_; -} -# encode unknown text data for using as HTML, -# treats ^H as overstrike ala nroff. -sub encode_data { - local($_) = @_; - local($str); - - # Escape &, < and > - s,\010[><&],,g; - s/\&/\&\;/g; - s/\</\<\;/g; - s/\>/\>\;/g; - - s,((_\010.)+),($str = $1) =~ s/.\010//g; "<I>$str</I>";,ge; - s,(.\010)+,$1,g; - - if (!s,((.\010.)+\s+(.\010.)+),($str = $1) =~ s/.\010//g; "<B>$str</B>";,ge) { - s,((.\010.)+),($str = $1) =~ s/.\010//g; "<B>$str</B>";,ge; - } - - - # Escape binary data except for ^H which we process below - # \375 gets turned into the & for the entity reference - #s/([^\010\012\015\032-\176])/sprintf('\375#%03d;',ord($1))/eg; - # Process ^H sequences, we use \376 and \377 (already escaped - # above) to stand in for < and > until those characters can - # be properly escaped below. - #s,\376[IB]\377_\376/[IB]\377,,g; - #s/.[\b]//g; # just do an erase for anything else - # Now convert our magic chars into our tag markers - #s/\375/\&/g; s/\376/</g; s/\377/>/g; - - s,.\010,,g; - - $_; -} - -sub indexpage { - &http_header("text/html"); - print &html_header("$www{'title'}: Index Page") . - "<H1>$www{'head'}</H1>\n\n" . &intro; - &formquery; - - local($m) = ($manpath ? $manpath : $manPathDefault); - $m = &encode_url($m); - - print "<B><I>Section Indexes</I></B>: "; - foreach ('1', '2', '3', '4', '5', '6', '7', '8', '9', 'n') { - print qq{¤ <A HREF="$BASE?query=($_)&sektion=&apropos=1&manpath=$m&title=Section%20$_Index">$_</A>\n}; - } - - print "<BR><B><I>Explanations of Man Sections:</I></B>"; - foreach ('1', '2', '3', '4', '5', '6', '7', '8', '9') { - print qq{¤ <A HREF="$BASE?query=intro&sektion=$_&apropos=0&manpath=$m&title=Introduction%20Section%20$_">intro($_)</A>\n}; - } - - print "<BR>\n<B><I>Quick Reference Categories:</I></B>\n"; - foreach ('database', 'disk', 'driver', 'ethernet', 'mail', 'net', 'nfs', - 'nis', 'protocol', 'ppp', 'roff', 'string', 'scsi', - 'statistic', 'tcl', 'tcp', 'time') - { - print qq{¤ <A HREF="$BASE?query=$_&sektion=&apropos=1&manpath=$m&title=Quick%20Ref%20$_">$_</A>\n}; - } - - print <<ETX if $mailto; -<HR noshade> -<img ALIGN="RIGHT" src="/gifs/powerlogo.gif"> -Please direct questions about this server to -<I><A HREF="$webmasterURL">$webmaster</A></I><br> -URL: <A HREF="$BASE" target=_parent>$www{'home'}$BASE</a><br> -ETX - - print "<br>\n"; - print "</BODY>\n</HTML>\n"; - 0; -} - -sub formquery { - local($astring, $bstring); - if (!$apropos) { - $astring = " CHECKED"; - } else { - $bstring = " CHECKED"; - } - - print <<ETX; -<FORM METHOD="GET" ACTION="$BASE"> -<B><I>Man Page or Keyword Search:</I></B> -<INPUT VALUE="$query" NAME="query"> -<INPUT TYPE="submit" VALUE="Submit"> -<INPUT TYPE="reset" VALUE="Reset"> -<BR> -<INPUT NAME="apropos" VALUE="0" TYPE="RADIO"$astring> <A HREF="$BASE?query=man&sektion=1&apropos=0">Man</A> -<SELECT NAME="sektion"> -ETX - - - foreach $key (sort keys %sectionName) { - print "<OPTION" . (($key eq $section) ? ' SELECTED ' : ' ') . - qq{VALUE="$key">$sectionName{$key}</OPTION>\n}; - }; - - - print qq{</SELECT>\n<SELECT NAME="manpath">\n}; - - local($l) = ($manpath ? $manpath : $manPathDefault); - foreach (sort keys %manPath) { - $key = $_; - print "<OPTION" . (($key eq $l) ? ' SELECTED ' : ' ') . - qq{VALUE="$key">$key</OPTION>\n}; - } - - local($m) = &encode_url($l); - print <<ETX; -</SELECT> -<BR> -<INPUT NAME="apropos" VALUE="1" TYPE="RADIO"$bstring> <A HREF="$BASE?query=apropos&sektion=1&apropos=0">Apropos</A> Keyword Search (all sections) -<SELECT NAME="format"> -ETX - - foreach ('html', 'ps', 'pdf', - # 'dvi', # you need a 8 bit clean man, e.g. jp-man - 'ascii', 'latin1') { - print qq{<OPTION VALUE="$_">$_</OPTION>\n}; - }; - - print <<ETX; -</SELECT> -Output format -</FORM> - -<A HREF="$BASE?manpath=$m">Index Page and Help</A> | -<A HREF="$BASE/faq.html">FAQ</A> | -<A HREF="$BASE/copyright.html">Copyright</A> -<HR> -ETX - 0; -} - -sub copyright { - $id = '$Id: man.cgi,v 1.149 2005-06-27 09:55:49 wosch Exp $'; - - return qq{\ -<PRE> -Copyright (c) 1996-2004 Wolfram Schneider <A HREF="$mailtoURL"><$mailto></A> -Copyright (c) 1993-1995 Berkeley Software Design, Inc. - -This data is part of a licensed program from BERKELEY SOFTWARE -DESIGN, INC. Portions are copyrighted by BSDI, The Regents of -the University of California, Massachusetts Institute of -Technology, Free Software Foundation, FreeBSD Inc., and others. - -</PRE>\n -This script has the revsion: $id -<p> - -Copyright (c) for man pages by OS vendors. -<p> -<a href="ftp://ftp.2bsd.com">2.11 BSD</a>, -<a href="http://www.hp.com">HP</a>, -<a href="http://www.freebsd.org">FreeBSD</a>, -<a href="http://www.cs.vu.nl/~ast/minix.html">Minix</a>, -<a href="http://slackware.com">Linux Slackware</a>, -<a href="http://www.linux.de">Linux/de</a>, -<a href="http://www.netbsd.org">NetBSD</a>, -<a href="http://www.openbsd.org">OpenBSD</a>, -<a href="http://plan9.bell-labs.com/plan9/">Plan 9</a>, -<a href="http://www.sun.com">SunOS</a>, -<a href="http://www.digital.com">ULTRIX</a>, -<a href="ftp://elib.zib.de/pub/netlib/att/cs/v7man">Unix Seventh Edition</a>, -<a href="http://www.xfree86.org">XFree86</a>, -<a href="http://www.x.org">X11R6</a> -}; -} - -sub faq { - - local(@list, @list2); - local($url); - foreach (sort keys %manPath) { - $url = &encode_url($_); - push(@list, - qq{<li><a href="$BASE?apropos=2&manpath=$url">[download]} . - qq{</a> "$_" -> $BASE?manpath=$url}); - } - - foreach (sort keys %manPathAliases) { - push(@list2, qq[<li>"$_" -> "$manPathAliases{$_}" -> ] . - "$BASE?manpath=" . - &encode_url($_) . "\n") if $manPathAliases{$_}; - } - - return qq{\ -<PRE> -Copyright (c) 1996-2004 Wolfram Schneider <a href="$mailtoURL"><$mailto></a> -</PRE> - -<h2>FAQ</h2> -<UL> -<li>Get the <a href="$BASE/source">source</a> of the man.cgi script -<li>Troff macros works only if defined in FreeBSD/groff. OS specific -macros like `appeared in NetBSD version 1.2' are not supported. -<li>Netscape is buggy, you may press twice the link 'Index Page and Help' -<li>Some OSs provide only formated manual pages (catpages), e.g. NetBSD -and OpenBSD. In this case it is not possible to create Postscript -and troff output. -<li>The <a href="http://cvsweb.freebsd.org/src/share/misc/bsd-family-tree"> -Unix family tree, BSD part</a>. -<li>The <a href="http://www.freebsd.org/cgi/ports.cgi"> -FreeBSD Ports Changes</a> script. -<li>Copyright (c) and download for man pages by <a href="$BASE/copyright.html"> -OS vendors</a> -</UL> - -<h2>Releases</h2> - -Releases and Releases Aliases are information how -to make a link to this script to the right OS version. -<p> -You may download the manpages as gzip'd tar archive -for private use. A tarball is usually 5MB big. -<p> -<ul> -@list -</ul> - -<h2>Releases Aliases</h2> -Release aliases are for lazy people. Plus, they have a longer -lifetime, eg. 'openbsd' points always to the latest OpenBSD release. -<ul> -@list2 -</ul> -}; -} - - -sub intro { - return qq{\ -<P> -<I>Man Page Lookup</I> searches for man pages name and section as -given in the selection menu and the query dialog. <I>Apropos -Keyword Search</I> searches the database for the string given in -the query dialog. There are also several hypertext links provided -as short-cuts to various queries: <I>Section Indexes</I> is apropos -listings of all man pages by section. <I>Explanations of Man -Sections</I> contains pointers to the intro pages for various man -sections. Or you can select a category from <I>Quick Reference -Categories</I> and see man pages relevant to the selected topic. -<P> -}; -} - -sub copyright_output { - &http_header("text/html"); - print &html_header("HTML hypertext FreeBSD man page interface") . - "<H1>$www{'head'}</H1>\n" . ©right . qq{\ -<HR> - -<A HREF="$_[0]">Index Page and Help</A> -</BODY> -</HTML> -}; -} - -sub faq_output { - &http_header("text/html"); - print &html_header("HTML hypertext FreeBSD man page interface") . - "<H1>$www{'head'}</H1>\n" . &faq . qq{\ -<HR> - -<A HREF="$_[0]">Index Page and Help</A> -</BODY> -</HTML> -}; -} - -sub html_header { - return qq{<HTML> -<HEAD> -<TITLE>$_[0]</TITLE> -<link rev="made" href="mailto:wosch\@FreeBSD.ORG"> -<META name="robots" content="nofollow"> -<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> -<style type="text/css"> -<!-- -body {color:#000000;background-color:#EEEEEE} -b {color:#996600;background-color:#EEEEEE} -i {color:#008000;background-color:#EEEEEE} -//--> -</style> -</HEAD> -<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n\n}; -} - -sub secure_env { - $main'ENV{'PATH'} = '/bin:/usr/bin'; - $main'ENV{'MANPATH'} = $manPath{$manPathDefault}; - $main'ENV{'IFS'} = " \t\n"; - $main'ENV{'PAGER'} = 'cat'; - $main'ENV{'SHELL'} = '/bin/sh'; - $main'ENV{'LANG'} = 'en_US.ISO_8859-1'; - undef $main'ENV{'DISPLAY'}; -} - -sub include_output { - local($inc) = @_; - - &http_header("text/plain"); - open(I, "$inc") || do { print "open $inc: $!\n"; exit(1) }; - while(<I>) { print } - close(I); -} - -# CGI script must die with error status 0 -sub mydie { - local($message) = @_; - &http_header("text/html"); - print &html_header("Error"); - print $message; - -print qq{ -<p> -<A HREF="$BASE">Index Page and Help</A> -</BODY> -</HTML> -}; - - exit(0); -} - -1; - - |