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