Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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
 
8
POSTLIB=/sys/lib/postscript/prologues
9
FONTDIR=/sys/lib/troff/font
10
 
11
PROLOGUE=$POSTLIB/trofftable.ps
12
DPOSTPROLOGUE=$POSTLIB/dpost.ps
13
 
14
COPYFILE=()
15
HOSTFONTDIR=()
16
DEVICE=()
17
LIBRARY=()
18
TEMPLATE=-R
19
 
20
SLOWDOWN=25
21
STARTCOMMENTS=256
22
 
23
NONCONFORMING='%!PS'
24
ENDPROLOG='%%EndProlog'
25
BEGINSETUP='%%BeginSetup'
26
ENDSETUP='%%EndSetup'
27
TRAILER='%%Trailer'
28
 
29
while (! ~ $#* 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
 
66
if (! ~ $#DEVICE 0  && ! ~ $#LIBRARY 0) {
67
    echo $0: no device or shell library >[1=2]
68
    exit 1
69
}
70
 
71
if (! ~ $#* 1 2) {
72
    echo $0: bad argument count >[1=2]
73
    exit 1
74
}
75
 
76
if (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
#
84
if (~ $#LIBRARY 0 || ~ $LIBRARY '') LIBRARY=$FONTDIR/dev$DEVICE/shell.lib
85
 
86
. $LIBRARY
87
 
88
if (~ $#* 1) TEMPLATE=$1
89
 
90
CMD=`{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
 
97
if (! $CMD) {
98
    echo $0: $TEMPLATE not found >[1=2]
99
    exit 1
100
}
101
 
102
#
103
# Build the PostScript font table program.
104
#
105
 
106
echo $NONCONFORMING
107
cat $PROLOGUE
108
echo /DpostPrologue 100 dict dup begin
109
cat $DPOSTPROLOGUE
110
echo end def
111
echo $ENDPROLOG
112
 
113
echo $BEGINSETUP
114
if (~ $COPYFILE '') COPYFILE=/dev/null
115
cat $COPYFILE
116
echo /slowdown $SLOWDOWN def
117
echo /startcomments $STARTCOMMENTS def
118
echo $ENDSETUP
119
 
120
$CMD
121
 
122
echo $TRAILER
123