127 lines · 2.6 KB · rc
RawDownload
#!/bin/rc# 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.# rfork e POSTLIB=/sys/lib/postscript/prologuesFONTDIR=/sys/lib/troff/font PROLOGUE=$POSTLIB/trofftable.psDPOSTPROLOGUE=$POSTLIB/dpost.ps COPYFILE=()HOSTFONTDIR=()DEVICE=()LIBRARY=()TEMPLATE=R SLOWDOWN=25STARTCOMMENTS=256 NONCONFORMING='%!PS'ENDPROLOG='%%EndProlog'BEGINSETUP='%%BeginSetup'ENDSETUP='%%EndSetup'TRAILER='%%Trailer' while (! ~ $#* 0 && ~ $1 -*) {	switch ($1) {	case -C;  shift; COPYFILE=($COPYFILE $1)	case -C*; COPYFILE=($COPYFILE `{echo $1 | sed s/-C//}) 	case -F;  shift; FONTDIR=$1	case -F*; FONTDIR=`{echo $1 | sed s/-F//} 	case -H;  shift; HOSTFONTDIR=$1	case -H*; HOSTFONTDIR=`{echo $1 | sed s/-H//} 	case -L;  shift; PROLOGUE=$1	case -L*; PROLOGUE=`{echo $1 | sed s/-L//} 	case -S;  shift; LIBRARY=$1	case -S*; LIBRARY=`{echo $1 | sed s/-S//} 	case -T;  shift; DEVICE=$1	case -T*; DEVICE=`{echo $1 | sed s/-T//} 	case -c;  shift; STARTCOMMENTS=$1	case -c*; STARTCOMMENTS=`{echo $1 | sed s/-c//} 	case -o;  shift; OCTALESCAPES=$1		# only for Latin1 tables	case -o*; OCTALESCAPES=`{echo $1 | sed s/-o//} 	case -s;  shift; SLOWDOWN=$1	case -s*; SLOWDOWN=`{echo $1 | sed s/-s//} 	case -t;  shift; TEMPLATE=$1	case -t*; TEMPLATE=`{echo $1 | sed s/-t//} 	case -*;  echo $0: illegal option $1 >[1=2]; exit 1	}	shift} if (~ $#DEVICE 0  && ~ $#LIBRARY 0) {    echo $0: no device or shell library >[1=2]    exit 1} if (! ~ $#* 1 2) {    echo $0: bad argument count >[1=2]    exit 1} if (! ~ $#HOSTFONTDIR 0 && test -d $HOSTFONTDIR -a -f $HOSTFONTDIR/$1) {    COPYFILE=($COPYFILE $HOSTFONTDIR/$1)} ## Include the shell library and get the command used to build the table.# Make awk call a separate library function??#if (~ $#LIBRARY 0) LIBRARY=$FONTDIR/dev$DEVICE/shell.lib . $LIBRARY if (~ $#* 1) TEMPLATE=$1 if (~ $#* 2) pname=$2if not pname='' CMD=`{BuiltinTables | awk '$2 == template"" {	if ( pname == "" )		pname = $3	printf "%s %s %s", $1, tname, pname	exit 0}' 'template='$TEMPLATE 'tname='$1 'pname='$pname} if (~ $#CMD 0) {    echo $0: $TEMPLATE not found >[1=2]    exit 1} ## Build the PostScript font table program.# echo $NONCONFORMINGcat $PROLOGUEecho /DpostPrologue 100 dict dup begincat $DPOSTPROLOGUEecho end defecho $ENDPROLOG echo $BEGINSETUPif (! ~ $#COPYFILE 0)	cat $COPYFILEecho /slowdown $SLOWDOWN defecho /startcomments $STARTCOMMENTS defecho $ENDSETUP $CMD echo $TRAILER