List of man.cgi

このファイルは、実行が許可されています。
Fri Apr 26 20:49:47 2024

戻る

TEXTAREA で表示(カット&ペーストむき)

#!/usr/local/bin/perl5
#    
# man.cgi
#    
# 1998/03/30 Ver.0.01   telnet.cgi から man 専用版を作成
# 1999/11/26 Ver.0.11
# 1999/12/06 Ver.0.12   3行以上の空白は読み飛ばしする。
#    
# (c) 1998-1999 がま <gama@mvg.biglobe.ne.jp>
# 
# ----------------------------------------------------------------------
# usage:
#       man.cgi
#
#       [section]  title... を入力してください
#
# ----------------------------------------------------------------------
$man    ='/usr/ucb/man/';               # man の所在
$back   ='tools.htm';                   # 終了時の飛び先
# ----------------------------------------------------------------------
$title =$ENV{'QUERY_STRING'};
$title =~ s/title=//;
$title =~ s/\+/ /g;
$title =~ s/%(..)/pack('c',hex($1))/ge;
$title =~ s/[^\w\ ]//g;                   # 英数字,"_",空白以外を削除
# ----------------------------------------------------------------------
$|=1;

print "Content-type: text/html\n\n";
print '<HTML><HEAD><TITLE>man</TITLE><BODY>';
print "<STRONG>man $title</STRONG>\n\n";
print '<HR>';
print "<PRE>\n";
if ($title) {
    open(PROC,"$man $title 2>&1 |");    # 実行
    while (<PROC>) {                    # 結果を読み出す
        chomp;

        unless ( $_ ) {                 # 空白の行を貯めておく
            $nullline   .="\n";
            next;
        }
        $nullline =~ s/\n{3,}/\n\n\n/g; # 3行以上の空白を3行にする。
        print $nullline;
        $nullline ='';

        s/</\001/g;                     #
        s/>/\002/g;                     #

        s/(.)(\x08\1)+/<B>$1<\/B>/g;    # 多重打ち       : . 08h(BS) .
        s/_\x08(.)/<U>$1<\/U>/g;        # アンダーライン : 5fh(_) 08h(BS)
        s/o\x08\+/<S>X<\/S>/g;          # リストマーク   : 35h(o) 08h(BS) 2bh(+)

        s/<\/(.)><\1>//g;               # </TAG><TAG> を削除

        s/&/&amp;/g;                    #
        s/\001/&lt;/g;                  #
        s/\002/&gt;/g;                  #

        print $_,"\n";
        $oldline = $_;
    }
    close(PROC);
}
# ----------------------------------------------------------------------
print "</PRE>\n";
print '<HR>';
print '<FORM ACTION="man.cgi" METHOD="GET">';
print 'man <INPUT TYPE="text" NAME="title" SIZE=80 VALUE="' . $title . '">';
print '<INPUT TYPE="submit" VALUE="Send">';
print '</FORM>';
print '<HR>';
print '<A HREF="',$back,'">終了</A>';
print '<HR>';
print '</BODY></HTML>';

戻る