1#!/bin/sh 2 3# 4# Writes a PostScript program on standard output that builds a width 5# table or typesetter description file. The program uses PostScript's 6# print procedure, which means the table comes back on the printer's 7# serial port. Try hardcopy if you don't have access to the port. 8# 9 10POSTBIN=/usr/lbin/postscript 11POSTLIB=/usr/lib/postscript 12FONTDIR=/usr/lib/font 13 14PROLOGUE=$POSTLIB/trofftable.ps 15DPOSTPROLOGUE=$POSTLIB/dpost.ps 16 17COPYFILE= 18HOSTFONTDIR= 19DEVICE= 20LIBRARY= 21TEMPLATE= 22 23SLOWDOWN=25 24STARTCOMMENTS=256 25 26NONCONFORMING="%!PS" 27ENDPROLOG="%%EndProlog" 28BEGINSETUP="%%BeginSetup" 29ENDSETUP="%%EndSetup" 30TRAILER="%%Trailer" 31 32while [ -n "$1" ]; do 33 case $1 in 34 -C) shift; COPYFILE="$COPYFILE $1";; 35 -C*) COPYFILE="$COPYFILE `echo $1 | sed s/-C//`";; 36 37 -F) shift; FONTDIR=$1;; 38 -F*) FONTDIR=`echo $1 | sed s/-F//`;; 39 40 -H) shift; HOSTFONTDIR=$1;; 41 -H*) HOSTFONTDIR=`echo $1 | sed s/-H//`;; 42 43 -L) shift; PROLOGUE=$1;; 44 -L*) PROLOGUE=`echo $1 | sed s/-L//`;; 45 46 -S) shift; LIBRARY=$1;; 47 -S*) LIBRARY=`echo $1 | sed s/-S//`;; 48 49 -T) shift; DEVICE=$1;; 50 -T*) DEVICE=`echo $1 | sed s/-T//`;; 51 52 -c) shift; STARTCOMMENTS=$1;; 53 -c*) STARTCOMMENTS=`echo $1 | sed s/-c//`;; 54 55 -o) shift; OCTALESCAPES=$1;; # only for Latin1 tables 56 -o*) OCTALESCAPES=`echo $1 | sed s/-o//`;; 57 58 -s) shift; SLOWDOWN=$1;; 59 -s*) SLOWDOWN=`echo $1 | sed s/-s//`;; 60 61 -t) shift; TEMPLATE=$1;; 62 -t*) TEMPLATE=`echo $1 | sed s/-t//`;; 63 64 -*) echo "$0: illegal option $1" >&2; exit 1;; 65 66 *) break;; 67 esac 68 shift 69done 70 71if [ ! "$DEVICE" -a ! "$LIBRARY" ]; then 72 echo "$0: no device or shell library" >&2 73 exit 1 74fi 75 76if [ $# -ne 1 -a $# -ne 2 ]; then 77 echo "$0: bad argument count" >&2 78 exit 1 79fi 80 81if [ -d "$HOSTFONTDIR" -a -f "$HOSTFONTDIR/$1" ]; then 82 COPYFILE="$COPYFILE $HOSTFONTDIR/$1" 83fi 84 85# 86# Include the shell library and get the command used to build the table. 87# Make awk call a separate library function?? 88# 89 90. ${LIBRARY:-${FONTDIR}/dev${DEVICE}/shell.lib} 91 92if [ $# -eq 1 ] 93 then TEMPLATE=$1 94 else TEMPLATE=${TEMPLATE:-R} 95fi 96 97CMD=`BuiltinTables | awk '$2 == template"" { 98 if ( pname == "" ) 99 pname = $3 100 printf "%s %s %s", $1, tname, pname 101 exit 0 102}' template="$TEMPLATE" tname="$1" pname="$2"` 103 104if [ ! "$CMD" ]; then 105 echo "$0: $TEMPLATE not found" >&2 106 exit 1 107fi 108 109# 110# Build the PostScript font table program. 111# 112 113echo $NONCONFORMING 114cat $PROLOGUE 115echo "/DpostPrologue 100 dict dup begin" 116cat $DPOSTPROLOGUE 117echo "end def" 118echo $ENDPROLOG 119 120echo $BEGINSETUP 121cat ${COPYFILE:-/dev/null} 122echo "/slowdown $SLOWDOWN def" 123echo "/startcomments $STARTCOMMENTS def" 124echo $ENDSETUP 125 126$CMD 127 128echo $TRAILER 129 130