Newsgroups: comp.sources.unix From: ado@elsie.nci.nih.gov (Arthur David Olson) Subject: v26i297: ltroff - troff-classic to laserjet 4 filter (incl scalable fonts), Patch01 Sender: unix-sources-moderator@gw.home.vix.com Approved: vixie@gw.home.vix.com Submitted-By: ado@elsie.nci.nih.gov (Arthur David Olson) Posting-Number: Volume 26, Issue 297 Archive-Name: ltroff/patch01 [ I changed the diffs a bit to make it apply using "patch". --vix ] Am I abashed! Of all the files to be missing from the distribution, it was "ltroff.sh", the driver script. The right stuff, along with an updated Makefile, is attached. My apologies. --ado SCCS/s.Makefile: 4.1 vs. 4.2 *** Makefile Fri Jul 16 12:27:39 1993 --- Makefile Fri Jul 16 12:27:39 1993 *************** *** 1,4 **** ! # @(#)Makefile 4.1 # XXX--correct "or" character # XXX--better width tables --- 1,4 ---- ! # @(#)Makefile 4.2 # XXX--correct "or" character # XXX--better width tables *************** *** 106,111 **** --- 106,112 ---- $(MANS) \ testfile \ Makefile \ + ltroff.sh \ $(HEADERS) \ $(SOURCES) \ $(COMMON) \ SCCS/s.ltroff.sh: 4.1 vs. 4.2 *** /dev/null Fri Jul 16 12:27:40 1993 --- ltroff.sh Fri Jul 16 12:27:40 1993 *************** *** 0 **** --- 1,96 ---- + #! /bin/sh + + : '@(#)ltroff.sh 4.2' + + : To match the behavior of old troff, we must not use getopt. + + libdir=LIBDIR + datadir=DATADIR + + cart=default + tflag=0 + mx= + + if [ -r $libdir/troffflags ] + then + troffflags=`cat $libdir/troffflags`" $troffflags" + else + troffflags= + fi + + while : + do + case $# in + 0) break ;; + esac + case $1 in + --) shift ; break ;; + -) break ;; + -t) tflag=1 ; shift ;; + -c?*) cart=`expr "$1" : '..\(.*\)'` ; shift ;; + -c) O=`basename $0` + echo "$O: wild cartridgeless -c option" >&2 + exit 1 ;; + -m*) maybe=$libdir/tmac/tmac.`expr "$1" : '..\(.*\)'` + if [ -f "$maybe" ] + then + mx="$maybe" + else + troffflags="$troffflags $1" + fi + shift ;; + -*) troffflags="$troffflags $1" ; shift ;; + *) break ;; + esac + done + + case $#$1 in + 0) set x - ; shift ;; + 1=) O=`basename $0` + echo "$O: usage is $O [-ccartridge] [troff flag...] [file...]" >&2 + exit 1 ;; + esac + + case $cart in + /*) ;; + *) cart=$datadir/$cart ;; + esac + + : The ftXX is a workaround for a 4.3BSD troff bug; + : the -rv1 avoids cut marks being spit out when using -ms. + + front='/usr/bin/troff -f -t -rv1 -F$cart/ftXX $troffflags $mx $datadir/tmac "$@"' + + case $tflag in + 1) eval $front ;; # So "lpr -t" will work later. + 0) if [ ! -f $libdir/lj4kermhosts ] + then + eval $front | + lpr -t -1 $cart/R -2 $cart/I \ + -3 $cart/B -4 $cart/S + break + fi + case $REMOTE in + "") REMOTE=`who am i | + sed -n 's/.*(\([^.)]*\).*/\1/p'` ;; + esac + if fgrep -s -x -e "$REMOTE" $libdir/lj4kermhosts + then + eval $front | ( + awk 'BEGIN { + printf "%cE%c[5i",27,27 + exit + }' + tlc $cart + awk 'BEGIN { + printf "%cE%c[4i",27,27 + exit + }' + ) + else + eval $front | + lpr -t -1 $cart/R -2 $cart/I \ + -3 $cart/B -4 $cart/S + fi + ;; + esac