#!/bin/sh
#
# Writes a PostScript program on standard output that builds a width
# table or typesetter description file. The program uses PostScript's
# print procedure, which means the table comes back on the printer's
# serial port. Try hardcopy if you don't have access to the port.
#
POSTBIN=/usr/lbin/postscript
POSTLIB=/usr/lib/postscript
FONTDIR=/usr/lib/font
PROLOGUE=$POSTLIB/trofftable.ps
DPOSTPROLOGUE=$POSTLIB/dpost.ps
COPYFILE=
HOSTFONTDIR=
DEVICE=
LIBRARY=
TEMPLATE=
SLOWDOWN=25
STARTCOMMENTS=256
NONCONFORMING="%!PS"
ENDPROLOG="%%EndProlog"
BEGINSETUP="%%BeginSetup"
ENDSETUP="%%EndSetup"
TRAILER="%%Trailer"
while [ -n "$1" ]; do
case $1 in
-C) shift; COPYFILE="$COPYFILE $1";;
-C*) COPYFILE="$COPYFILE `echo $1 | sed s/-C//`";;
-F) shift; FONTDIR=$1;;
-F*) FONTDIR=`echo $1 | sed s/-F//`;;
-H) shift; HOSTFONTDIR=$1;;
-H*) HOSTFONTDIR=`echo $1 | sed s/-H//`;;
-L) shift; PROLOGUE=$1;;
-L*) PROLOGUE=`echo $1 | sed s/-L//`;;
-S) shift; LIBRARY=$1;;
-S*) LIBRARY=`echo $1 | sed s/-S//`;;
-T) shift; DEVICE=$1;;
-T*) DEVICE=`echo $1 | sed s/-T//`;;
-c) shift; STARTCOMMENTS=$1;;
-c*) STARTCOMMENTS=`echo $1 | sed s/-c//`;;
-o) shift; OCTALESCAPES=$1;; # only for Latin1 tables
-o*) OCTALESCAPES=`echo $1 | sed s/-o//`;;
-s) shift; SLOWDOWN=$1;;
-s*) SLOWDOWN=`echo $1 | sed s/-s//`;;
-t) shift; TEMPLATE=$1;;
-t*) TEMPLATE=`echo $1 | sed s/-t//`;;
-*) echo "$0: illegal option $1" >&2; exit 1;;
*) break;;
esac
shift
done
if [ ! "$DEVICE" -a ! "$LIBRARY" ]; then
echo "$0: no device or shell library" >&2
exit 1
fi
if [ $# -ne 1 -a $# -ne 2 ]; then
echo "$0: bad argument count" >&2
exit 1
fi
if [ -d "$HOSTFONTDIR" -a -f "$HOSTFONTDIR/$1" ]; then
COPYFILE="$COPYFILE $HOSTFONTDIR/$1"
fi
#
# Include the shell library and get the command used to build the table.
# Make awk call a separate library function??
#
. ${LIBRARY:-${FONTDIR}/dev${DEVICE}/shell.lib}
if [ $# -eq 1 ]
then TEMPLATE=$1
else TEMPLATE=${TEMPLATE:-R}
fi
CMD=`BuiltinTables | awk '$2 == template"" {
if ( pname == "" )
pname = $3
printf "%s %s %s", $1, tname, pname
exit 0
}' template="$TEMPLATE" tname="$1" pname="$2"`
if [ ! "$CMD" ]; then
echo "$0: $TEMPLATE not found" >&2
exit 1
fi
#
# Build the PostScript font table program.
#
echo $NONCONFORMING
cat $PROLOGUE
echo "/DpostPrologue 100 dict dup begin"
cat $DPOSTPROLOGUE
echo "end def"
echo $ENDPROLOG
echo $BEGINSETUP
cat ${COPYFILE:-/dev/null}
echo "/slowdown $SLOWDOWN def"
echo "/startcomments $STARTCOMMENTS def"
echo $ENDSETUP
$CMD
echo $TRAILER
|