#!/bin/csh -f
# Script to grind nice program listings using TeX.
#
# written Feb, 1985 by Van Jacobson, Lawrence Berkeley Laboratory (adapted
# from the 4.2bsd "vgrind" script).
#
# 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 "-k" (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.
#

if (! $?hosttype) then
	set hosttype = `machtype` || exit 1
endif

set b=/mit/sipb/${hosttype}lib/tfontedpr
set tex=tex
set options=
set texoptions=
set files=
set head=""
set format=""
top:
if ($#argv > 0) then
    switch ($1:q)

    case -d:
	if ($#argv < 2) then
	    echo "tgrind: $1:q option must have argument"
	    goto done
	else
	    set options = ($options $1:q $2)
	    shift
	    shift
	    goto top
	endif
			
    case -f:
	set format="Y"
	shift
	goto top

    case -h:
	if ($#argv < 2) then
	    echo "tgrind: $1:q option must have argument"
	    goto done
	else
	    set head="$2"
	    shift
	    shift
	    goto top
	endif

    case -latex:
	set format="Y"
	set options = "$options $1:q"
	shift
	goto top

    case -*:
	set options = "$options $1:q"
	shift
	goto top

    default:
	set files = "$files $1:q"
	shift
	goto top
    endsw
endif

if ("$format" == "Y") then
    if ("$head" != "") then
	$b $options -h "$head" $files
    else
	$b $options $files
    endif
    goto done
endif

if ("$head" != "") then
    $b $options -h "$head" $files >/tmp/$$.tex
else
    $b $options $files >/tmp/$$.tex
endif
cd /tmp
$tex $texoptions /tmp/$$.tex

rm -f $$.tex $$.log
done:
