1151497Sru/*
2151497Sru * DviChar.c
3151497Sru *
4151497Sru * Map DVI (ditroff output) character names to
5151497Sru * font indexes and back
6151497Sru */
7151497Sru
8151497Sru#include <stdlib.h>
9151497Sru#include <string.h>
10151497Sru#include "DviChar.h"
11151497Sru
12151497Sruextern char *xmalloc(int);
13151497Sru
14151497Sru#define allocHash() ((DviCharNameHash *) xmalloc (sizeof (DviCharNameHash)))
15151497Sru
16151497Srustruct map_list {
17151497Sru	struct map_list	*next;
18151497Sru	DviCharNameMap	*map;
19151497Sru};
20151497Sru
21151497Srustatic struct map_list	*world;
22151497Sru
23151497Srustatic int	standard_maps_loaded = 0;
24151497Srustatic void	load_standard_maps (void);
25151497Srustatic int	hash_name (const char *);
26151497Srustatic void	dispose_hash(DviCharNameMap *);
27151497Srustatic void	compute_hash(DviCharNameMap *);
28151497Sru
29151497SruDviCharNameMap *
30151497SruDviFindMap (char *encoding)
31151497Sru{
32151497Sru	struct map_list	*m;
33151497Sru
34151497Sru	if (!standard_maps_loaded)
35151497Sru		load_standard_maps ();
36151497Sru	for (m = world; m; m=m->next)
37151497Sru		if (!strcmp (m->map->encoding, encoding))
38151497Sru			return m->map;
39151497Sru	return 0;
40151497Sru}
41151497Sru
42151497Sruvoid
43151497SruDviRegisterMap (DviCharNameMap *map)
44151497Sru{
45151497Sru	struct map_list	*m;
46151497Sru
47151497Sru	if (!standard_maps_loaded)
48151497Sru		load_standard_maps ();
49151497Sru	for (m = world; m; m = m->next)
50151497Sru		if (!strcmp (m->map->encoding, map->encoding))
51151497Sru			break;
52151497Sru	if (!m) {
53151497Sru		m = (struct map_list *) xmalloc (sizeof *m);
54151497Sru		m->next = world;
55151497Sru		world = m;
56151497Sru	}
57151497Sru	dispose_hash (map);
58151497Sru	m->map = map;
59151497Sru	compute_hash (map);
60151497Sru}
61151497Sru
62151497Srustatic void
63151497Srudispose_hash (DviCharNameMap *map)
64151497Sru{
65151497Sru	DviCharNameHash	**buckets;
66151497Sru	DviCharNameHash	*h, *next;
67151497Sru	int		i;
68151497Sru
69151497Sru	buckets = map->buckets;
70151497Sru	for (i = 0; i < DVI_HASH_SIZE; i++) {
71151497Sru		for (h = buckets[i]; h; h=next) {
72151497Sru			next = h->next;
73151497Sru			free (h);
74151497Sru		}
75151497Sru	}
76151497Sru}
77151497Sru
78151497Srustatic int
79151497Sruhash_name (const char *name)
80151497Sru{
81151497Sru	int	i = 0;
82151497Sru
83151497Sru	while (*name)
84151497Sru		i = (i << 1) ^ *name++;
85151497Sru	if (i < 0)
86151497Sru		i = -i;
87151497Sru	return i;
88151497Sru}
89151497Sru
90151497Srustatic void
91151497Srucompute_hash (DviCharNameMap *map)
92151497Sru{
93151497Sru	DviCharNameHash	**buckets;
94151497Sru	int		c, s, i;
95151497Sru	DviCharNameHash	*h;
96151497Sru
97151497Sru	buckets = map->buckets;
98151497Sru	for (i = 0; i < DVI_HASH_SIZE; i++)
99151497Sru		buckets[i] = 0;
100151497Sru	for (c = 0; c < DVI_MAP_SIZE; c++)
101151497Sru		for (s = 0; s < DVI_MAX_SYNONYMS; s++) {
102151497Sru			if (!map->dvi_names[c][s])
103151497Sru				break;
104151497Sru			i = hash_name (map->dvi_names[c][s]) % DVI_HASH_SIZE;
105151497Sru			h = allocHash ();
106151497Sru			h->next = buckets[i];
107151497Sru			buckets[i] = h;
108151497Sru			h->name = map->dvi_names[c][s];
109151497Sru			h->position = c;
110151497Sru		}
111151497Sru
112151497Sru}
113151497Sru
114151497Sruint
115151497SruDviCharIndex (DviCharNameMap *map, const char *name)
116151497Sru{
117151497Sru	int		i;
118151497Sru	DviCharNameHash	*h;
119151497Sru
120151497Sru	i = hash_name (name) % DVI_HASH_SIZE;
121151497Sru	for (h = map->buckets[i]; h; h=h->next)
122151497Sru		if (!strcmp (h->name, name))
123151497Sru			return h->position;
124151497Sru	return -1;
125151497Sru}
126151497Sru
127151497Srustatic DviCharNameMap ISO8859_1_map = {
128151497Sru	"iso8859-1",
129151497Sru	0,
130151497Sru{
131151497Sru{	0,			/* 0 */},
132151497Sru{	0,			/* 1 */},
133151497Sru{	0,			/* 2 */},
134151497Sru{	0,			/* 3 */},
135151497Sru{	0,			/* 4 */},
136151497Sru{	0,			/* 5 */},
137151497Sru{	0,			/* 6 */},
138151497Sru{	0,			/* 7 */},
139151497Sru{	0,			/* 8 */},
140151497Sru{	0,			/* 9 */},
141151497Sru{	0,			/* 10 */},
142151497Sru{	0,			/* 11 */},
143151497Sru{	0,			/* 12 */},
144151497Sru{	0,			/* 13 */},
145151497Sru{	0,			/* 14 */},
146151497Sru{	0,			/* 15 */},
147151497Sru{	0,			/* 16 */},
148151497Sru{	0,			/* 17 */},
149151497Sru{	0,			/* 18 */},
150151497Sru{	0,			/* 19 */},
151151497Sru{	0,			/* 20 */},
152151497Sru{	0,			/* 21 */},
153151497Sru{	0,			/* 22 */},
154151497Sru{	0,			/* 23 */},
155151497Sru{	0,			/* 24 */},
156151497Sru{	0,			/* 25 */},
157151497Sru{	0,			/* 26 */},
158151497Sru{	0,			/* 27 */},
159151497Sru{	0,			/* 28 */},
160151497Sru{	0,			/* 29 */},
161151497Sru{	0,			/* 30 */},
162151497Sru{	0,			/* 31 */},
163151497Sru{	0,			/* 32 */},
164151497Sru{	"!",			/* 33 */},
165151497Sru{	"\"", "dq",		/* 34 */},
166151497Sru{	"#", "sh",		/* 35 */},
167151497Sru{	"$", "Do",		/* 36 */},
168151497Sru{	"%",			/* 37 */},
169151497Sru{	"&",			/* 38 */},
170151497Sru{	"'", "cq",		/* 39 */},
171151497Sru{	"(",			/* 40 */},
172151497Sru{	")",			/* 41 */},
173151497Sru{	"*",			/* 42 */},
174151497Sru{	"+",			/* 43 */},
175151497Sru{	",",			/* 44 */},
176151497Sru{	"\\-",			/* 45 */},
177151497Sru{	".",			/* 46 */},
178151497Sru{	"/", "sl",		/* 47 */},
179151497Sru{	"0",			/* 48 */},
180151497Sru{	"1",			/* 49 */},
181151497Sru{	"2",			/* 50 */},
182151497Sru{	"3",			/* 51 */},
183151497Sru{	"4",			/* 52 */},
184151497Sru{	"5",			/* 53 */},
185151497Sru{	"6",			/* 54 */},
186151497Sru{	"7",			/* 55 */},
187151497Sru{	"8",			/* 56 */},
188151497Sru{	"9",			/* 57 */},
189151497Sru{	":",			/* 58 */},
190151497Sru{	";",			/* 59 */},
191151497Sru{	"<",			/* 60 */},
192151497Sru{	"=",			/* 61 */},
193151497Sru{	">",			/* 62 */},
194151497Sru{	"?",			/* 63 */},
195151497Sru{	"@", "at",		/* 64 */},
196151497Sru{	"A",			/* 65 */},
197151497Sru{	"B",			/* 66 */},
198151497Sru{	"C",			/* 67 */},
199151497Sru{	"D",			/* 68 */},
200151497Sru{	"E",			/* 69 */},
201151497Sru{	"F",			/* 70 */},
202151497Sru{	"G",			/* 71 */},
203151497Sru{	"H",			/* 72 */},
204151497Sru{	"I",			/* 73 */},
205151497Sru{	"J",			/* 74 */},
206151497Sru{	"K",			/* 75 */},
207151497Sru{	"L",			/* 76 */},
208151497Sru{	"M",			/* 77 */},
209151497Sru{	"N",			/* 78 */},
210151497Sru{	"O",			/* 79 */},
211151497Sru{	"P",			/* 80 */},
212151497Sru{	"Q",			/* 81 */},
213151497Sru{	"R",			/* 82 */},
214151497Sru{	"S",			/* 83 */},
215151497Sru{	"T",			/* 84 */},
216151497Sru{	"U",			/* 85 */},
217151497Sru{	"V",			/* 86 */},
218151497Sru{	"W",			/* 87 */},
219151497Sru{	"X",			/* 88 */},
220151497Sru{	"Y",			/* 89 */},
221151497Sru{	"Z",			/* 90 */},
222151497Sru{	"[", "lB",		/* 91 */},
223151497Sru{	"\\", "rs",		/* 92 */},
224151497Sru{	"]", "rB",		/* 93 */},
225151497Sru{	"^", "a^", "ha",	/* 94 */},
226151497Sru{	"_",			/* 95 */},
227151497Sru{	"`", "oq",		/* 96 */},
228151497Sru{	"a",			/* 97 */},
229151497Sru{	"b",			/* 98 */},
230151497Sru{	"c",			/* 99 */},
231151497Sru{	"d",			/* 100 */},
232151497Sru{	"e",			/* 101 */},
233151497Sru{	"f",			/* 102 */},
234151497Sru{	"g",			/* 103 */},
235151497Sru{	"h",			/* 104 */},
236151497Sru{	"i",			/* 105 */},
237151497Sru{	"j",			/* 106 */},
238151497Sru{	"k",			/* 107 */},
239151497Sru{	"l",			/* 108 */},
240151497Sru{	"m",			/* 109 */},
241151497Sru{	"n",			/* 110 */},
242151497Sru{	"o",			/* 111 */},
243151497Sru{	"p",			/* 112 */},
244151497Sru{	"q",			/* 113 */},
245151497Sru{	"r",			/* 114 */},
246151497Sru{	"s",			/* 115 */},
247151497Sru{	"t",			/* 116 */},
248151497Sru{	"u",			/* 117 */},
249151497Sru{	"v",			/* 118 */},
250151497Sru{	"w",			/* 119 */},
251151497Sru{	"x",			/* 120 */},
252151497Sru{	"y",			/* 121 */},
253151497Sru{	"z",			/* 122 */},
254151497Sru{	"{", "lC",		/* 123 */},
255151497Sru{	"|", "ba",		/* 124 */},
256151497Sru{	"}", "rC",		/* 125 */},
257151497Sru{	"~", "a~", "ti",	/* 126 */},
258151497Sru{	0,			/* 127 */},
259151497Sru{	0,			/* 128 */},
260151497Sru{	0,			/* 129 */},
261151497Sru{	0,			/* 130 */},
262151497Sru{	0,			/* 131 */},
263151497Sru{	0,			/* 132 */},
264151497Sru{	0,			/* 133 */},
265151497Sru{	0,			/* 134 */},
266151497Sru{	0,			/* 135 */},
267151497Sru{	0,			/* 136 */},
268151497Sru{	0,			/* 137 */},
269151497Sru{	0,			/* 138 */},
270151497Sru{	0,			/* 139 */},
271151497Sru{	0,			/* 140 */},
272151497Sru{	0,			/* 141 */},
273151497Sru{	0,			/* 142 */},
274151497Sru{	0,			/* 143 */},
275151497Sru{	0,			/* 144 */},
276151497Sru{	0,			/* 145 */},
277151497Sru{	0,			/* 146 */},
278151497Sru{	0,			/* 147 */},
279151497Sru{	0,			/* 148 */},
280151497Sru{	0,			/* 149 */},
281151497Sru{	0,			/* 150 */},
282151497Sru{	0,			/* 151 */},
283151497Sru{	0,			/* 152 */},
284151497Sru{	0,			/* 153 */},
285151497Sru{	0,			/* 154 */},
286151497Sru{	0,			/* 155 */},
287151497Sru{	0,			/* 156 */},
288151497Sru{	0,			/* 157 */},
289151497Sru{	0,			/* 158 */},
290151497Sru{	0,			/* 159 */},
291151497Sru{	0,			/* 160 */},
292151497Sru{	"r!",			/* 161 */},
293151497Sru{	"ct",			/* 162 */},
294151497Sru{	"Po",			/* 163 */},
295151497Sru{	"Cs",			/* 164 */},
296151497Sru{	"Ye",			/* 165 */},
297151497Sru{	"bb",			/* 166 */},
298151497Sru{	"sc",			/* 167 */},
299151497Sru{	"ad",			/* 168 */},
300151497Sru{	"co",			/* 169 */},
301151497Sru{	"Of",			/* 170 */},
302151497Sru{	"Fo",			/* 171 */},
303151497Sru{	"tno",			/* 172 */},
304151497Sru{	"-", "hy",		/* 173 */},
305151497Sru{	"rg",			/* 174 */},
306151497Sru{	"a-",			/* 175 */},
307151497Sru{	"de",			/* 176 */},
308151497Sru{	"t+-",			/* 177 */},
309151497Sru{	"S2",			/* 178 */},
310151497Sru{	"S3",			/* 179 */},
311151497Sru{	"aa",			/* 180 */},
312151497Sru{	"mc",			/* 181 */},
313151497Sru{	"ps",			/* 182 */},
314151497Sru{	"pc",			/* 183 */},
315151497Sru{	"ac",			/* 184 */},
316151497Sru{	"S1",			/* 185 */},
317151497Sru{	"Om",			/* 186 */},
318151497Sru{	"Fc",			/* 187 */},
319151497Sru{	"14",			/* 188 */},
320151497Sru{	"12",			/* 189 */},
321151497Sru{	"34",			/* 190 */},
322151497Sru{	"r?",			/* 191 */},
323151497Sru{	"`A",			/* 192 */},
324151497Sru{	"'A",			/* 193 */},
325151497Sru{	"^A",			/* 194 */},
326151497Sru{	"~A",			/* 195 */},
327151497Sru{	":A",			/* 196 */},
328151497Sru{	"oA",			/* 197 */},
329151497Sru{	"AE",			/* 198 */},
330151497Sru{	",C",			/* 199 */},
331151497Sru{	"`E",			/* 200 */},
332151497Sru{	"'E",			/* 201 */},
333151497Sru{	"^E",			/* 202 */},
334151497Sru{	":E",			/* 203 */},
335151497Sru{	"`I",			/* 204 */},
336151497Sru{	"'I",			/* 205 */},
337151497Sru{	"^I",			/* 206 */},
338151497Sru{	":I",			/* 207 */},
339151497Sru{	"-D",			/* 208 */},
340151497Sru{	"~N",			/* 209 */},
341151497Sru{	"`O",			/* 210 */},
342151497Sru{	"'O",			/* 211 */},
343151497Sru{	"^O",			/* 212 */},
344151497Sru{	"~O",			/* 213 */},
345151497Sru{	":O",			/* 214 */},
346151497Sru{	"tmu",			/* 215 */},
347151497Sru{	"/O",			/* 216 */},
348151497Sru{	"`U",			/* 217 */},
349151497Sru{	"'U",			/* 218 */},
350151497Sru{	"^U",			/* 219 */},
351151497Sru{	":U",			/* 220 */},
352151497Sru{	"'Y",			/* 221 */},
353151497Sru{	"TP",			/* 222 */},
354151497Sru{	"ss",			/* 223 */},
355151497Sru{	"`a",			/* 224 */},
356151497Sru{	"'a",			/* 225 */},
357151497Sru{	"^a",			/* 226 */},
358151497Sru{	"~a",			/* 227 */},
359151497Sru{	":a",			/* 228 */},
360151497Sru{	"oa",			/* 229 */},
361151497Sru{	"ae",			/* 230 */},
362151497Sru{	",c",			/* 231 */},
363151497Sru{	"`e",			/* 232 */},
364151497Sru{	"'e",			/* 233 */},
365151497Sru{	"^e",			/* 234 */},
366151497Sru{	":e",			/* 235 */},
367151497Sru{	"`i",			/* 236 */},
368151497Sru{	"'i",			/* 237 */},
369151497Sru{	"^i",			/* 238 */},
370151497Sru{	":i",			/* 239 */},
371151497Sru{	"Sd",			/* 240 */},
372151497Sru{	"~n",			/* 241 */},
373151497Sru{	"`o",			/* 242 */},
374151497Sru{	"'o",			/* 243 */},
375151497Sru{	"^o",			/* 244 */},
376151497Sru{	"~o",			/* 245 */},
377151497Sru{	":o",			/* 246 */},
378151497Sru{	"tdi",			/* 247 */},
379151497Sru{	"/o",			/* 248 */},
380151497Sru{	"`u",			/* 249 */},
381151497Sru{	"'u",			/* 250 */},
382151497Sru{	"^u",			/* 251 */},
383151497Sru{	":u",			/* 252 */},
384151497Sru{	"'y",			/* 253 */},
385151497Sru{	"Tp",			/* 254 */},
386151497Sru{	":y",			/* 255 */},
387151497Sru}};
388151497Sru
389151497Srustatic DviCharNameMap Adobe_Symbol_map = {
390151497Sru	"adobe-fontspecific",
391151497Sru	1,
392151497Sru{
393151497Sru{	0,						/* 0 */},
394151497Sru{	0,						/* 1 */},
395151497Sru{	0,						/* 2 */},
396151497Sru{	0,						/* 3 */},
397151497Sru{	0,						/* 4 */},
398151497Sru{	0,						/* 5 */},
399151497Sru{	0,						/* 6 */},
400151497Sru{	0,						/* 7 */},
401151497Sru{	0,						/* 8 */},
402151497Sru{	0,						/* 9 */},
403151497Sru{	0,						/* 10 */},
404151497Sru{	0,						/* 11 */},
405151497Sru{	0,						/* 12 */},
406151497Sru{	0,						/* 13 */},
407151497Sru{	0,						/* 14 */},
408151497Sru{	0,						/* 15 */},
409151497Sru{	0,						/* 16 */},
410151497Sru{	0,						/* 17 */},
411151497Sru{	0,						/* 18 */},
412151497Sru{	0,						/* 19 */},
413151497Sru{	0,						/* 20 */},
414151497Sru{	0,						/* 21 */},
415151497Sru{	0,						/* 22 */},
416151497Sru{	0,						/* 23 */},
417151497Sru{	0,						/* 24 */},
418151497Sru{	0,						/* 25 */},
419151497Sru{	0,						/* 26 */},
420151497Sru{	0,						/* 27 */},
421151497Sru{	0,						/* 28 */},
422151497Sru{	0,						/* 29 */},
423151497Sru{	0,						/* 30 */},
424151497Sru{	0,						/* 31 */},
425151497Sru{	0,						/* 32 */},
426151497Sru{	"!",						/* 33 */},
427151497Sru{	"fa",						/* 34 */},
428151497Sru{	"#", "sh",					/* 35 */},
429151497Sru{	"te",						/* 36 */},
430151497Sru{	"%",						/* 37 */},
431151497Sru{	"&",						/* 38 */},
432151497Sru{	"st",						/* 39 */},
433151497Sru{	"(",						/* 40 */},
434151497Sru{	")",						/* 41 */},
435151497Sru{	"**",						/* 42 */},
436151497Sru{	"+", "pl",					/* 43 */},
437151497Sru{	",",						/* 44 */},
438151497Sru{	"\\-", "mi",					/* 45 */},
439151497Sru{	".",						/* 46 */},
440151497Sru{	"/", "sl",					/* 47 */},
441151497Sru{	"0",						/* 48 */},
442151497Sru{	"1",						/* 49 */},
443151497Sru{	"2",						/* 50 */},
444151497Sru{	"3",						/* 51 */},
445151497Sru{	"4",						/* 52 */},
446151497Sru{	"5",						/* 53 */},
447151497Sru{	"6",						/* 54 */},
448151497Sru{	"7",						/* 55 */},
449151497Sru{	"8",						/* 56 */},
450151497Sru{	"9",						/* 57 */},
451151497Sru{	":",						/* 58 */},
452151497Sru{	";",						/* 59 */},
453151497Sru{	"<",						/* 60 */},
454151497Sru{	"=", "eq",					/* 61 */},
455151497Sru{	">",						/* 62 */},
456151497Sru{	"?",						/* 63 */},
457151497Sru{	"=~",						/* 64 */},
458151497Sru{	"*A",						/* 65 */},
459151497Sru{	"*B",						/* 66 */},
460151497Sru{	"*X",						/* 67 */},
461151497Sru{	"*D",						/* 68 */},
462151497Sru{	"*E",						/* 69 */},
463151497Sru{	"*F",						/* 70 */},
464151497Sru{	"*G",						/* 71 */},
465151497Sru{	"*Y",						/* 72 */},
466151497Sru{	"*I",						/* 73 */},
467151497Sru{	"+h",						/* 74 */},
468151497Sru{	"*K",						/* 75 */},
469151497Sru{	"*L",						/* 76 */},
470151497Sru{	"*M",						/* 77 */},
471151497Sru{	"*N",						/* 78 */},
472151497Sru{	"*O",						/* 79 */},
473151497Sru{	"*P",						/* 80 */},
474151497Sru{	"*H",						/* 81 */},
475151497Sru{	"*R",						/* 82 */},
476151497Sru{	"*S",						/* 83 */},
477151497Sru{	"*T",						/* 84 */},
478151497Sru{	0,						/* 85 */},
479151497Sru{	"ts",						/* 86 */},
480151497Sru{	"*W",						/* 87 */},
481151497Sru{	"*C",						/* 88 */},
482151497Sru{	"*Q",						/* 89 */},
483151497Sru{	"*Z",						/* 90 */},
484151497Sru{	"[", "lB",					/* 91 */},
485151497Sru{	"tf", "3d",					/* 92 */},
486151497Sru{	"]", "rB",					/* 93 */},
487151497Sru{	"pp",						/* 94 */},
488151497Sru{	"_",						/* 95 */},
489151497Sru{	"radicalex",					/* 96 */},
490151497Sru{	"*a",						/* 97 */},
491151497Sru{	"*b",						/* 98 */},
492151497Sru{	"*x",						/* 99 */},
493151497Sru{	"*d",						/* 100 */},
494151497Sru{	"*e",						/* 101 */},
495151497Sru{	"*f",						/* 102 */},
496151497Sru{	"*g",						/* 103 */},
497151497Sru{	"*y",						/* 104 */},
498151497Sru{	"*i",						/* 105 */},
499151497Sru{	"+f",						/* 106 */},
500151497Sru{	"*k",						/* 107 */},
501151497Sru{	"*l",						/* 108 */},
502151497Sru{	"*m",						/* 109 */},
503151497Sru{	"*n",						/* 110 */},
504151497Sru{	"*o",						/* 111 */},
505151497Sru{	"*p",						/* 112 */},
506151497Sru{	"*h",						/* 113 */},
507151497Sru{	"*r",						/* 114 */},
508151497Sru{	"*s",						/* 115 */},
509151497Sru{	"*t",						/* 116 */},
510151497Sru{	"*u",						/* 117 */},
511151497Sru{	"+p",						/* 118 */},
512151497Sru{	"*w",						/* 119 */},
513151497Sru{	"*c",						/* 120 */},
514151497Sru{	"*q",						/* 121 */},
515151497Sru{	"*z",						/* 122 */},
516151497Sru{	"lC", "{",					/* 123 */},
517151497Sru{	"ba", "|",					/* 124 */},
518151497Sru{	"rC", "}",					/* 125 */},
519151497Sru{	"ap",						/* 126 */},
520151497Sru{	0,						/* 127 */},
521151497Sru{	0,						/* 128 */},
522151497Sru{	0,						/* 129 */},
523151497Sru{	0,						/* 130 */},
524151497Sru{	0,						/* 131 */},
525151497Sru{	0,						/* 132 */},
526151497Sru{	0,						/* 133 */},
527151497Sru{	0,						/* 134 */},
528151497Sru{	0,						/* 135 */},
529151497Sru{	0,						/* 136 */},
530151497Sru{	0,						/* 137 */},
531151497Sru{	0,						/* 138 */},
532151497Sru{	0,						/* 139 */},
533151497Sru{	0,						/* 140 */},
534151497Sru{	0,						/* 141 */},
535151497Sru{	0,						/* 142 */},
536151497Sru{	0,						/* 143 */},
537151497Sru{	0,						/* 144 */},
538151497Sru{	0,						/* 145 */},
539151497Sru{	0,						/* 146 */},
540151497Sru{	0,						/* 147 */},
541151497Sru{	0,						/* 148 */},
542151497Sru{	0,						/* 149 */},
543151497Sru{	0,						/* 150 */},
544151497Sru{	0,						/* 151 */},
545151497Sru{	0,						/* 152 */},
546151497Sru{	0,						/* 153 */},
547151497Sru{	0,						/* 154 */},
548151497Sru{	0,						/* 155 */},
549151497Sru{	0,						/* 156 */},
550151497Sru{	0,						/* 157 */},
551151497Sru{	0,						/* 158 */},
552151497Sru{	0,						/* 159 */},
553151497Sru{	0,						/* 160 */},
554151497Sru{	"*U",						/* 161 */},
555151497Sru{	"fm",						/* 162 */},
556151497Sru{	"<=",						/* 163 */},
557151497Sru{	"f/",						/* 164 */},
558151497Sru{	"if",						/* 165 */},
559151497Sru{	"Fn",						/* 166 */},
560151497Sru{	"CL",						/* 167 */},
561151497Sru{	"DI",						/* 168 */},
562151497Sru{	"HE",						/* 169 */},
563151497Sru{	"SP",						/* 170 */},
564151497Sru{	"<>",						/* 171 */},
565151497Sru{	"<-",						/* 172 */},
566151497Sru{	"ua", "arrowverttp",				/* 173 */},
567151497Sru{	"->",						/* 174 */},
568151497Sru{	"da", "arrowvertbt",				/* 175 */},
569151497Sru{	"de",						/* 176 */},
570151497Sru{	"+-",						/* 177 */},
571151497Sru{	"sd",						/* 178 */},
572151497Sru{	">=",						/* 179 */},
573151497Sru{	"mu",						/* 180 */},
574151497Sru{	"pt",						/* 181 */},
575151497Sru{	"pd",						/* 182 */},
576151497Sru{	"bu",						/* 183 */},
577151497Sru{	"di",						/* 184 */},
578151497Sru{	"!=",						/* 185 */},
579151497Sru{	"==",						/* 186 */},
580151497Sru{	"~=", "~~",					/* 187 */},
581151497Sru{	0,						/* 188 */},
582151497Sru{	"arrowvertex",					/* 189 */},
583151497Sru{	"an",						/* 190 */},
584151497Sru{	"CR",						/* 191 */},
585151497Sru{	"Ah",						/* 192 */},
586151497Sru{	"Im",						/* 193 */},
587151497Sru{	"Re",						/* 194 */},
588151497Sru{	"wp",						/* 195 */},
589151497Sru{	"c*",						/* 196 */},
590151497Sru{	"c+",						/* 197 */},
591151497Sru{	"es",						/* 198 */},
592151497Sru{	"ca",						/* 199 */},
593151497Sru{	"cu",						/* 200 */},
594151497Sru{	"sp",						/* 201 */},
595151497Sru{	"ip",						/* 202 */},
596151497Sru{	"nb",						/* 203 */},
597151497Sru{	"sb",						/* 204 */},
598151497Sru{	"ib",						/* 205 */},
599151497Sru{	"mo",						/* 206 */},
600151497Sru{	"nm",						/* 207 */},
601151497Sru{	"/_",						/* 208 */},
602151497Sru{	"gr",						/* 209 */},
603151497Sru{	"rg",						/* 210 */},
604151497Sru{	"co",						/* 211 */},
605151497Sru{	"tm",						/* 212 */},
606151497Sru{	0,						/* 213 */},
607151497Sru{	"sr", "sqrt",					/* 214 */},
608151497Sru{	"md",						/* 215 */},
609151497Sru{	"no",						/* 216 */},
610151497Sru{	"AN",						/* 217 */},
611151497Sru{	"OR",						/* 218 */},
612151497Sru{	"hA",						/* 219 */},
613151497Sru{	"lA",						/* 220 */},
614151497Sru{	"uA",						/* 221 */},
615151497Sru{	"rA",						/* 222 */},
616151497Sru{	"dA",						/* 223 */},
617151497Sru{	"lz",						/* 224 */},
618151497Sru{	"la",						/* 225 */},
619151497Sru{	0,						/* 226 */},
620151497Sru{	0,						/* 227 */},
621151497Sru{	0,						/* 228 */},
622151497Sru{	0,						/* 229 */},
623151497Sru{	"parenlefttp",					/* 230 */},
624151497Sru{	"parenleftex",					/* 231 */},
625151497Sru{	"parenleftbt",					/* 232 */},
626151497Sru{	"bracketlefttp", "lc",				/* 233 */},
627151497Sru{	"bracketleftex",				/* 234 */},
628151497Sru{	"bracketleftbt", "lf",				/* 235 */},
629151497Sru{	"bracelefttp", "lt",				/* 236 */},
630151497Sru{	"braceleftmid", "lk",				/* 237 */},
631151497Sru{	"braceleftbt", "lb",				/* 238 */},
632151497Sru{	"bracerightex", "braceleftex", "braceex", "bv",	/* 239 */},
633151497Sru{	0,						/* 240 */},
634151497Sru{	"ra",						/* 241 */},
635151497Sru{	"is", "integral",				/* 242 */},
636151497Sru{	0,						/* 243 */},
637151497Sru{	0,						/* 244 */},
638151497Sru{	0,						/* 245 */},
639151497Sru{	"parenrighttp",					/* 246 */},
640151497Sru{	"parenrightex",					/* 247 */},
641151497Sru{	"parenrightbt",					/* 248 */},
642151497Sru{	"bracketrighttp", "rc",				/* 249 */},
643151497Sru{	"bracketrightex",				/* 250 */},
644151497Sru{	"bracketrightbt", "rf",				/* 251 */},
645151497Sru{	"bracerighttp", "rt",				/* 252 */},
646151497Sru{	"bracerightmid", "rk",				/* 253 */},
647151497Sru{	"bracerightbt", "rb",				/* 254 */},
648151497Sru{	0,						/* 255 */},
649151497Sru}};
650151497Sru
651151497Sru
652151497Srustatic void
653151497Sruload_standard_maps (void)
654151497Sru{
655151497Sru	standard_maps_loaded = 1;
656151497Sru	DviRegisterMap (&ISO8859_1_map);
657151497Sru	DviRegisterMap (&Adobe_Symbol_map);
658151497Sru}
659