Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

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