#! /bin/sh
# Script to grind nice program listings using TeX.
#
# written Feb, 1985 by Van Jacobson, Lawrence Berkeley Laboratory (adapted
# from the 4.2bsd "vgrind" script).
#
# Translated to Bourne Shell, March 1987, Lou Salkind, New York University
#
# Since TeX output handling is site dependent, you'll have to edit this
# file to get output to your local typesetting device(s).  Our site uses
# the flags "-v" (versatec output), "-q" (qms output) and "-o" (keep dvi file)
# to route output.  Put something appropriate to your site at the "PUT OUTPUT
# HANDLING..." comment at the end of this script.  If you've already dealt
# with this in your local tex command, just change the -v/q/k (or whatever)
# cases in the first "switch" to set variable "texoptions" appropriately.
#
b=/usr/local/lib/tfontedpr
tex=/usr/local/bin/tex
options=
texoptions=
files=
head=""
format=""
output="dvi"
outputfile=tgrind.dvi
expecting=filename

for A do
   case $A in

   -d)
       expecting=doptions ;;

   -f)
       format="Y" ;;

   -h)
       expecting=head ;;

   -o)
       output=dvi
       expecting=outputfile ;;

# some sample devices...
   -v)
       output="ver" ;;

   -q)
       output="qms" ;;

   -*)
       options="$options $A" ;;

   *)
       case $expecting in
       outputfile)
               outputfile="$A" ;;
       head)
               head="$A" ;;
       doptions)
               options="$options -d $A" ;;
       filename)
               files="$files $A" ;;
       esac
       expecting=filename ;;
   esac
done

if [ "$format" = "Y" ]; then
   if [ "$head" != "" ]; then
       $b $options -h "$head" $files
   else
       $b $options $files
   fi
   exit 0
fi

trap 'rm -f tgrnd$$.tex tgrnd$$.dvi tgrnd$$.log' 0 2 3 15

if [ "$head" != "" ]; then
   $b $options -h "$head" $files >tgrnd$$.tex
else
   $b $options $files >tgrnd$$.tex
fi
$tex $texoptions tgrnd$$.tex

# PUT OUTPUT HANDLING COMMANDS HERE.
case $output in
ver)
       ;;
qms)
       ;;
dvi)
#       if [ `expr $outputfile : '/*'` -eq 0 ]; then
#               outputfile=$mydir/$outputfile
#       fi
       mv tgrnd$$.dvi $outputfile
       ;;
esac