xref: /plan9-contrib/sys/src/cmd/postscript/trofftable/trofftable.rc (revision 80ee5cbfe36716af62da8896207e9763b8e3d760)
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