17dd7cddfSDavid du Colombier#!/bin/rc 27dd7cddfSDavid du Colombier# Writes a PostScript program on standard output that builds a width 37dd7cddfSDavid du Colombier# table or typesetter description file. The program uses PostScript's 47dd7cddfSDavid du Colombier# print procedure, which means the table comes back on the printer's 57dd7cddfSDavid du Colombier# serial port. Try hardcopy if you don't have access to the port. 67dd7cddfSDavid du Colombier# 77dd7cddfSDavid du Colombier 87dd7cddfSDavid du ColombierPOSTLIB=/sys/lib/postscript/prologues 97dd7cddfSDavid du ColombierFONTDIR=/sys/lib/troff/font 107dd7cddfSDavid du Colombier 117dd7cddfSDavid du ColombierPROLOGUE=$POSTLIB/trofftable.ps 127dd7cddfSDavid du ColombierDPOSTPROLOGUE=$POSTLIB/dpost.ps 137dd7cddfSDavid du Colombier 14*80ee5cbfSDavid du ColombierCOPYFILE=() 15*80ee5cbfSDavid du ColombierHOSTFONTDIR=() 16*80ee5cbfSDavid du ColombierDEVICE=() 17*80ee5cbfSDavid du ColombierLIBRARY=() 187dd7cddfSDavid du ColombierTEMPLATE=-R 197dd7cddfSDavid du Colombier 207dd7cddfSDavid du ColombierSLOWDOWN=25 217dd7cddfSDavid du ColombierSTARTCOMMENTS=256 227dd7cddfSDavid du Colombier 237dd7cddfSDavid du ColombierNONCONFORMING='%!PS' 247dd7cddfSDavid du ColombierENDPROLOG='%%EndProlog' 257dd7cddfSDavid du ColombierBEGINSETUP='%%BeginSetup' 267dd7cddfSDavid du ColombierENDSETUP='%%EndSetup' 277dd7cddfSDavid du ColombierTRAILER='%%Trailer' 287dd7cddfSDavid du Colombier 297dd7cddfSDavid du Colombierwhile (! ~ $#* 0 && ~ $1 -*) { 307dd7cddfSDavid du Colombier switch ($1) { 317dd7cddfSDavid du Colombier case -C; shift; COPYFILE=$COPYFILE' '$1 327dd7cddfSDavid du Colombier case -C*; COPYFILE=$COPYFILE' '`{echo $1 | sed s/-C//} 337dd7cddfSDavid du Colombier 347dd7cddfSDavid du Colombier case -F; shift; FONTDIR=$1 357dd7cddfSDavid du Colombier case -F*; FONTDIR=`{echo $1 | sed s/-F//} 367dd7cddfSDavid du Colombier 377dd7cddfSDavid du Colombier case -H; shift; HOSTFONTDIR=$1 387dd7cddfSDavid du Colombier case -H*; HOSTFONTDIR=`{echo $1 | sed s/-H//} 397dd7cddfSDavid du Colombier 407dd7cddfSDavid du Colombier case -L; shift; PROLOGUE=$1 417dd7cddfSDavid du Colombier case -L*; PROLOGUE=`{echo $1 | sed s/-L//} 427dd7cddfSDavid du Colombier 437dd7cddfSDavid du Colombier case -S; shift; LIBRARY=$1 447dd7cddfSDavid du Colombier case -S*; LIBRARY=`{echo $1 | sed s/-S//} 457dd7cddfSDavid du Colombier 467dd7cddfSDavid du Colombier case -T; shift; DEVICE=$1 477dd7cddfSDavid du Colombier case -T*; DEVICE=`{echo $1 | sed s/-T//} 487dd7cddfSDavid du Colombier 497dd7cddfSDavid du Colombier case -c; shift; STARTCOMMENTS=$1 507dd7cddfSDavid du Colombier case -c*; STARTCOMMENTS=`{echo $1 | sed s/-c//} 517dd7cddfSDavid du Colombier 527dd7cddfSDavid du Colombier case -o; shift; OCTALESCAPES=$1 # only for Latin1 tables 537dd7cddfSDavid du Colombier case -o*; OCTALESCAPES=`{echo $1 | sed s/-o//} 547dd7cddfSDavid du Colombier 557dd7cddfSDavid du Colombier case -s; shift; SLOWDOWN=$1 567dd7cddfSDavid du Colombier case -s*; SLOWDOWN=`{echo $1 | sed s/-s//} 577dd7cddfSDavid du Colombier 587dd7cddfSDavid du Colombier case -t; shift; TEMPLATE=$1 597dd7cddfSDavid du Colombier case -t*; TEMPLATE=`{echo $1 | sed s/-t//} 607dd7cddfSDavid du Colombier 617dd7cddfSDavid du Colombier case -*; echo $0: illegal option $1 >[1=2]; exit 1 627dd7cddfSDavid du Colombier } 637dd7cddfSDavid du Colombier shift 647dd7cddfSDavid du Colombier} 657dd7cddfSDavid du Colombier 667dd7cddfSDavid du Colombierif (! ~ $#DEVICE 0 && ! ~ $#LIBRARY 0) { 677dd7cddfSDavid du Colombier echo $0: no device or shell library >[1=2] 687dd7cddfSDavid du Colombier exit 1 697dd7cddfSDavid du Colombier} 707dd7cddfSDavid du Colombier 717dd7cddfSDavid du Colombierif (! ~ $#* 1 2) { 727dd7cddfSDavid du Colombier echo $0: bad argument count >[1=2] 737dd7cddfSDavid du Colombier exit 1 747dd7cddfSDavid du Colombier} 757dd7cddfSDavid du Colombier 767dd7cddfSDavid du Colombierif (test -d $HOSTFONTDIR -a -f $HOSTFONTDIR/$1) { 777dd7cddfSDavid du Colombier COPYFILE=$COPYFILE' '$HOSTFONTDIR/$1 787dd7cddfSDavid du Colombier} 797dd7cddfSDavid du Colombier 807dd7cddfSDavid du Colombier# 817dd7cddfSDavid du Colombier# Include the shell library and get the command used to build the table. 827dd7cddfSDavid du Colombier# Make awk call a separate library function?? 837dd7cddfSDavid du Colombier# 847dd7cddfSDavid du Colombierif (~ $#LIBRARY 0 || ~ $LIBRARY '') LIBRARY=$FONTDIR/dev$DEVICE/shell.lib 857dd7cddfSDavid du Colombier 867dd7cddfSDavid du Colombier. $LIBRARY 877dd7cddfSDavid du Colombier 887dd7cddfSDavid du Colombierif (~ $#* 1) TEMPLATE=$1 897dd7cddfSDavid du Colombier 907dd7cddfSDavid du ColombierCMD=`{BuiltinTables | awk '$2 == template"" { 917dd7cddfSDavid du Colombier if ( pname == "" ) 927dd7cddfSDavid du Colombier pname = $3 937dd7cddfSDavid du Colombier printf "%s %s %s", $1, tname, pname 947dd7cddfSDavid du Colombier exit 0 957dd7cddfSDavid du Colombier}' template=$TEMPLATE tname=$1 pname=$2} 967dd7cddfSDavid du Colombier 977dd7cddfSDavid du Colombierif (! $CMD) { 987dd7cddfSDavid du Colombier echo $0: $TEMPLATE not found >[1=2] 997dd7cddfSDavid du Colombier exit 1 1007dd7cddfSDavid du Colombier} 1017dd7cddfSDavid du Colombier 1027dd7cddfSDavid du Colombier# 1037dd7cddfSDavid du Colombier# Build the PostScript font table program. 1047dd7cddfSDavid du Colombier# 1057dd7cddfSDavid du Colombier 1067dd7cddfSDavid du Colombierecho $NONCONFORMING 1077dd7cddfSDavid du Colombiercat $PROLOGUE 1087dd7cddfSDavid du Colombierecho /DpostPrologue 100 dict dup begin 1097dd7cddfSDavid du Colombiercat $DPOSTPROLOGUE 1107dd7cddfSDavid du Colombierecho end def 1117dd7cddfSDavid du Colombierecho $ENDPROLOG 1127dd7cddfSDavid du Colombier 1137dd7cddfSDavid du Colombierecho $BEGINSETUP 1147dd7cddfSDavid du Colombierif (~ $COPYFILE '') COPYFILE=/dev/null 1157dd7cddfSDavid du Colombiercat $COPYFILE 1167dd7cddfSDavid du Colombierecho /slowdown $SLOWDOWN def 1177dd7cddfSDavid du Colombierecho /startcomments $STARTCOMMENTS def 1187dd7cddfSDavid du Colombierecho $ENDSETUP 1197dd7cddfSDavid du Colombier 1207dd7cddfSDavid du Colombier$CMD 1217dd7cddfSDavid du Colombier 1227dd7cddfSDavid du Colombierecho $TRAILER 1237dd7cddfSDavid du Colombier 124