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