#!/bin/rc
# Print a listing of an object, often a dictionary or an array. Something
# like ==, but the output is often easier to read and closer to PostScript
# that can be sent back through the interpreter.
#
POSTLIB=/sys/lib/postscript/prologues
PROLOGUE=$POSTLIB/grabit.ps
COPYFILE=
RECURSIVE=true
OMITNAMES='/Grabit /GrabitDict'
NONCONFORMING='%!PS'
ENDPROLOG='%%EndProlog'
BEGINSETUP='%%BeginSetup'
ENDSETUP='%%EndSetup'
TRAILER='%%Trailer'
SETUP=GrabitSetup
while (! ~ $#* 0 && ~ $1 -*) {
switch ($1) {
case -d; RECURSIVE=false
case -o; shift; OMITNAMES=$OMITNAMES' '$1
case -o*; OMITNAMES=$OMITNAMES' '`{echo $1 | sed s/-o//}
case -C; shift; COPYFILE=$COPYFILE' '$1
case -C*; COPYFILE=$COPYFILE' '`{echo $1 | sed s/-C//}
case -L; shift; PROLOGUE=$1
case -L*; PROLOGUE=`{echo $1 | sed s/-L//}
case --;
case -*; echo $0: illegal option $1 >[1=2]; exit 1
}
shift
done
echo $NONCONFORMING
cat $PROLOGUE
echo $ENDPROLOG
echo $BEGINSETUP
if (~ $COPYFILE '') COPYFILE=/dev/null
cat $COPYFILE
echo 'GrabitDict begin'
echo '/recursive '$RECURSIVE' def'
echo mark
for (i in $OMITNAMES) {
switch ($i) {
case /*; echo $i
case ?*; echo /$i
}
}
echo GrabitSetup
echo end
echo $ENDSETUP
for (i) echo $i Grabit
|