[comp.sources.unix] v12i062: A PostScript interpreter, Part13/18

rsalz@uunet.UU.NET (Rich Salz) (11/09/87)

Submitted-by: Crispin Goswell <caag@vd.rl.ac.uk>
Posting-number: Volume 12, Issue 62
Archive-name: postscript/part13

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 13 (of 18)."
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'postscript/fonts/SANS/italic.r' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'postscript/fonts/SANS/italic.r'\"
else
echo shar: Extracting \"'postscript/fonts/SANS/italic.r'\" \(15498 characters\)
sed "s/^X//" >'postscript/fonts/SANS/italic.r' <<'END_OF_FILE'
XCharStrings
X/zero
X<CC34
X4935
X4737
X453A
X443D
X4341
X4344
X4447
X4548
X4749
X4949
X4C48
X4E46
X5043
X5140
X523C
X5239
X5136
X5035
X4E34
X4C34
XCC34
X4A35
X4837
X463A
X453D
X4441
X4444
X4547
X4749
XC949
X4B48
X4D46
X4F43
X5040
X513C
X5139
X5036
X4E34
X>
Xput
XMetrics
X/zero
X[2
X21]
Xput
XCharStrings
X/one
X<CC38
X4749
XCE34
X4849
XCE34
X4B37
X4839
X463A
XCD37
X4939
X463A
X>
Xput
XMetrics
X/one
X[2
X21]
Xput
XCharStrings
X/two
X<C738
X4839
X473A
X4639
X4638
X4736
X4835
X4B34
X4E34
X5135
X5237
X5239
X513B
X4F3D
X4C3F
X4841
X4543
X4345
X4149
XCE34
X5035
X5137
X5139
X503B
X4E3D
X4841
XC247
X4346
X4546
X4A48
X4D48
X4F47
X5045
XC546
X4A49
X4D49
X4F48
X5045
X>
Xput
XMetrics
X/two
X[2
X21]
Xput
XCharStrings
X/three
X<C738
X4839
X473A
X4639
X4638
X4736
X4835
X4B34
X4E34
X5135
X5237
X5239
X513B
X4E3D
X4B3E
XCE34
X5035
X5137
X5139
X503B
X4E3D
XC93E
X4B3E
X4E3F
X4F40
X5042
X5045
X4F47
X4E48
X4B49
X4749
X4448
X4347
X4245
X4244
X4343
X4444
X4345
XCB3E
X4D3F
X4E40
X4F42
X4F45
X4E47
X4D48
X4B49
X>
Xput
XMetrics
X/three
X[2
X21]
Xput
XCharStrings
X/four
X<D035
X4A49
XD134
X4B49
XD134
X4243
X5243
X>
Xput
XMetrics
X/four
X[2
X21]
Xput
XCharStrings
X/five
X<C934
X443E
XC934
X5334
XC935
X4E35
X5334
XC43E
X453D
X483C
X4B3C
X4E3D
X4F3E
X5040
X5043
X4F46
X4D48
X4A49
X4749
X4448
X4347
X4245
X4244
X4343
X4444
X4345
XCB3C
X4D3D
X4E3E
X4F40
X4F43
X4E46
X4C48
X4A49
X>
Xput
XMetrics
X/five
X[2
X21]
Xput
XCharStrings
X/six
X<D137
X5038
X5139
X5238
X5237
X5135
X4F34
X4C34
X4935
X4737
X453A
X443D
X4341
X4345
X4447
X4548
X4749
X4A49
X4D48
X4F46
X5044
X5041
X4F3F
X4E3E
X4C3D
X493D
X473E
X4540
X4442
XCC34
X4A35
X4837
X463A
X453D
X4441
X4446
X4548
XCA49
X4C48
X4E46
X4F44
X4F40
X4E3E
X>
Xput
XMetrics
X/six
X[2
X21]
Xput
XCharStrings
X/seven
X<C634
X443A
XD334
X5237
X503A
X4B40
X4943
X4845
X4749
XD03A
X4A40
X4843
X4745
X4649
XC537
X4834
X4A34
X4F37
XC636
X4835
X4A35
X4F37
X5137
X5236
X5334
X>
Xput
XMetrics
X/seven
X[2
X21]
Xput
XCharStrings
X/eight
X<CB34
X4835
X4736
X4638
X463B
X473D
X493E
X4C3E
X503D
X513C
X523A
X5237
X5135
X4E34
X4B34
XCB34
X4935
X4836
X4738
X473B
X483D
X493E
XCC3E
X4F3D
X503C
X513A
X5137
X5035
X4E34
XC93E
X453F
X4341
X4243
X4246
X4348
X4649
X4A49
X4E48
X4F47
X5045
X5042
X4F40
X4E3F
X4C3E
XC93E
X463F
X4441
X4343
X4346
X4448
X4649
XCA49
X4D48
X4E47
X4F45
X4F41
X4E3F
X>
Xput
XMetrics
X/eight
X[2
X21]
Xput
XCharStrings
X/nine
X<D13B
X503D
X4E3F
X4C40
X4940
X473F
X463E
X453C
X4539
X4637
X4835
X4B34
X4E34
X5035
X5136
X5238
X523C
X5140
X5043
X4E46
X4C48
X4949
X4649
X4448
X4346
X4345
X4444
X4545
X4446
XC73F
X463D
X4639
X4737
X4935
X4B34
XD035
X5137
X513C
X5040
X4F43
X4D46
X4B48
X4949
X>
Xput
XMetrics
X/nine
X[2
X21]
Xput
XCharStrings
X/period
X<C347
X4248
X4349
X4448
X4347
X>
Xput
XMetrics
X/period
X[-2
X11]
Xput
XCharStrings
X/comma
X<C349
X4248
X4347
X4448
X4449
X434B
X414D
X>
Xput
XMetrics
X/comma
X[-1
X11]
Xput
XCharStrings
X/colon
X<C63B
X453C
X463D
X473C
X463B
XC347
X4248
X4349
X4448
X>
Xput
XMetrics
X/colon
X[0
X11]
Xput
XCharStrings
X/semicolon
X<C63B
X453C
X463D
X473C
X463B
XC349
X4248
X4347
X4448
X4449
X434B
X414D
X>
Xput
XMetrics
X/semicolon
X[0
X11]
Xput
XCharStrings
X/exclam
X<C834
X4735
X4541
XC835
X4541
XC834
X4935
X4541
XC347
X4248
X4349
X4448
X4347
X>
Xput
XMetrics
X/exclam
X[7
X11]
Xput
XCharStrings
X/question
X<C738
X4839
X473A
X4639
X4638
X4736
X4835
X4B34
X4F34
X5235
X5337
X5339
X523B
X513C
X4B3E
X493F
X4941
X4A42
X4C42
XCF34
X5135
X5237
X5239
X513B
X503C
X4E3D
XC847
X4748
X4849
X4948
X4847
X>
Xput
XMetrics
X/question
X[2
X21]
Xput
XCharStrings
X/quoteleft
X<C934
X4736
X4638
X4639
X473A
X4839
X4738
X>
Xput
XMetrics
X/quoteleft
X[7
X11]
Xput
XCharStrings
X/quoteright
X<C836
X4735
X4834
X4935
X4936
X4838
X463A
X>
Xput
XMetrics
X/quoteright
X[7
X11]
Xput
XCharStrings
X/ampersand
X<D73C
X563D
X573E
X583D
X583C
X573B
X563B
X543C
X523E
X4D46
X4B48
X4949
X4649
X4348
X4246
X4244
X4342
X4441
X4640
X4B3E
X4D3D
X4F3B
X5039
X5037
X4F35
X4D34
X4B35
X4A37
X4A3A
X4B40
X4C43
X4E46
X5048
X5249
X5449
X5547
X5546
XC649
X4448
X4346
X4344
X4442
X4541
X4B3E
XCA3A
X4B3F
X4C42
X4E45
X5047
X5248
X5448
X5547
X>
Xput
XMetrics
X/ampersand
X[-1
X26]
Xput
XCharStrings
X/dollar
X<CC30
X444D
XD130
X494D
XD238
X5139
X523A
X5339
X5338
X5236
X5135
X4E34
X4A34
X4735
X4537
X4539
X463B
X473C
X4E40
X5042
XC539
X473B
X4E3F
X4F40
X5042
X5045
X4F47
X4E48
X4B49
X4749
X4448
X4347
X4245
X4244
X4343
X4444
X4345
X>
Xput
XMetrics
X/dollar
X[6
X21]
Xput
XCharStrings
X/slash
X<D830
X3E50
X>
Xput
XMetrics
X/slash
X[5
X22]
Xput
XCharStrings
X/parenleft
X<CF30
X4B33
X4836
X4639
X443D
X4342
X4346
X444B
X454E
X4650
XCB33
X4837
X463B
X453E
X4443
X4448
X454D
X4650
X>
Xput
XMetrics
X/parenleft
X[9
X15]
Xput
XCharStrings
X/parenright
X<C930
X4A32
X4B35
X4C3A
X4C3E
X4B43
X4947
X474A
X444D
X4050
XC930
X4A33
X4B38
X4B3D
X4A42
X4945
X4749
X444D
X>
Xput
XMetrics
X/parenright
X[8
X15]
Xput
XCharStrings
X/asterisk
X<CA34
X4A40
XC537
X4F3D
XCF37
X453D
X>
Xput
XMetrics
X/asterisk
X[4
X17]
Xput
XCharStrings
X/minus
X<C440
X5640
X>
Xput
XMetrics
X/minus
X[-4
X26]
Xput
XCharStrings
X/plus
X<CD37
X4D49
XC440
X5640
X>
Xput
XMetrics
X/plus
X[-4
X26]
Xput
XCharStrings
X/equal
X<C43D
X563D
XC443
X5643
X>
Xput
XMetrics
X/equal
X[-4
X26]
Xput
XCharStrings
X/quotesingle
X<C734
X453B
XC834
X453B
X>
Xput
XMetrics
X/quotesingle
X[8
X9]
Xput
XCharStrings
X/quotedbl
X<C734
X453B
XC834
X453B
XD034
X4E3B
XD134
X4E3B
X>
Xput
XMetrics
X/quotedbl
X[3
X18]
Xput
XCharStrings
X/ring
X<C834
X4635
X4537
X4539
X463B
X483C
X4A3C
X4C3B
X4D39
X4D37
X4C35
X4A34
X4834
X>
Xput
XMetrics
X/ring
X[5
X15]
Xput
XCharStrings
X/A<D334
X5136
X4F39
X4C3E
X4A41
X4745
X4448
X4249
X4049
X3F48
X3F46
X4045
X4146
X4047
XD334
X5238
X5042
X4F49
XD334
X5049
XCF49
X4F47
X4E44
X4D42
X4B40
X493F
X473F
X4640
X4642
X4745
X4A48
X4D49
X5149
X5348
X>
Xput
XMetrics
X/A[1
X23]
Xput
XCharStrings
X/B<CF35
X4E36
X4D38
X4B3D
X4943
X4845
X4648
X4449
XCE36
X4D39
X4B41
X4A44
X4946
X4748
X4449
X4249
X4148
X4146
X4245
X4346
X4247
XC93A
X483C
X473D
X453D
X443C
X443A
X4538
X4736
X4935
X4C34
X5234
X5435
X5537
X5539
X543B
X523C
X4E3D
X4C3D
XD234
X5335
X5437
X5439
X533B
X523C
XCE3D
X513E
X523F
X5341
X5344
X5247
X5148
X4F49
X4D49
X4C48
X4C46
X4D43
XCE3D
X503E
X513F
X5241
X5244
X5147
X4F49
X>
Xput
XMetrics
X/B[0
X24]
Xput
XCharStrings
X/C<C336
X4238
X423A
X433C
X463D
X493D
X4D3C
X4F3B
X5139
X5237
X5235
X5134
X4F34
X4C35
X4938
X473B
X453F
X4443
X4446
X4548
X4849
X4A49
X4D48
X4F46
X5044
X5042
X4F40
X4D40
X4B41
X4A43
XCF34
X4D35
X4A38
X483B
X463F
X4543
X4546
X4648
X4849
X>
Xput
XMetrics
X/C[2
X21]
Xput
XCharStrings
X/D<CF35
X4E36
X4D38
X4B3D
X4943
X4845
X4648
X4449
XCE36
X4D39
X4B41
X4A44
X4946
X4748
X4449
X4249
X4148
X4146
X4245
X4445
X4646
X4848
X4A49
X4D49
X4F48
X5146
X5342
X543D
X543A
X5337
X5135
X4F34
X4A34
X4735
X4537
X4439
X443B
X453C
X473C
X483B
X4939
X>
Xput
XMetrics
X/D[0
X23]
Xput
XCharStrings
X/E<CE37
X4D38
X4D3A
X4E3B
X503B
X5139
X5137
X5035
X4E34
X4B34
X4935
X4836
X4738
X473A
X483C
X4A3D
XCB34
X4936
X4838
X483B
X4A3D
XCA3D
X483D
X453E
X4340
X4242
X4245
X4347
X4448
X4649
X4949
X4C48
X4E46
X4F44
X4F42
X4E40
X4C40
X4A41
X4943
XC83D
X463E
X4440
X4342
X4346
X4448
X>
Xput
XMetrics
X/E[3
X19]
Xput
XCharStrings
X/F<D036
X4F38
X4D3D
X4B43
X4A45
X4848
X4649
XCA3A
X493C
X473D
X453D
X443B
X4439
X4537
X4735
X4A34
X5434
X5135
X5036
X4F39
X4D41
X4C44
X4B46
X4948
X4649
X4449
X4248
X4147
X4146
X4245
X4346
X4247
XCC34
X5035
X5135
XC841
X4940
X4B3F
X4F3F
X513E
X533B
X5142
X>
Xput
XMetrics
X/F[1
X21]
Xput
XCharStrings
X/G<C337
X4239
X423B
X433D
X453E
X483E
X4B3D
X4D3C
X5039
X5136
X5135
X5034
X4F34
X4D35
X4B37
X4A39
X493C
X493F
X4A41
X4C42
X4E42
X5041
X523F
X533D
XD034
X4E35
X4C37
X4B39
X4A3C
X4A40
X4C42
XD33D
X5241
X5045
X4E47
X4C48
X4849
X4549
X4348
X4246
X4245
X4344
X4445
X4346
XD241
X5044
X4E46
X4B48
X4849
X>
Xput
XMetrics
X/G[1
X22]
Xput
XCharStrings
X/H<C63A
X4539
X4537
X4635
X4934
X4C34
X493F
X4745
X4647
X4548
X4349
X4149
X4048
X4046
X4145
X4246
X4147
XCC34
X493D
X4840
X4645
X4547
X4349
XC442
X4541
X4740
X503D
X523C
X553A
X5738
X5836
X5835
X5734
X5634
X5435
X5238
X513A
X4F40
X4E44
X4E47
X5049
X5149
X5348
X5546
XD634
X5436
X523A
X5040
X4F44
X4F47
X5049
X>
Xput
XMetrics
X/H[0
X24]
Xput
XCharStrings
X/I<CE36
X4C39
X4A3E
X4843
X4745
X4548
X4349
XD03A
X4E3C
X4B3D
X483D
X463C
X453A
X4538
X4636
X4835
X4C34
X5034
X4E36
X4D38
X4B3E
X4944
X4846
X4648
X4349
X4149
X4048
X4046
X4145
X4246
X4147
X>
Xput
XMetrics
X/I[3
X16]
Xput
XCharStrings
X/J<D034
X4E36
X4C39
X4A3E
X4747
X454B
XD03B
X4E3D
X4B3E
X483E
X463D
X453B
X4539
X4637
X4835
X4C34
X5034
X4E37
X4D39
X4A42
X4846
X4748
X454B
X444C
X424D
X414C
X414A
X4248
X4446
X4645
X4944
X4D43
X>
Xput
XMetrics
X/J[3
X17]
Xput
XCharStrings
X/K<C63A
X4539
X4537
X4735
X4A34
X4C34
X493F
X4745
X4647
X4548
X4349
X4149
X4048
X4046
X4145
X4246
X4147
XCC34
X493D
X4840
X4645
X4547
X4349
XD435
X5139
X4F3B
X4D3C
X4A3D
XD735
X5636
X5737
X5836
X5835
X5734
X5634
X5435
X513A
X503B
X4E3C
X4A3D
XCA3D
X4D3E
X4E40
X4F47
X5049
XCA3D
X4C3E
X4D40
X4E47
X5049
X5149
X5348
X5546
X>
Xput
XMetrics
X/K[0
X24]
Xput
XCharStrings
X/L<C437
X4339
X433B
X443D
X463E
X493E
X4C3D
X4E3C
X5139
X5236
X5235
X5134
X5034
X4E35
X4D36
X4B39
X4743
X4645
X4448
X4249
XCD36
X4B3A
X4941
X4844
X4746
X4548
X4249
X4049
X3F48
X3F46
X4045
X4245
X4446
X4748
X4949
X4C49
X4E48
X5046
X>
Xput
XMetrics
X/L[3
X18]
Xput
XCharStrings
X/M<CE34
X4A3D
X4743
X4546
X4348
X4149
X3F49
X3E48
X3E46
X3F45
X4046
X3F47
XCE34
X4C3B
X4B3F
X4A44
X4A48
X4C49
XCE34
X4D38
X4C3D
X4B44
X4B48
X4C49
XD734
X533D
X4E46
X4C49
XD734
X553B
X543F
X5344
X5348
X5549
X5649
X5848
X5A46
XD734
X5638
X553D
X5444
X5448
X5549
X>
Xput
XMetrics
X/M[2
X28]
Xput
XCharStrings
X/N<CB34
X4A38
X483E
X4643
X4545
X4348
X4149
X3F49
X3E48
X3E46
X3F45
X4046
X3F47
XCB34
X4B39
X4C44
X4D49
XCB34
X4C39
X4D44
X4D49
XD935
X5836
X5937
X5A36
X5A35
X5934
X5734
X5535
X5338
X523A
X503F
X4E45
X4D49
X>
Xput
XMetrics
X/N[2
X23]
Xput
XCharStrings
X/O<CB34
X4935
X4737
X453A
X443C
X4340
X4344
X4447
X4548
X4749
X4949
X4C48
X4E46
X5043
X5141
X523D
X5239
X5136
X5035
X4F35
X4D36
X4B38
X493C
X4841
X4844
XC935
X4738
X453C
X4440
X4444
X4547
X4749
X>
Xput
XMetrics
X/O[2
X21]
Xput
XCharStrings
X/P<CF35
X4E36
X4D38
X4B3D
X4943
X4845
X4648
X4449
XCE36
X4D39
X4B41
X4A44
X4946
X4748
X4449
X4249
X4148
X4146
X4245
X4346
X4247
XC93A
X483C
X473D
X453D
X443C
X443A
X4538
X4736
X4935
X4C34
X5034
X5335
X5436
X5538
X553B
X543D
X533E
X503F
X4E3F
X4C3E
XD034
X5235
X5336
X5438
X543B
X533D
X523E
X503F
X>
Xput
XMetrics
X/P[0
X23]
Xput
XCharStrings
X/Q<CD38
X4D3A
X4C3C
X4B3D
X493E
X473E
X463C
X463A
X4737
X4935
X4C34
X4F34
X5135
X5237
X523B
X513E
X4F41
X4B45
X4847
X4648
X4349
X4149
X4048
X4046
X4145
X4345
X4546
X4848
X4B49
X4E49
X5048
X5246
XCF34
X5035
X5137
X513B
X503E
X4E41
X4B44
X4747
X4349
X>
Xput
XMetrics
X/Q[2
X21]
Xput
XCharStrings
X/R<CF35
X4E36
X4D38
X4B3D
X4943
X4845
X4648
X4449
XCE36
X4D39
X4B41
X4A44
X4946
X4748
X4449
X4249
X4148
X4146
X4245
X4346
X4247
XC93A
X483C
X473D
X453D
X443C
X443A
X4538
X4736
X4935
X4C34
X5134
X5435
X5537
X5539
X543B
X533C
X503D
X4C3D
XD134
X5335
X5437
X5439
X533B
X523C
X503D
XCC3D
X4F3E
X5040
X5147
X5249
XCC3D
X4E3E
X4F40
X5047
X5249
X5349
X5548
X5746
X>
Xput
XMetrics
X/R[0
X24]
Xput
XCharStrings
X/S<C637
X4539
X453B
X463D
X483E
X4B3E
X4E3D
X503C
X5339
X5436
X5435
X5334
X5234
X5035
X4F36
X4E38
X4D3B
X4B42
X4A45
X4848
X4649
XCE38
X4D3C
X4C43
X4B46
X4948
X4649
X4349
X4148
X4046
X4045
X4144
X4245
X4146
X>
Xput
XMetrics
X/S[2
X20]
Xput
XCharStrings
X/T<D036
X4F38
X4D3D
X4B43
X4A45
X4848
X4649
XCA3A
X493C
X473D
X453D
X443B
X4439
X4537
X4735
X4A34
X5334
X5135
X5036
X4F39
X4D41
X4C44
X4B46
X4948
X4649
X4449
X4248
X4147
X4146
X4245
X4346
X4247
XCC34
X5035
X5135
X>
Xput
XMetrics
X/T[3
X18]
Xput
XCharStrings
X/U<C138
X4335
X4534
X4634
X4836
X4839
X473C
X4444
X4447
X4549
XC634
X4736
X4739
X4441
X4344
X4347
X4549
X4749
X4948
X4C45
X4E42
X4F40
XD334
X4F40
X4E44
X4E47
X5049
X5149
X5348
X5546
XD434
X5040
X4F44
X4F47
X5049
X>
Xput
XMetrics
X/U[1
X22]
Xput
XCharStrings
X/V<C138
X4335
X4534
X4634
X4836
X4839
X473D
X4544
X4547
X4649
XC634
X4736
X4739
X4540
X4444
X4447
X4649
X4749
X4A48
X4D45
X4F42
X513E
X523B
X5337
X5335
X5234
X5134
X5035
X4F37
X4F3A
X503C
X523E
X543F
X563F
X>
Xput
XMetrics
X/V[1
X21]
Xput
XCharStrings
X/W<C33A
X423A
X4139
X4137
X4235
X4434
X4834
X4736
X463A
X4543
X4449
XC63A
X4643
X4549
XD034
X4E36
X4C3A
X4943
X4747
X4549
XD034
X4F36
X4E3A
X4D43
X4C49
XCE3A
X4E43
X4D49
XDA34
X5835
X5637
X543A
X5143
X4F47
X4D49
X>
Xput
XMetrics
X/W[0
X23]
Xput
XCharStrings
X/X<C839
X473A
X453A
X4439
X4437
X4535
X4734
X4934
X4B35
X4C37
X4C3A
X4B3E
X4943
X4746
X4548
X4249
X4049
X3F48
X3F46
X4045
X4146
X4047
XC934
X4A35
X4B37
X4B3A
X4A3E
X4843
X4646
X4448
X4249
XD535
X5436
X5537
X5636
X5635
X5534
X5334
X5135
X4F37
X4D3A
X4B3E
X4A43
X4A46
X4B48
X4C49
X4D49
X4F48
X5146
X>
Xput
XMetrics
X/X[2
X20]
Xput
XCharStrings
X/Y<C338
X4535
X4734
X4834
X4A35
X4A37
X483D
X4840
X4942
XC834
X4935
X4937
X473D
X4740
X4942
X4B42
X4E41
X503F
X523C
X533A
XD534
X533A
X5042
X4E46
XD634
X543A
X523F
X5043
X4E46
X4C48
X4949
X4549
X4348
X4246
X4245
X4344
X4445
X4346
X>
Xput
XMetrics
X/Y[1
X22]
Xput
XCharStrings
X/Z<D336
X5238
X503D
X4F40
X4E42
X4C45
X4A47
X4848
X4549
XCC3A
X4B3C
X493D
X473D
X463B
X4639
X4737
X4935
X4C34
X5634
X5435
X5336
X5239
X513D
X4F43
X4D46
X4A48
X4549
X4149
X4048
X4046
X4145
X4345
X4546
X4848
X4A49
X4D49
X5048
X5246
XCF34
X5335
X5435
X>
Xput
XMetrics
X/Z[1
X21]
Xput
XCharStrings
X/a<CA43
X4941
X4740
X4540
X4341
X4242
X4144
X4146
X4248
X4449
X4649
X4848
X4946
XC540
X4342
X4244
X4247
X4449
XCB40
X4946
X4948
X4B49
X4D48
X4E47
X5044
XCC40
X4A46
X4A48
X4B49
X>
Xput
XMetrics
X/a[-1
X16]
Xput
XCharStrings
X/b<C044
X4241
X443D
XC734
X4146
X4148
X4349
X4449
X4648
X4846
X4943
X4940
X4A44
X4B45
X4C45
X4E44
XC834
X4246
X4248
X4349
X>
Xput
XMetrics
X/b[6
X14]
Xput
XCharStrings
X/c<C841
X4742
X4842
X4841
X4740
X4540
X4341
X4242
X4144
X4146
X4248
X4449
X4749
X4A47
X4C44
XC540
X4342
X4244
X4247
X4449
X>
Xput
XMetrics
X/c[-1
X12]
Xput
XCharStrings
X/d<CA43
X4941
X4740
X4540
X4341
X4242
X4144
X4146
X4248
X4449
X4649
X4848
X4946
XC540
X4342
X4244
X4247
X4449
XCF34
X4946
X4948
X4B49
X4D48
X4E47
X5044
XD034
X4A46
X4A48
X4B49
X>
Xput
XMetrics
X/d[5
X16]
Xput
XCharStrings
X/e<C347
X4546
X4645
X4743
X4741
X4640
X4540
X4341
X4242
X4144
X4146
X4248
X4449
X4749
X4A47
X4C44
XC540
X4342
X4244
X4247
X4449
X>
Xput
XMetrics
X/e[-1
X12]
Xput
XCharStrings
X/f<C340
X463D
X483A
X4937
X4935
X4834
X4635
X4537
X3C52
X3C54
X3D55
X3F54
X4051
X4148
X4249
X4449
X4648
X4747
X4944
XC537
X443C
X4340
X4049
X3E4E
X3C52
X>
Xput
XMetrics
X/f[9
X9]
Xput
XCharStrings
X/g<CA43
X4941
X4740
X4540
X4341
X4242
X4144
X4146
X4248
X4449
X4649
X4848
X4946
XC540
X4342
X4244
X4247
X4449
XCB40
X4552
XCC40
X4949
X474E
X4552
X4454
X4255
X4154
X4152
X424F
X444D
X474B
X4B49
X4E47
X5044
X>
Xput
XMetrics
X/g[-1
X16]
Xput
XCharStrings
X/h<C044
X4241
X443D
XC734
X4049
XC834
X4149
XC343
X4541
X4740
X4840
X4A41
X4A43
X4946
X4948
X4A49
XC840
X4941
X4943
X4846
X4848
X4A49
X4C48
X4D47
X4F44
X>
Xput
XMetrics
X/h[6
X15]
Xput
XCharStrings
X/i<C53A
X443B
X453C
X463B
X453A
XC340
X4146
X4148
X4349
X4548
X4647
X4844
XC440
X4246
X4248
X4349
X>
Xput
XMetrics
X/i[2
X8]
Xput
XCharStrings
X/j<C53A
X443B
X453C
X463B
X453A
XC340
X3D52
XC440
X4149
X3F4E
X3D52
X3C54
X3A55
X3954
X3952
X3A4F
X3C4D
X3F4B
X4349
X4647
X4844
X>
Xput
XMetrics
X/j[7
X8]
Xput
XCharStrings
X/k<C044
X4241
X443D
XC734
X4049
XC834
X4149
XC940
X4941
X4A41
X4940
X4840
X4642
X4343
XC343
X4644
X4748
X4849
XC343
X4544
X4648
X4849
X4949
X4C47
X4E44
X>
Xput
XMetrics
X/k[6
X14]
Xput
XCharStrings
X/l<C044
X4241
X443D
XC734
X4146
X4148
X4349
X4548
X4647
X4844
XC834
X4246
X4248
X4349
X>
Xput
XMetrics
X/l[8
X8]
Xput
XCharStrings
X/m<C044
X4241
X4440
X4641
X4643
X4449
XC440
X4541
X4543
X4349
XC643
X4841
X4A40
X4B40
X4D41
X4D43
X4B49
XCB40
X4C41
X4C43
X4A49
XCD43
X4F41
X5140
X5240
X5441
X5443
X5346
X5348
X5449
XD240
X5341
X5343
X5246
X5248
X5449
X5648
X5747
X5944
X>
Xput
XMetrics
X/m[0
X25]
Xput
XCharStrings
X/n<C044
X4241
X4440
X4641
X4643
X4449
XC440
X4541
X4543
X4349
XC643
X4841
X4A40
X4B40
X4D41
X4D43
X4C46
X4C48
X4D49
XCB40
X4C41
X4C43
X4B46
X4B48
X4D49
X4F48
X5047
X5244
X>
Xput
XMetrics
X/n[0
X18]
Xput
XCharStrings
X/o<C740
X4540
X4341
X4242
X4144
X4146
X4248
X4449
X4649
X4848
X4947
X4A45
X4A43
X4941
X4740
X4641
X4643
X4745
X4946
X4B46
X4D45
X4E44
XC540
X4342
X4244
X4247
X4449
X>
Xput
XMetrics
X/o[-1
X14]
Xput
XCharStrings
X/p<C044
X4241
X443D
XC53A
X3C55
XC63A
X3D55
XC343
X4541
X4740
X4840
X4A41
X4A43
X4946
X4948
X4A49
XC840
X4941
X4943
X4846
X4848
X4A49
X4C48
X4D47
X4F44
X>
Xput
XMetrics
X/p[4
X15]
Xput
XCharStrings
X/q<CA43
X4941
X4740
X4540
X4341
X4242
X4144
X4146
X4248
X4449
X4649
X4848
XC540
X4342
X4244
X4247
X4449
XCB40
X4552
X4554
X4655
X4854
X4951
X4949
X4B49
X4E47
X5044
XCC40
X4949
X474E
X4552
X>
Xput
XMetrics
X/q[-1
X16]
Xput
XCharStrings
X/r<C044
X4241
X4440
X4641
X4643
X4449
XC440
X4541
X4543
X4349
XC643
X4841
X4A40
X4B40
X4A43
XCA40
X4A43
X4B45
X4C45
X4E44
X>
Xput
XMetrics
X/r[0
X14]
Xput
XCharStrings
X/s<C044
X4241
X433F
X4341
X4643
X4745
X4747
X4648
X4449
XC341
X4543
X4645
X4647
X4449
XC048
X4249
X4749
X4A47
X4C44
X>
Xput
XMetrics
X/s[0
X12]
Xput
XCharStrings
X/t<C044
X4241
X443D
XC734
X4146
X4148
X4349
X4548
X4647
X4844
XC834
X4246
X4248
X4349
XC23C
X483C
X>
Xput
XMetrics
X/t[8
X8]
Xput
XCharStrings
X/u<C340
X4146
X4148
X4349
X4449
X4648
X4846
X4A43
XC440
X4246
X4248
X4349
XCB40
X4946
X4948
X4B49
X4D48
X4E47
X5044
XCC40
X4A46
X4A48
X4B49
X>
Xput
XMetrics
X/u[-1
X16]
Xput
XCharStrings
X/v<C340
X4242
X4145
X4148
X4349
X4449
X4748
X4946
X4A43
X4A40
XC440
X4342
X4245
X4248
X4349
XCA40
X4B44
X4C45
X4D45
X4F44
X>
Xput
XMetrics
X/v[-1
X15]
Xput
XCharStrings
X/w<C440
X4242
X4145
X4148
X4349
X4449
X4648
X4846
XC540
X4342
X4245
X4248
X4349
XCA40
X4846
X4848
X4A49
X4B49
X4D48
X4F46
X5043
X5040
XCB40
X4946
X4948
X4A49
XD040
X5144
X5245
X5345
X5544
X>
Xput
XMetrics
X/w[-1
X21]
Xput
XCharStrings
X/x<C044
X4241
X4440
X4640
X4741
X4743
X4646
X4548
X4349
X4249
X4148
X4147
X4247
X4148
XCD41
X4C42
X4D42
X4D41
X4C40
X4B40
X4941
X4843
X4746
X4748
X4849
X4B49
X4E47
X5044
XC741
X4843
XC941
X4743
XC646
X4748
XC746
X4548
X>
Xput
XMetrics
X/x[0
X16]
Xput
XCharStrings
X/y<C340
X4146
X4148
X4349
X4449
X4648
X4846
X4A43
XC440
X4246
X4248
X4349
XCB40
X4552
XCC40
X4949
X474E
X4552
X4454
X4255
X4154
X4152
X424F
X444D
X474B
X4B49
X4E47
X5044
X>
Xput
XMetrics
X/y[-1
X16]
Xput
XCharStrings
X/z<C044
X4241
X4440
X4640
X4841
X4844
X4746
X4448
X4249
XC640
X4741
X4744
X4646
X4448
XC249
X444A
X454C
X454F
X4452
X4254
X4055
X3F54
X3F52
X404F
X434C
X464A
X4A47
X4D44
XC249
X434A
X444C
X444F
X4352
X4254
X>
Xput
XMetrics
X/z[1
X13]
Xput
END_OF_FILE
if test 15498 -ne `wc -c <'postscript/fonts/SANS/italic.r'`; then
    echo shar: \"'postscript/fonts/SANS/italic.r'\" unpacked with wrong size!
fi
# end of 'postscript/fonts/SANS/italic.r'
fi
if test -f 'postscript/fonts/SANS/roman.r' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'postscript/fonts/SANS/roman.r'\"
else
echo shar: Extracting \"'postscript/fonts/SANS/roman.r'\" \(16026 characters\)
sed "s/^X//" >'postscript/fonts/SANS/roman.r' <<'END_OF_FILE'
XCharStrings
X/A<CA34
X4249
XCA37
X4349
X4249
XCA37
X5149
X5249
XCA34
X5249
XC543
X4F43
XC444
X5044
X>
Xput
XMetrics
X/A[2
X20]
Xput
XCharStrings
X/B<C434
X4449
XC535
X4548
XC434
X4C34
X4F35
X5036
X5138
X513B
X503D
X4F3E
X4C3F
XC535
X4C35
X4F36
X5038
X503B
X4F3D
X4C3E
XC53E
X4C3E
X4F3F
X5040
X5142
X5145
X5047
X4F48
X4C49
X4449
XC53F
X4C3F
X4F40
X5042
X5045
X4F47
X4C48
X4548
X>
Xput
XMetrics
X/B[2
X20]
Xput
XCharStrings
X/C<D239
X5137
X4F35
X4D34
X4934
X4735
X4537
X4439
X433C
X4341
X4444
X4546
X4748
X4949
X4D49
X4F48
X5146
X5244
XD239
X5139
X5037
X4F36
X4D35
X4935
X4736
X4539
X443C
X4441
X4544
X4747
X4948
X4D48
X4F47
X5046
X5144
X5244
X>
Xput
XMetrics
X/C[2
X21]
Xput
XCharStrings
X/D<C434
X4449
XC535
X4548
XC434
X4B34
X4E35
X5037
X5139
X523C
X5241
X5144
X5046
X4E48
X4B49
X4449
XC535
X4B35
X4E36
X4F37
X5039
X513C
X5141
X5044
X4F46
X4E47
X4B48
X4548
X>
Xput
XMetrics
X/D[2
X21]
Xput
XCharStrings
X/E<C434
X4449
XC535
X4548
XC434
X5034
XC535
X5035
X5034
XC53E
X4B3E
X4B3F
XC53F
X4B3F
XC548
X5048
X5049
XC449
X5049
X>
Xput
XMetrics
X/E[3
X19]
Xput
XCharStrings
X/F<C434
X4449
XC535
X4549
X4449
XC434
X5034
XC535
X5035
X5034
XC53E
X4B3E
X4B3F
XC53F
X4B3F
X>
Xput
XMetrics
X/F[3
X18]
Xput
XCharStrings
X/G<D239
X5137
X4F35
X4D34
X4934
X4735
X4537
X4439
X433C
X4341
X4444
X4546
X4748
X4949
X4D49
X4F48
X5146
X5244
X5240
X4D40
XD239
X5139
X5037
X4F36
X4D35
X4935
X4736
X4637
X4539
X443C
X4441
X4544
X4646
X4747
X4948
X4D48
X4F47
X5046
X5144
X5141
X4D41
X4D40
X>
Xput
XMetrics
X/G[2
X21]
Xput
XCharStrings
X/H<C434
X4449
XC434
X4534
X4549
X4449
XD234
X5134
X5149
X5249
XD234
X5249
XC53E
X513E
XC53F
X513F
X>
Xput
XMetrics
X/H[1
X22]
Xput
XCharStrings
X/I<C434
X4449
X4549
XC434
X4534
X4549
X>
Xput
XMetrics
X/I[8
X9]
Xput
XCharStrings
X/J<CC34
X4C44
X4B47
X4948
X4748
X4547
X4444
X4344
XCC34
X4D34
X4D44
X4C47
X4B48
X4949
X4749
X4548
X4447
X4344
X>
Xput
XMetrics
X/J[4
X17]
Xput
XCharStrings
X/K<C434
X4449
X4549
XC434
X4534
X4549
XD234
X5134
X4540
XD234
X4541
XC83D
X5149
X5249
XC93D
X5249
X>
Xput
XMetrics
X/K[2
X21]
Xput
XCharStrings
X/L<C434
X4449
XC434
X4534
X4548
XC548
X5048
X5049
XC449
X5049
X>
Xput
XMetrics
X/L[3
X17]
Xput
XCharStrings
X/M<C434
X4449
XC539
X4549
X4449
XC539
X4C49
XC434
X4C46
XD434
X4C46
XD339
X4C49
XD339
X5349
X5449
XD434
X5449
X>
Xput
XMetrics
X/M[0
X24]
Xput
XCharStrings
X/N<C434
X4449
XC537
X4549
X4449
XC537
X5249
XC434
X5146
XD134
X5146
XD134
X5234
X5249
X>
Xput
XMetrics
X/N[1
X22]
Xput
XCharStrings
X/O<C934
X4735
X4537
X4439
X433C
X4341
X4444
X4546
X4748
X4949
X4D49
X4F48
X5146
X5244
X5341
X533C
X5239
X5137
X4F35
X4D34
X4934
XCA35
X4736
X4539
X443C
X4441
X4544
X4747
X4A48
X4C48
X4F47
X5144
X5241
X523C
X5139
X4F36
X4C35
X4A35
X>
Xput
XMetrics
X/O[1
X22]
Xput
XCharStrings
X/P<C434
X4449
XC535
X4549
X4449
XC434
X4D34
X4F35
X5036
X5138
X513B
X503D
X4F3E
X4D3F
X453F
XC535
X4D35
X4F36
X5038
X503B
X4F3D
X4D3E
X453E
X>
Xput
XMetrics
X/P[2
X20]
Xput
XCharStrings
X/Q<C934
X4735
X4537
X4439
X433C
X4341
X4444
X4546
X4748
X4949
X4D49
X4F48
X5146
X5244
X5341
X533C
X5239
X5137
X4F35
X4D34
X4934
XCA35
X4736
X4539
X443C
X4441
X4544
X4747
X4A48
X4C48
X4F47
X5144
X5241
X523C
X5139
X4F36
X4C35
X4A35
XCC46
X514B
X524B
XCC46
X4D46
X524B
X>
Xput
XMetrics
X/Q[1
X22]
Xput
XCharStrings
X/R<C434
X4449
XC535
X4549
X4449
XC434
X4C34
X4F35
X5036
X5138
X513B
X503D
X4F3E
X4C3F
X453F
XC535
X4C35
X4F36
X5038
X503B
X4F3D
X4C3E
X453E
XCA3F
X5049
X5149
XCB3F
X5149
X>
Xput
XMetrics
X/R[2
X20]
Xput
XCharStrings
X/S<D137
X4F35
X4C34
X4834
X4535
X4337
X4339
X443B
X453C
X473D
X4C3F
X4E40
X4F41
X5043
X5046
X4F47
X4C48
X4848
X4647
X4546
X4346
XD137
X4F37
X4E36
X4C35
X4835
X4536
X4437
X4439
X453B
X473C
X4C3E
X4E3F
X5041
X5143
X5146
X4F48
X4C49
X4849
X4548
X4346
X>
Xput
XMetrics
X/S[2
X20]
Xput
XCharStrings
X/T<C835
X4849
XC935
X4949
X4849
XC234
X4F34
X4F35
XC234
X4235
X4F35
X>
Xput
XMetrics
X/T[4
X17]
Xput
XCharStrings
X/U<C434
X4443
X4546
X4748
X4A49
X4C49
X4F48
X5146
X5243
X5234
XC434
X4534
X4543
X4646
X4747
X4A48
X4C48
X4F47
X5046
X5143
X5134
X5234
X>
Xput
XMetrics
X/U[1
X22]
Xput
XCharStrings
X/V<C234
X4A49
XC234
X4334
X4A46
XD234
X5134
X4A46
XD234
X4A49
X>
Xput
XMetrics
X/V[2
X20]
Xput
XCharStrings
X/W<C234
X4849
XC234
X4334
X4846
XCD34
X4846
XCD37
X4849
XCD37
X5249
XCD34
X5246
XD834
X5734
X5246
XD834
X5249
X>
Xput
XMetrics
X/W[-1
X26]
Xput
XCharStrings
X/X<C334
X5049
X5149
XC334
X4434
X5149
XD134
X5034
X4349
XD134
X4449
X4349
X>
Xput
XMetrics
X/X[2
X20]
Xput
XCharStrings
X/Y<C234
X493E
X4949
X4A49
XC234
X4334
X4A3E
XD134
X5034
X493E
XD134
X4A3E
X4A49
X>
Xput
XMetrics
X/Y[3
X19]
Xput
XCharStrings
X/Z<D034
X4349
XD134
X4449
XC334
X5134
XC334
X4335
X5035
XC448
X5148
X5149
XC349
X5149
X>
Xput
XMetrics
X/Z[2
X20]
Xput
XCharStrings
X/zero
X<C934
X4635
X4438
X433D
X4340
X4445
X4648
X4949
X4B49
X4E48
X5045
X5140
X513D
X5038
X4E35
X4B34
X4934
XC735
X4538
X443D
X4440
X4545
X4748
XC647
X4948
X4B48
X4E47
XCD48
X4F45
X5040
X503D
X4F38
X4D35
XCE36
X4B35
X4935
X4636
X>
Xput
XMetrics
X/zero
X[2
X20]
Xput
XCharStrings
X/one
X<C638
X4837
X4B34
X4B49
XC638
X4639
X4838
X4A36
X4A49
X4B49
X>
Xput
XMetrics
X/one
X[2
X20]
Xput
XCharStrings
X/two
X<C439
X4438
X4536
X4635
X4834
X4C34
X4E35
X4F36
X5038
X503A
X4F3C
X4D3F
X4449
XC439
X4539
X4538
X4636
X4835
X4C35
X4E36
X4F38
X4F3A
X4E3C
X4C3F
X4349
XC448
X5148
X5149
XC349
X5149
X>
Xput
XMetrics
X/two
X[2
X20]
Xput
XCharStrings
X/three
X<C534
X5034
X493D
XC534
X4535
X4F35
XCF34
X483D
XC93C
X4B3C
X4E3D
X503F
X5142
X5143
X5046
X4E48
X4B49
X4849
X4548
X4447
X4345
X4445
XC83D
X4B3D
X4E3E
X5041
XCC3D
X4F3F
X5042
X5043
X4F46
X4C48
XD044
X4E47
X4B48
X4848
X4547
X4445
XC748
X4446
X>
Xput
XMetrics
X/three
X[2
X20]
Xput
XCharStrings
X/four
X<CD37
X4D49
X4E49
XCE34
X4E49
XCE34
X4344
X5244
XCD37
X4444
XC443
X5243
X5244
X>
Xput
XMetrics
X/four
X[2
X20]
Xput
XCharStrings
X/five
X<C534
X443D
XC635
X453C
XC534
X4F34
X4F35
XC635
X4F35
XC53C
X483B
X4B3B
X4E3C
X503E
X5141
X5143
X5046
X4E48
X4B49
X4849
X4548
X4447
X4345
X4445
XC43D
X453D
X473C
X4B3C
X4E3D
X5040
XCC3C
X4F3E
X5041
X5043
X4F46
X4C48
XD044
X4E47
X4B48
X4848
X4547
X4445
XC748
X4446
X>
Xput
XMetrics
X/five
X[2
X20]
Xput
XCharStrings
X/six
X<CE35
X4F37
X5037
X4F35
X4C34
X4A34
X4735
X4538
X443D
X4442
X4546
X4748
X4A49
X4B49
X4E48
X5046
X5143
X5142
X503F
X4E3D
X4B3C
X4A3C
X473D
X453F
XCF36
X4C35
X4A35
X4736
XC835
X4638
X453D
X4542
X4646
X4948
XC544
X4747
X4A48
X4B48
X4E47
X5044
XCC48
X4F46
X5043
X5042
X4F3F
X4C3D
XD041
X4E3E
X4B3D
X4A3D
X473E
X4541
XC93D
X463F
X4542
X>
Xput
XMetrics
X/six
X[2
X20]
Xput
XCharStrings
X/seven
X<C334
X5134
X4749
XC334
X4335
X5035
XD034
X4649
X4749
X>
Xput
XMetrics
X/seven
X[2
X20]
Xput
XCharStrings
X/eight
X<C834
X4535
X4437
X4439
X453B
X463C
X483D
X4C3E
X4E3F
X4F40
X5042
X5045
X4F47
X4C48
X4848
X4547
X4445
X4442
X4540
X463F
X483E
X4C3D
X4E3C
X4F3B
X5039
X5037
X4F35
X4C34
X4834
XC635
X4537
X4539
X463B
X483C
X4C3D
X4E3E
X5040
X5142
X5145
X5047
X4F48
X4C49
X4849
X4548
X4447
X4345
X4342
X4440
X463E
X483D
X4C3C
X4E3B
X4F39
X4F37
X4E35
XCF36
X4C35
X4835
X4536
XC446
X4748
XCD48
X5046
X>
Xput
XMetrics
X/eight
X[2
X20]
Xput
XCharStrings
X/nine
X<CF3E
X4D40
X4A41
X4941
X4640
X443E
X433B
X433A
X4437
X4635
X4934
X4A34
X4D35
X4F37
X503B
X5040
X4F45
X4D48
X4A49
X4849
X4548
X4446
X4546
X4648
XCF3B
X4E3E
X4B40
XCF3C
X4D3F
X4A40
X4940
X463F
X443C
XC840
X453E
X443B
X443A
X4537
X4835
XC439
X4636
X4935
X4A35
X4D36
X4F39
XCB35
X4E37
X4F3B
X4F40
X4E45
X4C48
XCD47
X4A48
X4848
X4547
X>
Xput
XMetrics
X/nine
X[2
X20]
Xput
XCharStrings
X/period
X<C546
X4447
X4448
X4549
X4649
X4748
X4747
X4646
X4546
XC547
X4548
X4648
X4647
X4547
X>
Xput
XMetrics
X/period
X[-4
X11]
Xput
XCharStrings
X/comma
X<C748
X4649
X4549
X4448
X4447
X4546
X4646
X4747
X474A
X464C
X444D
XC547
X4548
X4648
X4647
X4547
XC649
X474A
XC748
X464C
X>
Xput
XMetrics
X/comma
X[-4
X11]
Xput
XCharStrings
X/colon
X<C53B
X443C
X443D
X453E
X463E
X473D
X473C
X463B
X453B
XC53C
X453D
X463D
X463C
X453C
XC546
X4447
X4448
X4549
X4649
X4748
X4747
X4646
X4546
XC547
X4548
X4648
X4647
X4547
X>
Xput
XMetrics
X/colon
X[0
X11]
Xput
XCharStrings
X/semicolon
X<C53B
X443C
X443D
X453E
X463E
X473D
X473C
X463B
X453B
XC53C
X453D
X463D
X463C
X453C
XC748
X4649
X4549
X4448
X4447
X4546
X4646
X4747
X474A
X464C
X444D
XC547
X4548
X4648
X4647
X4547
XC649
X474A
XC748
X464C
X>
Xput
XMetrics
X/semicolon
X[0
X11]
Xput
XCharStrings
X/exclam
X<C534
X4542
X4642
XC534
X4634
X4642
XC546
X4447
X4448
X4549
X4649
X4748
X4747
X4646
X4546
XC547
X4548
X4648
X4647
X4547
X>
Xput
XMetrics
X/exclam
X[7
X11]
Xput
XCharStrings
X/question
X<C339
X4338
X4436
X4535
X4834
X4B34
X4E35
X4F36
X5038
X503A
X4F3C
X4E3D
X4C3E
X493F
XC339
X4439
X4438
X4536
X4835
X4B35
X4E36
X4F38
X4F3A
X4E3C
X4C3D
X493E
XC437
X4735
XCC35
X4F37
XCF3B
X4B3E
XC93E
X4942
X4A42
X4A3E
XC946
X4847
X4848
X4949
X4A49
X4B48
X4B47
X4A46
X4946
XC947
X4948
X4A48
X4A47
X4947
X>
Xput
XMetrics
X/question
X[3
X19]
Xput
XCharStrings
X/quoteleft
X<C734
X4535
X4437
X443A
X453B
X463B
X473A
X4739
X4638
X4538
X4439
XC539
X453A
X463A
X4639
X4539
XC535
X4439
XC437
X4538
X>
Xput
XMetrics
X/quoteleft
X[7
X11]
Xput
XCharStrings
X/quoteright
X<C736
X4637
X4537
X4436
X4435
X4534
X4634
X4735
X4738
X463A
X443B
XC535
X4536
X4636
X4635
X4535
XC637
X4738
XC736
X463A
X>
Xput
XMetrics
X/quoteright
X[7
X11]
Xput
XCharStrings
X/ampersand
X<D63B
X543B
X523C
X513E
X4F44
X4E46
X4D47
X4B48
X4748
X4547
X4445
X4443
X4541
X4640
X4B3D
X4D3B
X4E39
X4E37
X4D35
X4B34
X4A34
X4835
X4737
X4739
X483C
X4A3F
X4F45
X5248
X5449
X5649
XD63B
X563C
X543C
X523D
XD33C
X523E
X5044
X4F46
X4D48
X4B49
X4749
X4548
X4447
X4345
X4343
X4441
X463F
X4B3C
X4C3B
X4D39
X4D37
X4C35
XCD36
X4B35
X4A35
X4836
XC935
X4837
X4839
X493C
X4B3F
X5045
X5247
X5448
X5648
X5649
X>
Xput
XMetrics
X/ampersand
X[0
X25]
Xput
XCharStrings
X/dollar
X<C930
X494D
X4A4D
XC930
X4A30
X4A4D
XCE37
X5037
X4E35
X4B34
X4834
X4535
X4337
X4339
X443B
X453C
X4D40
X4E41
X4F43
X4F45
X4E47
X4B48
X4848
X4647
X4546
XCE37
X4D36
X4B35
X4835
X4536
X4437
X4439
X453B
X4D3F
X4F41
X5043
X5045
X4F47
X4E48
X4B49
X4849
X4548
X4346
X4546
XCF46
X4C48
X>
Xput
XMetrics
X/dollar
X[7
X19]
Xput
XCharStrings
X/slash
X<D430
X4250
X4350
XD430
X5530
X4350
X>
Xput
XMetrics
X/slash
X[5
X23]
Xput
XCharStrings
X/parenleft
X<CA30
X4832
X4635
X4439
X433E
X4342
X4447
X464B
X484E
X4A50
X4B50
XCA30
X4B30
X4932
X4735
X4539
X443E
X4442
X4547
X474B
X494E
X4B50
X>
Xput
XMetrics
X/parenleft
X[9
X14]
Xput
XCharStrings
X/parenright
X<C330
X4532
X4735
X4939
X4A3E
X4A42
X4947
X474B
X454E
X4350
X4450
XC330
X4430
X4632
X4835
X4A39
X4B3E
X4B42
X4A47
X484B
X464E
X4450
X>
Xput
XMetrics
X/parenright
X[9
X14]
Xput
XCharStrings
X/asterisk
X<C834
X4735
X493F
X4840
XC834
X4840
XC834
X4935
X473F
X4840
XC337
X4437
X4C3D
X4D3D
XC337
X4D3D
XC337
X4338
X4D3C
X4D3D
XCD37
X4C37
X443D
X433D
XCD37
X433D
XCD37
X4D38
X433C
X433D
X>
Xput
XMetrics
X/asterisk
X[4
X16]
Xput
X%
XCharStrings
X/minus
X<C43F
X553F
X5540
XC43F
X4440
X5540
X>
Xput
XMetrics
X/minus
X[-4
X25]
Xput
XCharStrings
X/plus
X<CC37
X4C48
X4D48
XCC37
X4D37
X4D48
XC43F
X553F
X5540
XC43F
X4440
X5540
X>
Xput
XMetrics
X/plus
X[-3
X25]
Xput
XCharStrings
X/equal
X<C43B
X553B
X553C
XC43B
X443C
X553C
XC443
X5543
X5544
XC443
X4444
X5544
X>
Xput
XMetrics
X/equal
X[-4
X25]
Xput
XCharStrings
X/quotesingle
X<C534
X4435
X443B
XC535
X443B
XC534
X4635
X443B
X>
Xput
XMetrics
X/quotesingle
X[8
X9]
Xput
XCharStrings
X/quotedbl
X<C534
X4435
X443B
XC535
X443B
XC534
X4635
X443B
XCE34
X4D35
X4D3B
XCE35
X4D3B
XCE34
X4F35
X4D3B
X>
Xput
XMetrics
X/quotedbl
X[3
X18]
Xput
XCharStrings
X/ring
X<C634
X4435
X4337
X4339
X443B
X463C
X483C
X4A3B
X4B39
X4B37
X4A35
X4834
X4634
XC634
X4337
X443B
X483C
X4B39
X4A35
X4634
XC834
X4435
X4339
X463C
X4A3B
X4B37
X4834
X>
Xput
XMetrics
X/ring
X[5
X14]
Xput
XCharStrings
X/a<CF3B
X4F49
X5049
XCF3B
X503B
X5049
XCF3E
X4D3C
X4B3B
X483B
X463C
X443E
X4341
X4343
X4446
X4648
X4849
X4B49
X4D48
X4F46
XCF3E
X4B3C
X483C
X463D
X453E
X4441
X4443
X4546
X4647
X4848
X4B48
X4F46
X>
Xput
XMetrics
X/a[-3
X20]
Xput
XCharStrings
X/b<C434
X4449
X4549
XC434
X4534
X4549
XC53E
X473C
X493B
X4C3B
X4E3C
X503E
X5141
X5143
X5046
X4E48
X4C49
X4949
X4748
X4546
XC53E
X493C
X4C3C
X4E3D
X4F3E
X5041
X5043
X4F46
X4E47
X4C48
X4948
X4546
X>
Xput
XMetrics
X/b[2
X20]
Xput
XCharStrings
X/c<CF3E
X4D3C
X4B3B
X483B
X463C
X443E
X4341
X4343
X4446
X4648
X4849
X4B49
X4D48
X4F46
XCF3E
X4E3F
X4D3D
X4B3C
X483C
X463D
X453E
X4441
X4443
X4546
X4647
X4848
X4B48
X4D47
X4E45
X4F46
X>
Xput
XMetrics
X/c[-3
X18]
Xput
XCharStrings
X/d<CF34
X4F49
X5049
XCF34
X5034
X5049
XCF3E
X4D3C
X4B3B
X483B
X463C
X443E
X4341
X4343
X4446
X4648
X4849
X4B49
X4D48
X4F46
XCF3E
X4B3C
X483C
X463D
X453E
X4441
X4443
X4546
X4647
X4848
X4B48
X4F46
X>
Xput
XMetrics
X/d[2
X20]
Xput
XCharStrings
X/e<C442
X4F42
X4F3F
X4E3D
X4D3C
X4B3B
X483B
X463C
X443E
X4341
X4343
X4446
X4648
X4849
X4B49
X4D48
X4F46
XC441
X4E41
X4E3F
X4D3D
X4B3C
X483C
X463D
X453E
X4441
X4443
X4546
X4647
X4848
X4B48
X4D47
X4E45
X4F46
X>
Xput
XMetrics
X/e[-3
X18]
Xput
XCharStrings
X/f<CB34
X4934
X4735
X4638
X4649
X4749
XCB34
X4B35
X4935
X4736
XC835
X4738
X4749
XC33B
X4A3B
X4A3C
XC33B
X433C
X4A3C
X>
Xput
XMetrics
X/f[6
X14]
Xput
XCharStrings
X/g<D03B
X4F3B
X4F4A
X4E4D
X4D4E
X4B4F
X494F
X474E
X464D
X444D
XD03B
X504A
X4F4D
X4D4F
X4B50
X4850
X464F
X444D
XCF3E
X4D3C
X4B3B
X483B
X463C
X443E
X4341
X4343
X4446
X4648
X4849
X4B49
X4D48
X4F46
XCF3E
X4B3C
X483C
X463D
X453E
X4441
X4443
X4546
X4647
X4848
X4B48
X4F46
X>
Xput
XMetrics
X/g[-3
X20]
Xput
XCharStrings
X/h<C434
X4449
X4549
XC434
X4534
X4549
XC53F
X483C
X4A3B
X4D3B
X4F3C
X503F
X5049
XC53F
X483D
X4A3C
X4C3C
X4E3D
X4F3F
X4F49
X5049
X>
Xput
XMetrics
X/h[2
X20]
Xput
XCharStrings
X/i<C434
X4335
X4336
X4437
X4537
X4636
X4635
X4534
X4434
XC435
X4436
X4536
X4535
X4435
XC43B
X4449
X4549
XC43B
X453B
X4549
X>
Xput
XMetrics
X/i[8
X9]
Xput
XCharStrings
X/j<C534
X4435
X4436
X4537
X4637
X4736
X4735
X4634
X4534
XC535
X4536
X4636
X4635
X4535
XC63B
X464C
X454F
X4350
X4150
X414F
XC63B
X453B
X454C
X444E
X434F
X414F
X>
Xput
XMetrics
X/j[7
X10]
Xput
XCharStrings
X/k<C434
X4449
X4549
XC434
X4534
X4549
XD03B
X4F3B
X4545
XD03B
X4546
XC842
X4E49
X5049
XC941
X5049
X>
Xput
XMetrics
X/k[2
X19]
Xput
XCharStrings
X/l<C434
X4449
X4549
XC434
X4534
X4549
X>
Xput
XMetrics
X/l[8
X9]
Xput
XCharStrings
X/m<C43B
X4449
X4549
XC43B
X453B
X4549
XC53F
X483C
X4A3B
X4D3B
X4F3C
X503F
X5049
XC53F
X483D
X4A3C
X4C3C
X4E3D
X4F3F
X4F49
X5049
XD03F
X533C
X553B
X583B
X5A3C
X5B3F
X5B49
XD03F
X533D
X553C
X573C
X593D
X5A3F
X5A49
X5B49
X>
Xput
XMetrics
X/m[-4
X31]
Xput
XCharStrings
X/n<C43B
X4449
X4549
XC43B
X453B
X4549
XC53F
X483C
X4A3B
X4D3B
X4F3C
X503F
X5049
XC53F
X483D
X4A3C
X4C3C
X4E3D
X4F3F
X4F49
X5049
X>
Xput
XMetrics
X/n[-4
X20]
Xput
XCharStrings
X/o<C83B
X463C
X443E
X4341
X4343
X4446
X4648
X4849
X4B49
X4D48
X4F46
X5043
X5041
X4F3E
X4D3C
X4B3B
X483B
XC83C
X463D
X453E
X4441
X4443
X4546
X4647
X4848
X4B48
X4D47
X4E46
X4F43
X4F41
X4E3E
X4D3D
X4B3C
X483C
X>
Xput
XMetrics
X/o[-3
X19]
Xput
XCharStrings
X/p<C43B
X4450
X4550
XC43B
X453B
X4550
XC53E
X473C
X493B
X4C3B
X4E3C
X503E
X5141
X5143
X5046
X4E48
X4C49
X4949
X4748
X4546
XC53E
X493C
X4C3C
X4E3D
X4F3E
X5041
X5043
X4F46
X4E47
X4C48
X4948
X4546
X>
Xput
XMetrics
X/p[-4
X20]
Xput
XCharStrings
X/q<CF3B
X4F50
X5050
XCF3B
X503B
X5050
XCF3E
X4D3C
X4B3B
X483B
X463C
X443E
X4341
X4343
X4446
X4648
X4849
X4B49
X4D48
X4F46
XCF3E
X4B3C
X483C
X463D
X453E
X4441
X4443
X4546
X4647
X4848
X4B48
X4F46
X>
Xput
XMetrics
X/q[-3
X20]
Xput
XCharStrings
X/r<C43B
X4449
X4549
XC43B
X453B
X4549
XC541
X463E
X483C
X4A3B
X4D3B
XC541
X463F
X483D
X4A3C
X4D3C
X4D3B
X>
Xput
XMetrics
X/r[-2
X14]
Xput
XCharStrings
X/s<CE3E
X4D3C
X4A3B
X473B
X443C
X433E
X4440
X4641
X4B43
X4D44
XCC43
X4D45
X4D46
X4C48
XCD47
X4A48
X4748
X4447
XC548
X4446
X4346
XCE3E
X4D3E
X4C3C
XCD3D
X4A3C
X473C
X443D
XC53C
X443E
X4540
XC43F
X4640
X4B42
X4D43
X4E45
X4E46
X4D48
X4A49
X4749
X4448
X4346
X>
Xput
XMetrics
X/s[-3
X17]
Xput
XCharStrings
X/t<C534
X4549
X4649
XC534
X4634
X4649
XC23B
X493B
X493C
XC23B
X423C
X493C
X>
Xput
XMetrics
X/t[7
X11]
Xput
XCharStrings
X/u<C43B
X4445
X4548
X4749
X4A49
X4C48
X4F45
XC43B
X453B
X4545
X4647
X4848
X4A48
X4C47
X4F45
XCF3B
X4F49
X5049
XCF3B
X503B
X5049
X>
Xput
XMetrics
X/u[-4
X20]
Xput
XCharStrings
X/v<C23B
X4849
XC23B
X433B
X4847
XCE3B
X4D3B
X4847
XCE3B
X4849
X>
Xput
XMetrics
X/v[-2
X16]
Xput
XCharStrings
X/w<C33B
X4849
XC33B
X443B
X4846
XCC3B
X4846
XCC3E
X4849
XCC3E
X5049
XCC3B
X5046
XD53B
X543B
X5046
XD53B
X5049
X>
Xput
XMetrics
X/w[-3
X24]
Xput
XCharStrings
X/x<C33B
X4E49
X4F49
XC33B
X443B
X4F49
XCF3B
X4E3B
X4349
XCF3B
X4449
X4349
X>
Xput
XMetrics
X/x[-3
X18]
Xput
XCharStrings
X/y<C23B
X4849
XC23B
X433B
X4847
XCE3B
X4D3B
X4847
X4450
XCE3B
X4849
X4550
X4450
X>
Xput
XMetrics
X/y[-2
X16]
Xput
XCharStrings
X/z<CD3C
X4349
XCF3B
X4548
XC33B
X4F3B
XC33B
X433C
X4D3C
XC548
X4F48
X4F49
XC349
X4F49
X>
Xput
XMetrics
X/z[-3
X18]
Xput
X
XCharStrings
X/.notdef
X<CF44
X4F45
X4E47
X4D48
X4B49
X4749
X4548
X4447
X4345
X4343
X4441
X4540
X493E
X493B
XC936
X4A35
X4934
X4835
X4936
X>
Xput
XMetrics
X/.notdef
X[3
X18]
Xput
XCharStrings
X/space
X()
Xput
XMetrics
X/space
X[0
X20]
Xput
XCharStrings
X/numbersign
X<CB34
X4450
XD134
X4A50
XC43F
X523F
XC345
X5145
X>
Xput
XMetrics
X/numbersign
X[2
X21]
Xput
XCharStrings
X/bracketleft
X<C430
X4450
XC530
X4550
XC430
X4B30
XC450
X4B50
X>
Xput
XMetrics
X/bracketleft
X[9
X14]
Xput
XCharStrings
X/bracketright
X<C930
X4950
XCA30
X4A50
XC330
X4A30
XC350
X4A50
X>
Xput
XMetrics
X/bracketright
X[9
X14]
Xput
XCharStrings
X/braceleft
X<C930
X4731
X4632
X4534
X4536
X4638
X4739
X483B
X483D
X463F
XC731
X4633
X4635
X4737
X4838
X493A
X493C
X483E
X4440
X4842
X4944
X4946
X4848
X4749
X464B
X464D
X474F
XC641
X4843
X4845
X4747
X4648
X454A
X454C
X464E
X474F
X4950
X>
Xput
XMetrics
X/braceleft
X[9
X14]
Xput
XCharStrings
X/braceright
X<C530
X4731
X4832
X4934
X4936
X4838
X4739
X463B
X463D
X483F
XC731
X4833
X4835
X4737
X4638
X453A
X453C
X463E
X4A40
X4642
X4544
X4546
X4648
X4749
X484B
X484D
X474F
XC841
X4643
X4645
X4747
X4848
X494A
X494C
X484E
X474F
X4550
X>
Xput
XMetrics
X/braceright
X[9
X14]
Xput
XCharStrings
X/minus
X<C440
X5640
X>
Xput
XMetrics
X/minus
X[-4
X26]
Xput
XCharStrings
X/percent
X<D534
X4349
XC834
X4A36
X4A38
X493A
X473B
X453B
X4339
X4337
X4435
X4634
X4834
X4A35
X4D36
X5036
X5335
X5534
XD142
X4F43
X4E45
X4E47
X5049
X5249
X5448
X5546
X5544
X5342
X5142
X>
Xput
XMetrics
X/percent
X[0
X24]
Xput
XCharStrings
X/underscore
X<C048
X4049
X5049
X5048
X4048
X>
Xput
XMetrics
X/underscore
X[0
X16]
Xput
XCharStrings
X/backslash
X<C43D
X563D
X5643
X>
Xput
XMetrics
X/backslash
X[-4
X26]
Xput
XCharStrings
X/asciitilde
X<C343
X4341
X443E
X463D
X483D
X4A3E
X4E41
X5042
X5242
X5441
X553F
XC341
X443F
X463E
X483E
X4A3F
X4E42
X5043
X5243
X5442
X553F
X553D
X>
Xput
XMetrics
X/asciitilde
X[-3
X24]
Xput
XCharStrings
X/less
X<D437
X4440
X5449
X>
Xput
XMetrics
X/less
X[-3
X24]
Xput
XCharStrings
X/greater
X<C437
X5440
X4449
X>
Xput
XMetrics
X/greater
X[-3
X24]
Xput
XCharStrings
X/asciicircum
X<C342
X4B3D
X5342
XC342
X4B3E
X5342
X>
Xput
XMetrics
X/asciicircum
X[-3
X22]
Xput
XCharStrings
X/asciitilde
X<C343
X4341
X443E
X463D
X483D
X4A3E
X4E41
X5042
X5242
X5441
X553F
XC341
X443F
X463E
X483E
X4A3F
X4E42
X5043
X5243
X5442
X553F
X553D
X>
Xput
XMetrics
X/asciitilde
X[-3
X24]
Xput
XCharStrings
X/bar
X<C430
X4450
X>
Xput
XMetrics
X/bar
X[12
X8]
Xput
END_OF_FILE
if test 16026 -ne `wc -c <'postscript/fonts/SANS/roman.r'`; then
    echo shar: \"'postscript/fonts/SANS/roman.r'\" unpacked with wrong size!
fi
# end of 'postscript/fonts/SANS/roman.r'
fi
if test -f 'source/font.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'source/font.c'\"
else
echo shar: Extracting \"'source/font.c'\" \(16487 characters\)
sed "s/^X//" >'source/font.c' <<'END_OF_FILE'
X/*
X * Copyright (C) Rutherford Appleton Laboratory 1987
X * 
X * This source may be copied, distributed, altered or used, but not sold for profit
X * or incorporated into a product except under licence from the author.
X * It is not in the public domain.
X * This notice should remain in the source unaltered, and any changes to the source
X * made by persons other than the author should be marked as such.
X * 
X *	Crispin Goswell @ Rutherford Appleton Laboratory caag@uk.ac.rl.vd
X */
X#include "main.h"
X#include "graphics.h"
X
X#define MOVETO	0x80
X#define BYTE	0xFF
X
X#define FONT_USER	3
X
Xstatic struct show_context show_stack [MAXGSAVES];
X 
Xint MoveTo (), LineTo ();
X
Xstatic int PCurrentFont ();
Xstatic int PDefineFont ();
Xstatic int PFindFont ();
Xstatic int PScaleFont ();
Xstatic int PMakeFont ();
Xstatic int PSetFont ();
X
Xstatic int BuildHershey ();
Xstatic int PShow ();
Xstatic int PWidthShow ();
Xstatic int PAShow ();
Xstatic int PAWidthShow ();
Xstatic int PStringWidth ();
Xstatic int PAdjust ();
X
Xstatic Vector GetMetrics ();
X
Xstatic int ShowString ();
Xstatic int ShowStop ();
Xstatic int ShowStopped ();
X
XObject Fid, FD, FontMatrix, FontType, Encoding, FontBBox, OpShowStop, OpShowString, OpStopped;
XObject UserShow, CharStrings, Metrics, BuildChar, FontName;
X
Xstatic last_fid = 0;
X
Xstatic int Update ();
X
Xstatic Point zeroPoint;
Xstatic HardPoint zeroHardPoint;
X
Xextern Matrix HardPointTranslate ();
X
XInitFont ()
X {
X 	Fid 		= NameFrom ("FID");
X 	FontMatrix 	= NameFrom ("FontMatrix");
X 	FontType	= NameFrom ("FontType");
X 	Encoding	= NameFrom ("Encoding");
X 	FontBBox 	= NameFrom ("FontBBox");
X 	UserShow 	= NameFrom (".show");
X 	CharStrings	= NameFrom ("CharStrings");
X 	Metrics		= NameFrom ("Metrics");
X 	BuildChar	= NameFrom ("BuildChar");
X 	FontName	= NameFrom ("FontName");
X 	
X 	OpShowStop = MakeOp ("(showstop)",	ShowStop,	1, 0, 0, 0, Boolean);
X 	OpShowString = MakeOp ("(showstring)",	ShowString,	1, 0, 0, 0, String);
X 	OpStopped = MakeOp ("(showstopped)",	ShowStopped,0, 1, 1, 0);
X 		
X 	InstallOp ("currentfont",	PCurrentFont,	0, 1, 0, 0);
X 	InstallOp ("definefont",	PDefineFont,	2, 1, 0, 0, Poly, Dictionary);
X 	InstallOp ("findfont",		PFindFont,	1, 1, 0, 0, Poly);
X 	InstallOp ("scalefont",		PScaleFont,	2, 1, 0, 0, Dictionary, Float);
X 	InstallOp ("makefont",		PMakeFont,	2, 1, 0, 0, Dictionary, Array);
X 	InstallOp ("setfont",		PSetFont,	1, 0, 0, 0, Dictionary);
X
X	InstallOp ("show",		PShow,		1, 0, 0, 0, String);
X	InstallOp ("widthshow",		PWidthShow,	4, 0, 0, 0, Float, Float, Integer, String);
X 	InstallOp ("ashow",		PAShow,		3, 0, 0, 0, Float, Float, String);
X 	InstallOp ("awidthshow",	PAWidthShow,	6, 0, 0, 0, Float, Float, Integer, Float, Float, String);
X	InstallOp ("stringwidth",	PStringWidth,	1, 2, 0, 0, String);
X	InstallOp (".adjust",		PAdjust,	1, 0, 0, 0, Integer);
X	InstallOp ("buildhershey",	BuildHershey,	2, 0, 0, 0, Dictionary, Integer);
X	InstallOp ("update",		Update,		1, 0, 0, 0, Boolean);
X 	
X 	Install ("FontDirectory",	FD = MakeDict (20));
X 	
X 	zeroPoint = NewPoint (0.0, 0.0);
X 	zeroHardPoint = NewHardPoint (0.0, 0.0);
X }
X
XHardPoint DExtToInt (p) Point p;
X {
X 	Matrix m;
X 	HardPoint res;
X 	
X 	m = gstate->CTM;
X 	res.hx = p.x * m.A + p.y * m.C;
X 	res.hy = p.x * m.B + p.y * m.D;
X 	
X 	return res;
X }
X
Xstatic int update_state = TRUE;
X
Xstatic int Update (bool) Object bool;
X {
X 	int new = BodyBoolean (bool);
X 	
X 	if (new != update_state)
X 		UpdateControl (gstate->device->dev, update_state = new);
X 	return TRUE;
X }
X
XInitShowContext ()
X {
X 	gstate->show = show_stack;
X }
X
XHardPoint Adjust (basic, code) HardPoint basic; char code;
X {
X 	if (code == gstate->show->space)
X 		return MoveHardPoint (MoveHardPoint (gstate->show->shim, gstate->show->space_shim), basic);
X 	else
X 		return MoveHardPoint (gstate->show->shim, basic);
X }
X
Xstatic int PAdjust (code) Object code;
X {
X	gstate->CTM = HardPointTranslate (gstate->CTM, Adjust (ExtToInt (NewPoint (0.0, 0.0)), BodyInteger (code)));
X	
X 	return TRUE;
X }
X
Xstatic int PCurrentFont ()
X {
X 	return Push (OpStack, gstate->font);
X }
X
Xstatic int PFindFont (key) Object key;
X {
X 	Object res;
X 	
X 	res = DictLoad (FD, key);
X 	if (TypeOf (res) == Condition)
X 		return Error (PInvFont);
X 	return Push (OpStack, res);
X }
X
Xstatic Object *encodingCache = NULL;
Xstatic Matrix fontmatrixCache;
Xstatic int fonttypeCache;
Xint fidCache;
Xfloat fontbboxCache[4];
X
Xstatic int PSetFont (font) Object font;
X {
X 	if (!CheckFont (font))
X 		return Error (PInvFont);
X 	gstate->font = font;
X	ExtractMatrix (&fontmatrixCache, DictLoad (font, FontMatrix));
X 	encodingCache = BodyArray (DictLoad (font, Encoding));
X 	fonttypeCache = BodyInteger (DictLoad (font, FontType));
X 	fidCache = BodyFontID (DictLoad (font, Fid));
X 	ExtractBBox (fontbboxCache, DictLoad (font, FontBBox));
X 	return TRUE;
X }
X
Xint CheckFont (font) Object font;
X {
X 	Object mat, bbox, enc, fonttype;
X 	Matrix dummy;
X 	float bboxdummy[4];
X 	
X 	mat = DictLoad (font, FontMatrix);
X  	if (TypeOf (mat) == Condition || !ExtractMatrix (&dummy, mat))
X 		return FALSE;
X 	fonttype = DictLoad (font, FontType);
X 	if (TypeOf (fonttype) != Integer)
X 		return FALSE;
X	bbox = DictLoad (font, FontBBox);
X 	if (TypeOf (bbox) != Array || lengthArray (bbox) != 4 || !ExtractBBox (bboxdummy, bbox))
X 		return FALSE;
X 	enc = DictLoad (font, Encoding);
X 	if (TypeOf (enc) != Array || lengthArray (enc) != 256)
X 		return FALSE;
X	
X	switch (BodyInteger (fonttype))
X	 {
X	 	case FONT_USER: return TRUE;
X	 	
X	 	default: return TRUE;
X	 }
X }
X
Xint CheckHershey (font, encoding) Object font, *encoding;
X {
X 	Object cs, metrics;
X  	int i;
X	cs = DictLoad (font, CharStrings);
X	if (TypeOf (cs) != Dictionary)
X		return FALSE;
X	metrics = DictLoad (font, Metrics);
X	if (TypeOf (metrics) != Dictionary)
X		return FALSE;
X	
X	for (i = 0; i < 256; i++)
X	 {
X	 	Object met;
X	 	
X		met = DictLoad (metrics, encoding[i]);
X		if (TypeOf (met) == Array)
X	 	 {
X	 	 	Object *m = BodyArray (met);
X	 	 	int j, l = lengthArray (met);
X	 	 	
X	 	 	if (l != 1 && l != 2 && l != 4)
X	 			return FALSE;
X	 		
X	 		for (j = 0; j < l; j++)
X	 			if (TypeOf (m[j]) != Integer && TypeOf (m[j]) != Real)
X	 				return FALSE;
X	 	 }
X	 	else if (TypeOf (metrics) != Integer && TypeOf (metrics) != Real)
X	 		return FALSE;
X	 }
X	return TRUE;
X }
X
Xint ExtractBBox (bbox, array) float *bbox; Object array;
X {
X 	Object num;
X 	int i;
X 	
X 	if (lengthArray (array) != 4)
X 		return FALSE;
X 	for (i = 0; i < 4; i++)
X 	 {
X 	 	num = getArray (array, i);
X 	 	
X 		if (TypeOf (num) == Integer)
X 			bbox [i] = BodyInteger (num);
X 		else if (TypeOf (num) == Real)
X 			bbox [i] = BodyReal (num);
X 		else
X 			return FALSE;
X 	 }
X 	return TRUE;
X }
X
Xstatic Object MakeFontID ()
X {
X 	Object res;
X 	
X 	res = MakeObject (FontID);
X 	res.u.Font = last_fid++; /* just for uniqueness */
X 	
X 	return res;
X }
X
Xint BodyFontID (fid) Object fid;
X {
X 	return fid.u.Font;
X }
X
Xstatic int PDefineFont (key, dict) Object key, dict;
X {
X 	if (maxDict (dict) == lengthDict (dict) || maxDict (FD) == lengthDict (FD))
X 		return Error (PDictFull);
X 	
X	if (!CheckFont (dict))
X		return Error (PInvFont);
X	
X 	DictStore (FD, key, ReadOnly (dict));
X 	DictStore (dict, Fid, MakeFontID ());
X 	return Push (OpStack, ReadOnly (dict));
X }
X
Xstruct font_entry
X {
X 	Object font;
X 	Matrix mat;
X 	int fid;
X 	struct font_entry *font_next;
X } *font_list = NULL;
X
XObject LookupFont (font, matrix) Object font; Matrix matrix;
X {
X 	Object res, mat, new;
X 	Matrix m, n;
X 	struct font_entry *p, *fe;
X 	int fid = BodyFontID (DictLoad (font, Fid));
X 	
X 	mat = DictLoad (font, FontMatrix);
X 	ExtractMatrix (&m, mat);
X 	n = MatMult (matrix, m);
X 	
X	for (p = font_list; p != NULL; p = p->font_next)
X 		if (p->fid == fid && EqFont (p->mat, n))
X 		 {
X 		 	Message ("font matched");
X 			return p->font;
X 		 }
X 	Message ("building a font dict");
X 	
X  	copyDict (font, res = MakeDict (maxDict (font)));
X 	new = MakeArray ((Object *) Malloc ((unsigned) 6 * sizeof (Object)), 6);
X 	VOID AssignMatrix (new, n);
X 	DictStore (res, FontMatrix, new);
X 	
X 	res = ReadOnly (res);
X	
X	fe = (struct font_entry *) Malloc (sizeof (struct font_entry));
X	fe->mat = n;
X	fe->font = res;
X	fe->font_next = font_list;
X	fe->fid = fid;
X	font_list = fe;
X	
X	return res;
X }
X
Xstatic int PScaleFont (font, scale) Object font, scale;
X {
X 	Object res;
X 	float s = BodyReal (scale);
X 	
X 	if (!CheckFont (font))
X 		return Error (PInvFont);
X 	res = LookupFont (font, NewMatrix (s, 0.0, 0.0, s, 0.0, 0.0));
X	
X 	return Push (OpStack, res);
X }
X
Xstatic int PMakeFont (font, matrix) Object font, matrix;
X {
X 	Object res;
X 	Matrix m;
X 	
X 	if (!CheckFont (font))
X 		return Error (PInvFont);
X 	ExtractMatrix (&m, matrix);
X 	res = LookupFont (font, m);
X	
X 	return Push (OpStack, res);
X }
X
Xstatic Vector GetMetrics (ob) Object ob;
X {
X 	if (TypeOf (ob) == Integer || TypeOf (ob) == Real)
X 	 	return NewVector (BodyFloat (ob), 0.0, 0.0);
X 	else if (TypeOf (ob) != Array)
X 		return NewVector (0.0, 0.0, 1.0);
X 	else if (lengthArray (ob) == 2)
X 		return NewVector (BodyFloat (getArray (ob, 1)), 0.0, 0.0);
X 	else if (lengthArray (ob) == 4)
X 		return NewVector (BodyFloat (getArray (ob, 2)), BodyFloat (getArray (ob, 3)), 0.0);
X 	else
X 		return NewVector (0.0, 0.0, 1.0);
X }
X
Xstatic int BuildHershey (font, code) Object font, code;
X {
X	Vector met;
X	Object *bbox, string, nm;
X 	unsigned char *s;
X 	Path p;
X 	int i, l;
X 	
X	bbox 	= BodyArray (DictLoad (font, FontBBox));
X	nm 	= BodyArray (DictLoad (font, Encoding)) [BodyInteger (code)];
X	met 	= GetMetrics (DictLoad (DictLoad (font, Metrics), nm));
X	met.vx -= 2; /* hershey bodge - they look better closer */
X	string 	= DictLoad (DictLoad (font, CharStrings), nm);
X	
X	SetCacheDevice (nm, NewPoint (met.vx, met.vy),
X		BodyReal (bbox[0]), BodyReal (bbox[1]),
X		BodyReal (bbox[2]), BodyReal (bbox[3]));
X	
X	if (TypeOf (string) != String)
X		return TRUE;
X	gstate->line_width = 1.5;
X	gstate->line_join = 2;
X	gstate->line_cap = 0;
X	gstate->dash_length = 0;
X	
X 	s = BodyString (string);
X 	l = lengthString (string) / 2;
X 	p = gstate->path;
X 	
X	VOID PNewPath ();
X 	for (i = 0; i < l; i++, s++, s++)
X 	 {
X 	 	Point po;
X 	 	/* SUN2 FLOATING POINT BUG: (float) (int) is necessary, where (float) should be sufficient */
X 	 	po = NewPoint ((float) (int) ((*s & ~MOVETO) - 64), (float) (int) ((s[1] & ~MOVETO) - 73));
X 	 	(*(*s & MOVETO ? MoveTo : LineTo))
X 	  		(p, ExtToInt (po));
X 	 }
X 	return Push (ExecStack, Cvx (NameFrom ("stroke")));
X }
X
X/*
X	Persistent state important across a BuildChar call-back
X		InShow 		- the fact that we're in a call back
X		gstate 		- graphics state
X		ccache 		- the current cache device
X		gstate->device 	- whether a cache device has been set or not.
X				  The old device if a cache device is installed.
X				  The old CTM.
X		Width 		- current width information - used for moving cp
X		awx, awy	- shim adjustment parameters
X		scode,
X		axcode, aycode	- spacing adjustment parameters
X	
X	XXXXXXX         XXXXXX         XXXXXXXXXX         XXXXXXXXX
X	XXXXXXX         XXXXXX         XXXXXXXXXX         XXXXXXXXX
X	XXXXXXX         XXXXXX         XXXXXXXXXX         XXXXXXXXX
X	XXXXXXX         XXXXXX         XXXXXXXXXX         XXXXXXXXX
X	XXXXXXX         XXXXXX         XXXXXXXXXX         XXXXXXXXX
X	       |_______|      |_______|          |_______|
X		   |
X		ashow/widthshow width vector
X	
X	ShowUser shows the first character (to avoid a leading gap).
X			It may have to call buildchar if the character is not cached.
X	ShowString finishes off a BuildChar (if necessary)
X			then shows gaps and characters until it encounters
X			one which is not cached.
X		It then stacks:
X			a stopped context to reset things if an error occurs.
X			another ShowString to continue output.
X			A buildchar to build a character
X*/
X
Xstatic int Show (string, space, shim, space_shim)
X		Object string; char space; HardPoint shim, space_shim;
X {
X	if (!gstate->cp_defined)
X		return Error (PNoCurrentPoint);
X	
X	switch (fonttypeCache)
X	 {
X		case FONT_USER:
X			return ShowUser (string, fontmatrixCache, space, shim, space_shim);
X		
X		default:
X			return Error (PInvFont);		
X	 }
X }
X
Xstatic int ShowStopped ()
X {
X	VOID Pop (ExecStack);
X	VOID Push (OpStack, False);
X	return TRUE;
X }
X
X#define lengthString(s) ((s).Length)
X
X#define BodyString(s)	((s).u.String)
X
Xint ShowUser (string, m, space, shim, space_shim)
X		Object string; Matrix m; char space; HardPoint shim, space_shim;
X {
X 	unsigned char *s = BodyString (string);
X 	int l = lengthString (string);
X 	
X 	if (l == 0)
X 		return TRUE;
X 	
X	/* GSave (); */
X	
X	++gstate->show;
X	gstate->show->InShow = TRUE;
X	gstate->show->shim = shim;
X	gstate->show->space_shim = space_shim;
X	gstate->show->space = space;
X	gstate->show->mat = gstate->CTM;
X	
X	gstate->CTM.tx = gstate->cp.hx;
X	gstate->CTM.ty = gstate->cp.hy;
X	
X  	gstate->CTM = MatMult (m, gstate->CTM);
X	FindCache ();
X	
X	UpdateControl (gstate->device->dev, FALSE);
X	
X	gstate->cp.hx = gstate->CTM.tx;
X	gstate->cp.hy = gstate->CTM.ty;
X	if (CacheShow (encodingCache [*s], gstate->cp))
X		return ShowStringAux (string, s, l, gstate->show->Width);
X	
X	UpdateControl (gstate->device->dev, TRUE);
X	
X	GSave ();
X	VOID Push (ExecStack, OpShowStop);
X	PStopped (OpShowString);
X	VOID Push (OpStack, string);
X	VOID Push (OpStack, gstate->font);
X	VOID Push (OpStack, MakeInteger (*s));
X	VOID Push (ExecStack, DictLoad (gstate->font, BuildChar));
X	return TRUE;
X }
X
Xstatic int ShowString (string) Object string;
X {
X 	int l = lengthString (string);
X 	unsigned char *st = BodyString (string);
X 	Point last_width;
X 	
X 	Pop (ExecStack);
X  	Pop (ExecStack);
X  	Pop (ExecStack);
X	GRestore ();
X	
X	UpdateControl (gstate->device->dev, FALSE);
X	
X	last_width = gstate->show->Width;
X 	CacheShow (encodingCache [*st], gstate->cp);
X 	
X 	return ShowStringAux (string, st, l, last_width);
X }
X
XShowStringAux (string, st, l, last_width) Object string; unsigned char *st; int l; Point last_width;
X {
X 	unsigned char *s = st;
X 	HardPoint loc;
X 	
X 	loc.hx = gstate->CTM.tx; loc.hy = gstate->CTM.ty;
X 	for (;;)
X	 {
X	 	int code = *++s;
X	 	HardPoint offset, cp;
X	 	
X	 	offset = Adjust (DExtToInt (last_width), code);
X		loc.hx += offset.hx;
X		loc.hy += offset.hy;
X 		if (--l == 0)
X 	 		break;
X		if (!CacheShow (encodingCache [code], loc))
X 		 {
X			gstate->cp = loc;
X			gstate->CTM.tx = loc.hx; gstate->CTM.ty = loc.hy;
X			
X			VOID Push (ExecStack, OpShowStop);
X			PStopped (OpShowString);
X	
X		 	VOID Push (OpStack, getIString (string, s - st, l));
X 			
X			VOID Push (OpStack, gstate->font);
X			VOID Push (OpStack, MakeInteger (*s));
X			VOID Push (ExecStack, DictLoad (gstate->font, BuildChar));
X 			UpdateControl (gstate->device->dev, TRUE);
X 	
X 			GSave ();
X	
X			return TRUE;
X 		 }
X 		last_width = gstate->show->Width;
X 	 }
X 	gstate->CTM.tx = loc.hx; gstate->CTM.ty = loc.hy;
X	UpdateControl (gstate->device->dev, TRUE);
X 	
X	return ShowStopAux ();
X }
X
Xstatic int ShowStop (st) Object st;
X {
X	GRestore ();
X	ShowStopAux ();
X	if (BodyBoolean (st))
X		return PStop ();
X	return TRUE;
X }
X
XShowStopAux ()
X {
X 	HardPoint cp;
X 	
X	cp.hx = gstate->CTM.tx;
X	cp.hy = gstate->CTM.ty;
X	/* GRestore (); */
X	gstate->CTM = gstate->show->mat;
X	--gstate->show;
X	gstate->cp = cp;
X	
X 	return TRUE;
X }
X
Xstatic int PShow (string) Object string;
X {
X 	return Show (string, 0, zeroHardPoint, zeroHardPoint);
X }
X
Xstatic int PWidthShow (x, y, code, string) Object x, y, code, string;
X {
X	return Show (string, BodyInteger (code), zeroHardPoint, DExtToInt (NewPoint (BodyReal (x), BodyReal (y))));
X }
X
Xstatic int PAShow (ax, ay, string) Object ax, ay, string;
X {
X	return Show (string, 0, DExtToInt (NewPoint (BodyReal (ax), BodyReal (ay))), zeroHardPoint);
X }
X
Xstatic int PAWidthShow (x, y, code, ax, ay, string) Object x, y, code, ax, ay, string;
X {
X	return Show (string,
X		BodyInteger (code),
X		DExtToInt (NewPoint (BodyReal (x), BodyReal (y))),
X		DExtToInt (NewPoint (BodyReal (ax), BodyReal (ay))));
X }
X
Xstatic int PStringWidth (string) Object string;
X {
X 	Matrix m;
X 	Vector v;
X 	Object *enc, met;
X 	int i, l = lengthString (string);
X 	unsigned char *s = BodyString (string);
X 	float x = 0, y = 0;
X 	
X 	if (!CheckFont (gstate->font))
X 		return Error (PInvFont);
X 	if (BodyInteger (DictLoad (gstate->font, FontType)) == 3)
X 	 {
X 	 	VOID Push (OpStack, string);
X 	 	VOID Push (ExecStack, Cvx (NameFrom (".stringwidth")));
X 	 	return TRUE;
X 	 }
X 	enc = BodyArray (DictLoad (gstate->font, Encoding));
X 	met = DictLoad (gstate->font, Metrics);
X 	for (i = 0; i < l; i++)
X 	 {
X 	 	v = GetMetrics (DictLoad (met, enc[s[i]]));
X 		x += v.vx;
X 		y += v.vy;
X 	 }
X 	ExtractMatrix (&m, DictLoad (gstate->font, FontMatrix));
X 	v = Transform (NewVector (x, y, 0.0), m);
X 	return Push (OpStack, MakeReal (v.vx)), Push (OpStack, MakeReal (v.vy));
X }
END_OF_FILE
if test 16487 -ne `wc -c <'source/font.c'`; then
    echo shar: \"'source/font.c'\" unpacked with wrong size!
fi
# end of 'source/font.c'
fi
echo shar: End of archive 13 \(of 18\).
cp /dev/null ark13isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 18 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0