Blame


1 13f7391e 2004-05-15 devnull %
2 13f7391e 2004-05-15 devnull % Encoding vector, operator and procedure redefinitions for Plan 9 UTF
3 13f7391e 2004-05-15 devnull % encoding. Prologues are expected to take steps to ensure operator
4 13f7391e 2004-05-15 devnull % redefinitions given here are actually used. Current implementation
5 13f7391e 2004-05-15 devnull % assumes UTF byte streams that represent ASCII or Latin1 text.
6 13f7391e 2004-05-15 devnull %
7 13f7391e 2004-05-15 devnull
8 13f7391e 2004-05-15 devnull /UTFLatin1Encoding [
9 13f7391e 2004-05-15 devnull /.notdef
10 13f7391e 2004-05-15 devnull /.notdef
11 13f7391e 2004-05-15 devnull /.notdef
12 13f7391e 2004-05-15 devnull /.notdef
13 13f7391e 2004-05-15 devnull /.notdef
14 13f7391e 2004-05-15 devnull /.notdef
15 13f7391e 2004-05-15 devnull /.notdef
16 13f7391e 2004-05-15 devnull /.notdef
17 13f7391e 2004-05-15 devnull /.notdef
18 13f7391e 2004-05-15 devnull /.notdef
19 13f7391e 2004-05-15 devnull /.notdef
20 13f7391e 2004-05-15 devnull /.notdef
21 13f7391e 2004-05-15 devnull /.notdef
22 13f7391e 2004-05-15 devnull /.notdef
23 13f7391e 2004-05-15 devnull /.notdef
24 13f7391e 2004-05-15 devnull /.notdef
25 13f7391e 2004-05-15 devnull /.notdef
26 13f7391e 2004-05-15 devnull /.notdef
27 13f7391e 2004-05-15 devnull /.notdef
28 13f7391e 2004-05-15 devnull /.notdef
29 13f7391e 2004-05-15 devnull /.notdef
30 13f7391e 2004-05-15 devnull /.notdef
31 13f7391e 2004-05-15 devnull /.notdef
32 13f7391e 2004-05-15 devnull /.notdef
33 13f7391e 2004-05-15 devnull /.notdef
34 13f7391e 2004-05-15 devnull /.notdef
35 13f7391e 2004-05-15 devnull /.notdef
36 13f7391e 2004-05-15 devnull /.notdef
37 13f7391e 2004-05-15 devnull /.notdef
38 13f7391e 2004-05-15 devnull /.notdef
39 13f7391e 2004-05-15 devnull /.notdef
40 13f7391e 2004-05-15 devnull /.notdef
41 13f7391e 2004-05-15 devnull /space
42 13f7391e 2004-05-15 devnull /exclam
43 13f7391e 2004-05-15 devnull /quotedbl
44 13f7391e 2004-05-15 devnull /numbersign
45 13f7391e 2004-05-15 devnull /dollar
46 13f7391e 2004-05-15 devnull /percent
47 13f7391e 2004-05-15 devnull /ampersand
48 13f7391e 2004-05-15 devnull /quoteright
49 13f7391e 2004-05-15 devnull /parenleft
50 13f7391e 2004-05-15 devnull /parenright
51 13f7391e 2004-05-15 devnull /asterisk
52 13f7391e 2004-05-15 devnull /plus
53 13f7391e 2004-05-15 devnull /comma
54 13f7391e 2004-05-15 devnull /minus
55 13f7391e 2004-05-15 devnull /period
56 13f7391e 2004-05-15 devnull /slash
57 13f7391e 2004-05-15 devnull /zero
58 13f7391e 2004-05-15 devnull /one
59 13f7391e 2004-05-15 devnull /two
60 13f7391e 2004-05-15 devnull /three
61 13f7391e 2004-05-15 devnull /four
62 13f7391e 2004-05-15 devnull /five
63 13f7391e 2004-05-15 devnull /six
64 13f7391e 2004-05-15 devnull /seven
65 13f7391e 2004-05-15 devnull /eight
66 13f7391e 2004-05-15 devnull /nine
67 13f7391e 2004-05-15 devnull /colon
68 13f7391e 2004-05-15 devnull /semicolon
69 13f7391e 2004-05-15 devnull /less
70 13f7391e 2004-05-15 devnull /equal
71 13f7391e 2004-05-15 devnull /greater
72 13f7391e 2004-05-15 devnull /question
73 13f7391e 2004-05-15 devnull /at
74 13f7391e 2004-05-15 devnull /A
75 13f7391e 2004-05-15 devnull /B
76 13f7391e 2004-05-15 devnull /C
77 13f7391e 2004-05-15 devnull /D
78 13f7391e 2004-05-15 devnull /E
79 13f7391e 2004-05-15 devnull /F
80 13f7391e 2004-05-15 devnull /G
81 13f7391e 2004-05-15 devnull /H
82 13f7391e 2004-05-15 devnull /I
83 13f7391e 2004-05-15 devnull /J
84 13f7391e 2004-05-15 devnull /K
85 13f7391e 2004-05-15 devnull /L
86 13f7391e 2004-05-15 devnull /M
87 13f7391e 2004-05-15 devnull /N
88 13f7391e 2004-05-15 devnull /O
89 13f7391e 2004-05-15 devnull /P
90 13f7391e 2004-05-15 devnull /Q
91 13f7391e 2004-05-15 devnull /R
92 13f7391e 2004-05-15 devnull /S
93 13f7391e 2004-05-15 devnull /T
94 13f7391e 2004-05-15 devnull /U
95 13f7391e 2004-05-15 devnull /V
96 13f7391e 2004-05-15 devnull /W
97 13f7391e 2004-05-15 devnull /X
98 13f7391e 2004-05-15 devnull /Y
99 13f7391e 2004-05-15 devnull /Z
100 13f7391e 2004-05-15 devnull /bracketleft
101 13f7391e 2004-05-15 devnull /backslash
102 13f7391e 2004-05-15 devnull /bracketright
103 13f7391e 2004-05-15 devnull /asciicircum
104 13f7391e 2004-05-15 devnull /underscore
105 13f7391e 2004-05-15 devnull /quoteleft
106 13f7391e 2004-05-15 devnull /a
107 13f7391e 2004-05-15 devnull /b
108 13f7391e 2004-05-15 devnull /c
109 13f7391e 2004-05-15 devnull /d
110 13f7391e 2004-05-15 devnull /e
111 13f7391e 2004-05-15 devnull /f
112 13f7391e 2004-05-15 devnull /g
113 13f7391e 2004-05-15 devnull /h
114 13f7391e 2004-05-15 devnull /i
115 13f7391e 2004-05-15 devnull /j
116 13f7391e 2004-05-15 devnull /k
117 13f7391e 2004-05-15 devnull /l
118 13f7391e 2004-05-15 devnull /m
119 13f7391e 2004-05-15 devnull /n
120 13f7391e 2004-05-15 devnull /o
121 13f7391e 2004-05-15 devnull /p
122 13f7391e 2004-05-15 devnull /q
123 13f7391e 2004-05-15 devnull /r
124 13f7391e 2004-05-15 devnull /s
125 13f7391e 2004-05-15 devnull /t
126 13f7391e 2004-05-15 devnull /u
127 13f7391e 2004-05-15 devnull /v
128 13f7391e 2004-05-15 devnull /w
129 13f7391e 2004-05-15 devnull /x
130 13f7391e 2004-05-15 devnull /y
131 13f7391e 2004-05-15 devnull /z
132 13f7391e 2004-05-15 devnull /braceleft
133 13f7391e 2004-05-15 devnull /bar
134 13f7391e 2004-05-15 devnull /braceright
135 13f7391e 2004-05-15 devnull /asciitilde
136 13f7391e 2004-05-15 devnull /.notdef
137 13f7391e 2004-05-15 devnull /.notdef
138 13f7391e 2004-05-15 devnull /.notdef
139 13f7391e 2004-05-15 devnull /.notdef
140 13f7391e 2004-05-15 devnull /.notdef
141 13f7391e 2004-05-15 devnull /.notdef
142 13f7391e 2004-05-15 devnull /.notdef
143 13f7391e 2004-05-15 devnull /.notdef
144 13f7391e 2004-05-15 devnull /.notdef
145 13f7391e 2004-05-15 devnull /.notdef
146 13f7391e 2004-05-15 devnull /.notdef
147 13f7391e 2004-05-15 devnull /.notdef
148 13f7391e 2004-05-15 devnull /.notdef
149 13f7391e 2004-05-15 devnull /.notdef
150 13f7391e 2004-05-15 devnull /.notdef
151 13f7391e 2004-05-15 devnull /.notdef
152 13f7391e 2004-05-15 devnull /.notdef
153 13f7391e 2004-05-15 devnull /dotlessi
154 13f7391e 2004-05-15 devnull /grave
155 13f7391e 2004-05-15 devnull /acute
156 13f7391e 2004-05-15 devnull /circumflex
157 13f7391e 2004-05-15 devnull /tilde
158 13f7391e 2004-05-15 devnull /macron
159 13f7391e 2004-05-15 devnull /breve
160 13f7391e 2004-05-15 devnull /dotaccent
161 13f7391e 2004-05-15 devnull /dieresis
162 13f7391e 2004-05-15 devnull /.notdef
163 13f7391e 2004-05-15 devnull /ring
164 13f7391e 2004-05-15 devnull /cedilla
165 13f7391e 2004-05-15 devnull /.notdef
166 13f7391e 2004-05-15 devnull /hungarumlaut
167 13f7391e 2004-05-15 devnull /ogonek
168 13f7391e 2004-05-15 devnull /caron
169 13f7391e 2004-05-15 devnull /.notdef % was space
170 13f7391e 2004-05-15 devnull /exclamdown
171 13f7391e 2004-05-15 devnull /cent
172 13f7391e 2004-05-15 devnull /sterling
173 13f7391e 2004-05-15 devnull /currency
174 13f7391e 2004-05-15 devnull /yen
175 13f7391e 2004-05-15 devnull /brokenbar
176 13f7391e 2004-05-15 devnull /section
177 13f7391e 2004-05-15 devnull /dieresis
178 13f7391e 2004-05-15 devnull /copyright
179 13f7391e 2004-05-15 devnull /ordfeminine
180 13f7391e 2004-05-15 devnull /guillemotleft
181 13f7391e 2004-05-15 devnull /logicalnot
182 13f7391e 2004-05-15 devnull /hyphen
183 13f7391e 2004-05-15 devnull /registered
184 13f7391e 2004-05-15 devnull /macron
185 13f7391e 2004-05-15 devnull /degree
186 13f7391e 2004-05-15 devnull /plusminus
187 13f7391e 2004-05-15 devnull /twosuperior
188 13f7391e 2004-05-15 devnull /threesuperior
189 13f7391e 2004-05-15 devnull /acute
190 13f7391e 2004-05-15 devnull /mu
191 13f7391e 2004-05-15 devnull /paragraph
192 13f7391e 2004-05-15 devnull /periodcentered
193 13f7391e 2004-05-15 devnull /cedilla
194 13f7391e 2004-05-15 devnull /onesuperior
195 13f7391e 2004-05-15 devnull /ordmasculine
196 13f7391e 2004-05-15 devnull /guillemotright
197 13f7391e 2004-05-15 devnull /onequarter
198 13f7391e 2004-05-15 devnull /onehalf
199 13f7391e 2004-05-15 devnull /threequarters
200 13f7391e 2004-05-15 devnull /questiondown
201 13f7391e 2004-05-15 devnull /Agrave
202 13f7391e 2004-05-15 devnull /Aacute
203 13f7391e 2004-05-15 devnull /Acircumflex
204 13f7391e 2004-05-15 devnull /Atilde
205 13f7391e 2004-05-15 devnull /Adieresis
206 13f7391e 2004-05-15 devnull /Aring
207 13f7391e 2004-05-15 devnull /AE
208 13f7391e 2004-05-15 devnull /Ccedilla
209 13f7391e 2004-05-15 devnull /Egrave
210 13f7391e 2004-05-15 devnull /Eacute
211 13f7391e 2004-05-15 devnull /Ecircumflex
212 13f7391e 2004-05-15 devnull /Edieresis
213 13f7391e 2004-05-15 devnull /Igrave
214 13f7391e 2004-05-15 devnull /Iacute
215 13f7391e 2004-05-15 devnull /Icircumflex
216 13f7391e 2004-05-15 devnull /Idieresis
217 13f7391e 2004-05-15 devnull /Eth
218 13f7391e 2004-05-15 devnull /Ntilde
219 13f7391e 2004-05-15 devnull /Ograve
220 13f7391e 2004-05-15 devnull /Oacute
221 13f7391e 2004-05-15 devnull /Ocircumflex
222 13f7391e 2004-05-15 devnull /Otilde
223 13f7391e 2004-05-15 devnull /Odieresis
224 13f7391e 2004-05-15 devnull /multiply
225 13f7391e 2004-05-15 devnull /Oslash
226 13f7391e 2004-05-15 devnull /Ugrave
227 13f7391e 2004-05-15 devnull /Uacute
228 13f7391e 2004-05-15 devnull /Ucircumflex
229 13f7391e 2004-05-15 devnull /Udieresis
230 13f7391e 2004-05-15 devnull /Yacute
231 13f7391e 2004-05-15 devnull /Thorn
232 13f7391e 2004-05-15 devnull /germandbls
233 13f7391e 2004-05-15 devnull /agrave
234 13f7391e 2004-05-15 devnull /aacute
235 13f7391e 2004-05-15 devnull /acircumflex
236 13f7391e 2004-05-15 devnull /atilde
237 13f7391e 2004-05-15 devnull /adieresis
238 13f7391e 2004-05-15 devnull /aring
239 13f7391e 2004-05-15 devnull /ae
240 13f7391e 2004-05-15 devnull /ccedilla
241 13f7391e 2004-05-15 devnull /egrave
242 13f7391e 2004-05-15 devnull /eacute
243 13f7391e 2004-05-15 devnull /ecircumflex
244 13f7391e 2004-05-15 devnull /edieresis
245 13f7391e 2004-05-15 devnull /igrave
246 13f7391e 2004-05-15 devnull /iacute
247 13f7391e 2004-05-15 devnull /icircumflex
248 13f7391e 2004-05-15 devnull /idieresis
249 13f7391e 2004-05-15 devnull /eth
250 13f7391e 2004-05-15 devnull /ntilde
251 13f7391e 2004-05-15 devnull /ograve
252 13f7391e 2004-05-15 devnull /oacute
253 13f7391e 2004-05-15 devnull /ocircumflex
254 13f7391e 2004-05-15 devnull /otilde
255 13f7391e 2004-05-15 devnull /odieresis
256 13f7391e 2004-05-15 devnull /divide
257 13f7391e 2004-05-15 devnull /oslash
258 13f7391e 2004-05-15 devnull /ugrave
259 13f7391e 2004-05-15 devnull /uacute
260 13f7391e 2004-05-15 devnull /ucircumflex
261 13f7391e 2004-05-15 devnull /udieresis
262 13f7391e 2004-05-15 devnull /yacute
263 13f7391e 2004-05-15 devnull /thorn
264 13f7391e 2004-05-15 devnull /ydieresis
265 13f7391e 2004-05-15 devnull ] def
266 13f7391e 2004-05-15 devnull
267 13f7391e 2004-05-15 devnull /NewFontDirectory FontDirectory maxlength dict def
268 13f7391e 2004-05-15 devnull
269 13f7391e 2004-05-15 devnull %
270 13f7391e 2004-05-15 devnull % Apparently no guarantee findfont is defined in systemdict so the obvious
271 13f7391e 2004-05-15 devnull %
272 13f7391e 2004-05-15 devnull % systemdict /findfont get exec
273 13f7391e 2004-05-15 devnull %
274 13f7391e 2004-05-15 devnull % can generate an error. So far the only exception is a VT600 (version 48.0).
275 13f7391e 2004-05-15 devnull %
276 13f7391e 2004-05-15 devnull
277 13f7391e 2004-05-15 devnull userdict /@RealFindfont known not {
278 13f7391e 2004-05-15 devnull userdict begin
279 13f7391e 2004-05-15 devnull /@RealFindfont systemdict begin /findfont load end def
280 13f7391e 2004-05-15 devnull end
281 13f7391e 2004-05-15 devnull } if
282 13f7391e 2004-05-15 devnull
283 13f7391e 2004-05-15 devnull /findfont {
284 13f7391e 2004-05-15 devnull dup NewFontDirectory exch known not {
285 13f7391e 2004-05-15 devnull dup
286 13f7391e 2004-05-15 devnull %dup systemdict /findfont get exec % not always in systemdict
287 13f7391e 2004-05-15 devnull dup userdict /@RealFindfont get exec
288 13f7391e 2004-05-15 devnull dup /Encoding get StandardEncoding eq {
289 13f7391e 2004-05-15 devnull dup length 1 add dict begin
290 13f7391e 2004-05-15 devnull {1 index /FID ne {def}{pop pop} ifelse} forall
291 13f7391e 2004-05-15 devnull /Encoding UTFLatin1Encoding def
292 13f7391e 2004-05-15 devnull /Metrics 1 dict def
293 13f7391e 2004-05-15 devnull Metrics /.notdef 0 put
294 13f7391e 2004-05-15 devnull currentdict
295 13f7391e 2004-05-15 devnull end
296 13f7391e 2004-05-15 devnull /DummyFontName exch definefont
297 13f7391e 2004-05-15 devnull } if
298 13f7391e 2004-05-15 devnull NewFontDirectory 3 1 roll put
299 13f7391e 2004-05-15 devnull } if
300 13f7391e 2004-05-15 devnull NewFontDirectory exch get
301 13f7391e 2004-05-15 devnull } bind def
302 13f7391e 2004-05-15 devnull
303 13f7391e 2004-05-15 devnull %
304 13f7391e 2004-05-15 devnull % Assume A0, except for A0A0 which is replaced by 20A0, can be ignored.
305 13f7391e 2004-05-15 devnull % Works with ASCII or Latin1 because A0 has been re-encoded as a zero
306 13f7391e 2004-05-15 devnull % width non-printing character.
307 13f7391e 2004-05-15 devnull %
308 13f7391e 2004-05-15 devnull
309 13f7391e 2004-05-15 devnull /UTFstring {
310 13f7391e 2004-05-15 devnull dup {
311 13f7391e 2004-05-15 devnull (\240\240) search {
312 13f7391e 2004-05-15 devnull pop
313 13f7391e 2004-05-15 devnull 0 16#20 put
314 13f7391e 2004-05-15 devnull }{pop exit} ifelse
315 13f7391e 2004-05-15 devnull } loop
316 13f7391e 2004-05-15 devnull } bind def
317 13f7391e 2004-05-15 devnull
318 13f7391e 2004-05-15 devnull /ashow {mark 4 1 roll UTFstring //ashow cvx exec cleartomark} bind def
319 13f7391e 2004-05-15 devnull /awidthshow {mark 7 1 roll UTFstring //awidthshow cvx exec cleartomark} bind def
320 13f7391e 2004-05-15 devnull /show {mark exch UTFstring //show cvx exec cleartomark} bind def
321 13f7391e 2004-05-15 devnull /stringwidth {UTFstring //stringwidth cvx exec} bind def
322 13f7391e 2004-05-15 devnull /widthshow {mark 5 1 roll UTFstring //widthshow cvx exec cleartomark} bind def
323 13f7391e 2004-05-15 devnull
324 13f7391e 2004-05-15 devnull %
325 13f7391e 2004-05-15 devnull % kshow is harder - stack can't change because of the procedure.
326 13f7391e 2004-05-15 devnull %
327 13f7391e 2004-05-15 devnull
328 13f7391e 2004-05-15 devnull /kshow dup load type /operatortype eq
329 13f7391e 2004-05-15 devnull {{UTFstring kshow} bind}
330 13f7391e 2004-05-15 devnull {{UTFstring //kshow cvx exec} bind}
331 13f7391e 2004-05-15 devnull ifelse def
332 13f7391e 2004-05-15 devnull