Blame


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