#!/usr/local/bin/perl # # [man-print] 26.02.1997 R.Scholz # # Ersatz für man -t (geht bei Solaris 2.5 nicht mehr??) ($NAME=$0) =~ s|.*/||; # get basename from $0 $A2PS="a2ps-new"; # version 4.10 or so is good $USAGE="\nUsage: $NAME [options] program \n" . "\nOptions:\n" . " -h Show this help.\n" . " -s section specify manual section.\n" . " -P[printer] print to printer.\n" . " If [printer] is omitted, print to default printer.\n" . " If -P is omitted, print to STDOUT.\n" . "\n"; if (@ARGV == 0) { die $USAGE; } while ($arg=shift(@ARGV)) { die $USAGE if ($arg eq "-h"); $SECTION=shift(@ARGV), next if ($arg eq "-s"); $PRINTER=`lpstat -s|grep "default"|/bin/cut -f4 -d\\ `, next if ($arg eq "-P"); $PRINTER=$1, next if ($arg=~/^-P(\w+)/); $PROG=$arg; } #print "Prog: $PROG\n"; chomp($PRINTER); $_=`man -lF $PROG`; die "No manual entry for $PROG.\n" if (/No manual entry/); s/[ ]*$PROG\s*//sg; s/\(|\)//g; if ($SECTION ne "") { @_=split(/\n/,$_); foreach (@_) { $line=$_, last if (/^$SECTION/); } } else { s/\n.*//s; $line=$_; /^(\d+\w*)/; $SECTION=$1; } #print "LINE: $line\n"; @_=split(" ",$line); $MP=$MF=pop(@_); $EXT=shift(@_); $EXT="1" if ($EXT eq "g"); # /local/GNU/man/mang/ $MF.="/man$SECTION/$PROG.$EXT"; #die "[$MF] [$SECTION] [$PRINTER] [$PROG] \n"; # look if man pages is called via a ".so" link: chomp($_=`head -1 $MF`); if (/^\.so /) { @_=split(" ",$_); $_=pop(@_); $MF="$MP/$_"; #die "$MF\n"; } if ($PRINTER eq "") { system "nroff -man $MF | $A2PS -m -t$PROG --footer -o-"; } else { system "nroff -man $MF | $A2PS -m -t$PROG --footer -P$PRINTER >/dev/null"; }