#!/usr/local/plan9/bin/rc
# Formatted dump of encoded characters in one or more PostScript fonts.
# Arguments should be PostScript font names or the word all, which dumps
# all ROM and disk based fonts.
#

POSTLIB=/usr/local/plan9/postscript/prologues
PROLOGUE=$POSTLIB/printfont.ps

OPTIONS=''
COPYFILE=''
MODE=portrait
FONTENCODING=Default

NONCONFORMING='%!PS'
ENDPROLOG='%%EndProlog'
BEGINSETUP='%%BeginSetup'
ENDSETUP='%%EndSetup'
TRAILER='%%Trailer'

SETUP=setup

while (! ~ $#* 0 && ~ $1 -*) {
	switch ($1) {
	case -a;  shift; OPTIONS=$OPTIONS' /axescount $1 def'
	case -a*; OPTIONS=$OPTIONS' /axescount '`{echo $1 | sed s/-a//}' def'

	case -b;  shift; OPTIONS=$OPTIONS' /radix '$1' def'
	case -b*; OPTIONS=$OPTIONS' /radix '`{echo $1 | sed s/-b//}' def'

	case -c;  shift; OPTIONS=$OPTIONS' /#copies '$1' store'
	case -c*; OPTIONS=$OPTIONS' /#copies '`{echo $1 | sed s/-c//}' store'

	case -f;  shift; OPTIONS=$OPTIONS' /labelfont /'$1' def'
	case -f*; OPTIONS=$OPTIONS' /labelfont /'`{echo $1 | sed s/-f//}' def'

	case -g;  shift; OPTIONS=$OPTIONS' /graynotdef '$1' def'
	case -g*; OPTIONS=$OPTIONS' /graynotdef '`{echo $1 | sed s/-g//}' def'

	case -p;  shift; MODE=$1
	case -p*; MODE=`{echo $1 | sed s/-p//}

	case -q;  OPTIONS=$OPTIONS' /longnames false def /charwidth false def'

	case -m;  shift; OPTIONS=$OPTIONS' /magnification '$1' def'
	case -m*; OPTIONS=$OPTIONS' /magnification '`{echo $1 | sed s/-m//}' def'

	case -v;  OPTIONS=$OPTIONS' /longnames true def /charwidth true def'

	case -w;  shift; OPTIONS=$OPTIONS' /linewidth '$1' def'
	case -w*; OPTIONS=$OPTIONS' /linewidth '`{echo $1 | sed s/-w//}' def'

	case -x;  shift; OPTIONS=$OPTIONS' /xoffset '$1' def'
	case -x*; OPTIONS=$OPTIONS' /xoffset '`{echo $1 | sed s/-x//}' def'

	case -y;  shift; OPTIONS=$OPTIONS' /yoffset '$1' def'
	case -y*; OPTIONS=$OPTIONS' /yoffset '`{echo $1 | sed s/-y//}' def'

	case -z;  shift; OPTIONS=$OPTIONS' /zerocell '$1' def'
	case -z*; OPTIONS=$OPTIONS' /zerocell '`{echo $1 | sed s/-z//}' def'

	case -C;  shift; COPYFILE=$COPYFILE' '$1
	case -C*; COPYFILE=$COPYFILE' '`{echo $1 | sed s/-C//}

	case -E;  shift; FONTENCODING=$1
	case -E*; FONTENCODING=`{echo $1 | sed s/-E//}

	case -L;  shift; PROLOGUE=$1
	case -L*; PROLOGUE=`{echo $1 | sed s/-L//}

	case -*;  echo $0:' illegal option '$1 >[1=2]; exit 1
	}
	shift
}

switch ($MODE) {
case l*; OPTIONS=$OPTIONS' /landscape true def'
case *;	OPTIONS=$OPTIONS' /landscape false def'
}

echo $NONCONFORMING
cat $PROLOGUE
echo $ENDPROLOG
echo $BEGINSETUP
if (~ $#COPYFILE 0 || ~ $COPYFILE '') COPYFILE=/dev/null
cat $COPYFILE
echo $OPTIONS

switch ($FONTENCODING) {
case /*; cat $FONTENCODING
case ?*; cat $POSTLIB^/$FONTENCODING^.enc >[2]/dev/null
}

echo $SETUP
echo $ENDSETUP

for (i) {
	switch ($i) {
	case all; echo AllFonts
	case /*;  echo $i' PrintFont'
	case ?*;  echo /$i' PrintFont'
	}
}

echo $TRAILER
