#!/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