DviChar.c revision 151497
1234353Sdim/*
2193323Sed * DviChar.c
3193323Sed *
4193323Sed * Map DVI (ditroff output) character names to
5193323Sed * font indexes and back
6193323Sed */
7193323Sed
8193323Sed#include <stdlib.h>
9193323Sed#include <string.h>
10193323Sed#include "DviChar.h"
11193323Sed
12193323Sedextern char *xmalloc(int);
13193323Sed
14193323Sed#define allocHash() ((DviCharNameHash *) xmalloc (sizeof (DviCharNameHash)))
15193323Sed
16193323Sedstruct map_list {
17193323Sed	struct map_list	*next;
18193323Sed	DviCharNameMap	*map;
19224145Sdim};
20224145Sdim
21224145Sdimstatic struct map_list	*world;
22218893Sdim
23224145Sdimstatic int	standard_maps_loaded = 0;
24224145Sdimstatic void	load_standard_maps (void);
25224145Sdimstatic int	hash_name (const char *);
26193323Sedstatic void	dispose_hash(DviCharNameMap *);
27193323Sedstatic void	compute_hash(DviCharNameMap *);
28193323Sed
29193323SedDviCharNameMap *
30224145SdimDviFindMap (char *encoding)
31193323Sed{
32224145Sdim	struct map_list	*m;
33224145Sdim
34224145Sdim	if (!standard_maps_loaded)
35224145Sdim		load_standard_maps ();
36224145Sdim	for (m = world; m; m=m->next)
37224145Sdim		if (!strcmp (m->map->encoding, encoding))
38224145Sdim			return m->map;
39193323Sed	return 0;
40212904Sdim}
41263508Sdim
42263508Sdimvoid
43205218SrdivackyDviRegisterMap (DviCharNameMap *map)
44205218Srdivacky{
45243830Sdim	struct map_list	*m;
46243830Sdim
47243830Sdim	if (!standard_maps_loaded)
48263508Sdim		load_standard_maps ();
49263508Sdim	for (m = world; m; m = m->next)
50263508Sdim		if (!strcmp (m->map->encoding, map->encoding))
51218893Sdim			break;
52218893Sdim	if (!m) {
53208599Srdivacky		m = (struct map_list *) xmalloc (sizeof *m);
54208599Srdivacky		m->next = world;
55243830Sdim		world = m;
56243830Sdim	}
57243830Sdim	dispose_hash (map);
58212904Sdim	m->map = map;
59208599Srdivacky	compute_hash (map);
60212904Sdim}
61212904Sdim
62210299Sedstatic void
63210299Seddispose_hash (DviCharNameMap *map)
64212904Sdim{
65212904Sdim	DviCharNameHash	**buckets;
66263508Sdim	DviCharNameHash	*h, *next;
67263508Sdim	int		i;
68251662Sdim
69251662Sdim	buckets = map->buckets;
70263508Sdim	for (i = 0; i < DVI_HASH_SIZE; i++) {
71263508Sdim		for (h = buckets[i]; h; h=next) {
72263508Sdim			next = h->next;
73263508Sdim			free (h);
74263508Sdim		}
75193323Sed	}
76218893Sdim}
77218893Sdim
78206083Srdivackystatic int
79218893Sdimhash_name (const char *name)
80218893Sdim{
81221345Sdim	int	i = 0;
82221345Sdim
83221345Sdim	while (*name)
84221345Sdim		i = (i << 1) ^ *name++;
85221345Sdim	if (i < 0)
86221345Sdim		i = -i;
87206083Srdivacky	return i;
88206083Srdivacky}
89206083Srdivacky
90206083Srdivackystatic void
91206083Srdivackycompute_hash (DviCharNameMap *map)
92206083Srdivacky{
93212904Sdim	DviCharNameHash	**buckets;
94212904Sdim	int		c, s, i;
95212904Sdim	DviCharNameHash	*h;
96206083Srdivacky
97221345Sdim	buckets = map->buckets;
98221345Sdim	for (i = 0; i < DVI_HASH_SIZE; i++)
99221345Sdim		buckets[i] = 0;
100221345Sdim	for (c = 0; c < DVI_MAP_SIZE; c++)
101221345Sdim		for (s = 0; s < DVI_MAX_SYNONYMS; s++) {
102221345Sdim			if (!map->dvi_names[c][s])
103221345Sdim				break;
104221345Sdim			i = hash_name (map->dvi_names[c][s]) % DVI_HASH_SIZE;
105249423Sdim			h = allocHash ();
106249423Sdim			h->next = buckets[i];
107249423Sdim			buckets[i] = h;
108249423Sdim			h->name = map->dvi_names[c][s];
109234353Sdim			h->position = c;
110234353Sdim		}
111234353Sdim
112234353Sdim}
113234353Sdim
114224145Sdimint
115224145SdimDviCharIndex (DviCharNameMap *map, const char *name)
116226633Sdim{
117224145Sdim	int		i;
118218893Sdim	DviCharNameHash	*h;
119218893Sdim
120218893Sdim	i = hash_name (name) % DVI_HASH_SIZE;
121212904Sdim	for (h = map->buckets[i]; h; h=h->next)
122263508Sdim		if (!strcmp (h->name, name))
123263508Sdim			return h->position;
124263508Sdim	return -1;
125263508Sdim}
126263508Sdim
127263508Sdimstatic DviCharNameMap ISO8859_1_map = {
128263508Sdim	"iso8859-1",
129263508Sdim	0,
130226633Sdim{
131226633Sdim{	0,			/* 0 */},
132263508Sdim{	0,			/* 1 */},
133263508Sdim{	0,			/* 2 */},
134263508Sdim{	0,			/* 3 */},
135263508Sdim{	0,			/* 4 */},
136263508Sdim{	0,			/* 5 */},
137263508Sdim{	0,			/* 6 */},
138263508Sdim{	0,			/* 7 */},
139263508Sdim{	0,			/* 8 */},
140249423Sdim{	0,			/* 9 */},
141249423Sdim{	0,			/* 10 */},
142249423Sdim{	0,			/* 11 */},
143249423Sdim{	0,			/* 12 */},
144249423Sdim{	0,			/* 13 */},
145224145Sdim{	0,			/* 14 */},
146224145Sdim{	0,			/* 15 */},
147224145Sdim{	0,			/* 16 */},
148224145Sdim{	0,			/* 17 */},
149224145Sdim{	0,			/* 18 */},
150224145Sdim{	0,			/* 19 */},
151224145Sdim{	0,			/* 20 */},
152224145Sdim{	0,			/* 21 */},
153224145Sdim{	0,			/* 22 */},
154224145Sdim{	0,			/* 23 */},
155224145Sdim{	0,			/* 24 */},
156224145Sdim{	0,			/* 25 */},
157263508Sdim{	0,			/* 26 */},
158263508Sdim{	0,			/* 27 */},
159263508Sdim{	0,			/* 28 */},
160224145Sdim{	0,			/* 29 */},
161224145Sdim{	0,			/* 30 */},
162263508Sdim{	0,			/* 31 */},
163224145Sdim{	0,			/* 32 */},
164224145Sdim{	"!",			/* 33 */},
165263508Sdim{	"\"", "dq",		/* 34 */},
166263508Sdim{	"#", "sh",		/* 35 */},
167263508Sdim{	"$", "Do",		/* 36 */},
168263508Sdim{	"%",			/* 37 */},
169263508Sdim{	"&",			/* 38 */},
170212904Sdim{	"'", "cq",		/* 39 */},
171193323Sed{	"(",			/* 40 */},
172193323Sed{	")",			/* 41 */},
173193323Sed{	"*",			/* 42 */},
174193323Sed{	"+",			/* 43 */},
175194612Sed{	",",			/* 44 */},
176193323Sed{	"\\-",			/* 45 */},
177218893Sdim{	".",			/* 46 */},
178249423Sdim{	"/", "sl",		/* 47 */},
179249423Sdim{	"0",			/* 48 */},
180249423Sdim{	"1",			/* 49 */},
181251662Sdim{	"2",			/* 50 */},
182251662Sdim{	"3",			/* 51 */},
183218893Sdim{	"4",			/* 52 */},
184218893Sdim{	"5",			/* 53 */},
185249423Sdim{	"6",			/* 54 */},
186251662Sdim{	"7",			/* 55 */},
187251662Sdim{	"8",			/* 56 */},
188218893Sdim{	"9",			/* 57 */},
189218893Sdim{	":",			/* 58 */},
190221345Sdim{	";",			/* 59 */},
191221345Sdim{	"<",			/* 60 */},
192251662Sdim{	"=",			/* 61 */},
193251662Sdim{	">",			/* 62 */},
194243830Sdim{	"?",			/* 63 */},
195243830Sdim{	"@", "at",		/* 64 */},
196243830Sdim{	"A",			/* 65 */},
197243830Sdim{	"B",			/* 66 */},
198243830Sdim{	"C",			/* 67 */},
199249423Sdim{	"D",			/* 68 */},
200251662Sdim{	"E",			/* 69 */},
201218893Sdim{	"F",			/* 70 */},
202243830Sdim{	"G",			/* 71 */},
203243830Sdim{	"H",			/* 72 */},
204243830Sdim{	"I",			/* 73 */},
205263508Sdim{	"J",			/* 74 */},
206263508Sdim{	"K",			/* 75 */},
207251662Sdim{	"L",			/* 76 */},
208263508Sdim{	"M",			/* 77 */},
209263508Sdim{	"N",			/* 78 */},
210263508Sdim{	"O",			/* 79 */},
211263508Sdim{	"P",			/* 80 */},
212263508Sdim{	"Q",			/* 81 */},
213263508Sdim{	"R",			/* 82 */},
214263508Sdim{	"S",			/* 83 */},
215263508Sdim{	"T",			/* 84 */},
216263508Sdim{	"U",			/* 85 */},
217263508Sdim{	"V",			/* 86 */},
218263508Sdim{	"W",			/* 87 */},
219263508Sdim{	"X",			/* 88 */},
220263508Sdim{	"Y",			/* 89 */},
221263508Sdim{	"Z",			/* 90 */},
222249423Sdim{	"[", "lB",		/* 91 */},
223249423Sdim{	"\\", "rs",		/* 92 */},
224263508Sdim{	"]", "rB",		/* 93 */},
225263508Sdim{	"^", "a^", "ha",	/* 94 */},
226249423Sdim{	"_",			/* 95 */},
227249423Sdim{	"`", "oq",		/* 96 */},
228249423Sdim{	"a",			/* 97 */},
229243830Sdim{	"b",			/* 98 */},
230194612Sed{	"c",			/* 99 */},
231239462Sdim{	"d",			/* 100 */},
232194612Sed{	"e",			/* 101 */},
233193323Sed{	"f",			/* 102 */},
234194612Sed{	"g",			/* 103 */},
235194612Sed{	"h",			/* 104 */},
236194612Sed{	"i",			/* 105 */},
237194612Sed{	"j",			/* 106 */},
238194612Sed{	"k",			/* 107 */},
239194612Sed{	"l",			/* 108 */},
240194612Sed{	"m",			/* 109 */},
241193323Sed{	"n",			/* 110 */},
242193323Sed{	"o",			/* 111 */},
243224145Sdim{	"p",			/* 112 */},
244224145Sdim{	"q",			/* 113 */},
245224145Sdim{	"r",			/* 114 */},
246224145Sdim{	"s",			/* 115 */},
247224145Sdim{	"t",			/* 116 */},
248224145Sdim{	"u",			/* 117 */},
249224145Sdim{	"v",			/* 118 */},
250224145Sdim{	"w",			/* 119 */},
251224145Sdim{	"x",			/* 120 */},
252224145Sdim{	"y",			/* 121 */},
253224145Sdim{	"z",			/* 122 */},
254193323Sed{	"{", "lC",		/* 123 */},
255193323Sed{	"|", "ba",		/* 124 */},
256224145Sdim{	"}", "rC",		/* 125 */},
257224145Sdim{	"~", "a~", "ti",	/* 126 */},
258193323Sed{	0,			/* 127 */},
259193323Sed{	0,			/* 128 */},
260224145Sdim{	0,			/* 129 */},
261224145Sdim{	0,			/* 130 */},
262224145Sdim{	0,			/* 131 */},
263224145Sdim{	0,			/* 132 */},
264224145Sdim{	0,			/* 133 */},
265224145Sdim{	0,			/* 134 */},
266224145Sdim{	0,			/* 135 */},
267224145Sdim{	0,			/* 136 */},
268224145Sdim{	0,			/* 137 */},
269224145Sdim{	0,			/* 138 */},
270193323Sed{	0,			/* 139 */},
271193323Sed{	0,			/* 140 */},
272224145Sdim{	0,			/* 141 */},
273224145Sdim{	0,			/* 142 */},
274218893Sdim{	0,			/* 143 */},
275224145Sdim{	0,			/* 144 */},
276224145Sdim{	0,			/* 145 */},
277218893Sdim{	0,			/* 146 */},
278224145Sdim{	0,			/* 147 */},
279224145Sdim{	0,			/* 148 */},
280218893Sdim{	0,			/* 149 */},
281193323Sed{	0,			/* 150 */},
282212904Sdim{	0,			/* 151 */},
283263508Sdim{	0,			/* 152 */},
284226633Sdim{	0,			/* 153 */},
285212904Sdim{	0,			/* 154 */},
286194178Sed{	0,			/* 155 */},
287226633Sdim{	0,			/* 156 */},
288226633Sdim{	0,			/* 157 */},
289224145Sdim{	0,			/* 158 */},
290226633Sdim{	0,			/* 159 */},
291226633Sdim{	0,			/* 160 */},
292193323Sed{	"r!",			/* 161 */},
293224145Sdim{	"ct",			/* 162 */},
294249423Sdim{	"Po",			/* 163 */},
295249423Sdim{	"Cs",			/* 164 */},
296249423Sdim{	"Ye",			/* 165 */},
297249423Sdim{	"bb",			/* 166 */},
298263508Sdim{	"sc",			/* 167 */},
299239462Sdim{	"ad",			/* 168 */},
300224145Sdim{	"co",			/* 169 */},
301263508Sdim{	"Of",			/* 170 */},
302263508Sdim{	"Fo",			/* 171 */},
303239462Sdim{	"tno",			/* 172 */},
304224145Sdim{	"-", "hy",		/* 173 */},
305263508Sdim{	"rg",			/* 174 */},
306263508Sdim{	"a-",			/* 175 */},
307239462Sdim{	"de",			/* 176 */},
308224145Sdim{	"t+-",			/* 177 */},
309234353Sdim{	"S2",			/* 178 */},
310263508Sdim{	"S3",			/* 179 */},
311243830Sdim{	"aa",			/* 180 */},
312243830Sdim{	"mc",			/* 181 */},
313243830Sdim{	"ps",			/* 182 */},
314263508Sdim{	"pc",			/* 183 */},
315263508Sdim{	"ac",			/* 184 */},
316249423Sdim{	"S1",			/* 185 */},
317249423Sdim{	"Om",			/* 186 */},
318249423Sdim{	"Fc",			/* 187 */},
319249423Sdim{	"14",			/* 188 */},
320263508Sdim{	"12",			/* 189 */},
321263508Sdim{	"34",			/* 190 */},
322193323Sed{	"r?",			/* 191 */},
323212904Sdim{	"`A",			/* 192 */},
324224145Sdim{	"'A",			/* 193 */},
325224145Sdim{	"^A",			/* 194 */},
326226633Sdim{	"~A",			/* 195 */},
327212904Sdim{	":A",			/* 196 */},
328224145Sdim{	"oA",			/* 197 */},
329224145Sdim{	"AE",			/* 198 */},
330224145Sdim{	",C",			/* 199 */},
331224145Sdim{	"`E",			/* 200 */},
332239462Sdim{	"'E",			/* 201 */},
333263508Sdim{	"^E",			/* 202 */},
334263508Sdim{	":E",			/* 203 */},
335224145Sdim{	"`I",			/* 204 */},
336243830Sdim{	"'I",			/* 205 */},
337243830Sdim{	"^I",			/* 206 */},
338243830Sdim{	":I",			/* 207 */},
339243830Sdim{	"-D",			/* 208 */},
340263508Sdim{	"~N",			/* 209 */},
341243830Sdim{	"`O",			/* 210 */},
342263508Sdim{	"'O",			/* 211 */},
343263508Sdim{	"^O",			/* 212 */},
344263508Sdim{	"~O",			/* 213 */},
345263508Sdim{	":O",			/* 214 */},
346263508Sdim{	"tmu",			/* 215 */},
347263508Sdim{	"/O",			/* 216 */},
348263508Sdim{	"`U",			/* 217 */},
349263508Sdim{	"'U",			/* 218 */},
350193323Sed{	"^U",			/* 219 */},
351193323Sed{	":U",			/* 220 */},
352193323Sed{	"'Y",			/* 221 */},
353193323Sed{	"TP",			/* 222 */},
354193323Sed{	"ss",			/* 223 */},
355193323Sed{	"`a",			/* 224 */},
356193323Sed{	"'a",			/* 225 */},
357193323Sed{	"^a",			/* 226 */},
358193323Sed{	"~a",			/* 227 */},
359193323Sed{	":a",			/* 228 */},
360193323Sed{	"oa",			/* 229 */},
361193323Sed{	"ae",			/* 230 */},
362193323Sed{	",c",			/* 231 */},
363193323Sed{	"`e",			/* 232 */},
364206274Srdivacky{	"'e",			/* 233 */},
365193323Sed{	"^e",			/* 234 */},
366218893Sdim{	":e",			/* 235 */},
367193323Sed{	"`i",			/* 236 */},
368218893Sdim{	"'i",			/* 237 */},
369218893Sdim{	"^i",			/* 238 */},
370218893Sdim{	":i",			/* 239 */},
371218893Sdim{	"Sd",			/* 240 */},
372218893Sdim{	"~n",			/* 241 */},
373218893Sdim{	"`o",			/* 242 */},
374218893Sdim{	"'o",			/* 243 */},
375218893Sdim{	"^o",			/* 244 */},
376218893Sdim{	"~o",			/* 245 */},
377218893Sdim{	":o",			/* 246 */},
378193323Sed{	"tdi",			/* 247 */},
379193323Sed{	"/o",			/* 248 */},
380193323Sed{	"`u",			/* 249 */},
381193323Sed{	"'u",			/* 250 */},
382193323Sed{	"^u",			/* 251 */},
383193323Sed{	":u",			/* 252 */},
384218893Sdim{	"'y",			/* 253 */},
385218893Sdim{	"Tp",			/* 254 */},
386193323Sed{	":y",			/* 255 */},
387}};
388
389static DviCharNameMap Adobe_Symbol_map = {
390	"adobe-fontspecific",
391	1,
392{
393{	0,						/* 0 */},
394{	0,						/* 1 */},
395{	0,						/* 2 */},
396{	0,						/* 3 */},
397{	0,						/* 4 */},
398{	0,						/* 5 */},
399{	0,						/* 6 */},
400{	0,						/* 7 */},
401{	0,						/* 8 */},
402{	0,						/* 9 */},
403{	0,						/* 10 */},
404{	0,						/* 11 */},
405{	0,						/* 12 */},
406{	0,						/* 13 */},
407{	0,						/* 14 */},
408{	0,						/* 15 */},
409{	0,						/* 16 */},
410{	0,						/* 17 */},
411{	0,						/* 18 */},
412{	0,						/* 19 */},
413{	0,						/* 20 */},
414{	0,						/* 21 */},
415{	0,						/* 22 */},
416{	0,						/* 23 */},
417{	0,						/* 24 */},
418{	0,						/* 25 */},
419{	0,						/* 26 */},
420{	0,						/* 27 */},
421{	0,						/* 28 */},
422{	0,						/* 29 */},
423{	0,						/* 30 */},
424{	0,						/* 31 */},
425{	0,						/* 32 */},
426{	"!",						/* 33 */},
427{	"fa",						/* 34 */},
428{	"#", "sh",					/* 35 */},
429{	"te",						/* 36 */},
430{	"%",						/* 37 */},
431{	"&",						/* 38 */},
432{	"st",						/* 39 */},
433{	"(",						/* 40 */},
434{	")",						/* 41 */},
435{	"**",						/* 42 */},
436{	"+", "pl",					/* 43 */},
437{	",",						/* 44 */},
438{	"\\-", "mi",					/* 45 */},
439{	".",						/* 46 */},
440{	"/", "sl",					/* 47 */},
441{	"0",						/* 48 */},
442{	"1",						/* 49 */},
443{	"2",						/* 50 */},
444{	"3",						/* 51 */},
445{	"4",						/* 52 */},
446{	"5",						/* 53 */},
447{	"6",						/* 54 */},
448{	"7",						/* 55 */},
449{	"8",						/* 56 */},
450{	"9",						/* 57 */},
451{	":",						/* 58 */},
452{	";",						/* 59 */},
453{	"<",						/* 60 */},
454{	"=", "eq",					/* 61 */},
455{	">",						/* 62 */},
456{	"?",						/* 63 */},
457{	"=~",						/* 64 */},
458{	"*A",						/* 65 */},
459{	"*B",						/* 66 */},
460{	"*X",						/* 67 */},
461{	"*D",						/* 68 */},
462{	"*E",						/* 69 */},
463{	"*F",						/* 70 */},
464{	"*G",						/* 71 */},
465{	"*Y",						/* 72 */},
466{	"*I",						/* 73 */},
467{	"+h",						/* 74 */},
468{	"*K",						/* 75 */},
469{	"*L",						/* 76 */},
470{	"*M",						/* 77 */},
471{	"*N",						/* 78 */},
472{	"*O",						/* 79 */},
473{	"*P",						/* 80 */},
474{	"*H",						/* 81 */},
475{	"*R",						/* 82 */},
476{	"*S",						/* 83 */},
477{	"*T",						/* 84 */},
478{	0,						/* 85 */},
479{	"ts",						/* 86 */},
480{	"*W",						/* 87 */},
481{	"*C",						/* 88 */},
482{	"*Q",						/* 89 */},
483{	"*Z",						/* 90 */},
484{	"[", "lB",					/* 91 */},
485{	"tf", "3d",					/* 92 */},
486{	"]", "rB",					/* 93 */},
487{	"pp",						/* 94 */},
488{	"_",						/* 95 */},
489{	"radicalex",					/* 96 */},
490{	"*a",						/* 97 */},
491{	"*b",						/* 98 */},
492{	"*x",						/* 99 */},
493{	"*d",						/* 100 */},
494{	"*e",						/* 101 */},
495{	"*f",						/* 102 */},
496{	"*g",						/* 103 */},
497{	"*y",						/* 104 */},
498{	"*i",						/* 105 */},
499{	"+f",						/* 106 */},
500{	"*k",						/* 107 */},
501{	"*l",						/* 108 */},
502{	"*m",						/* 109 */},
503{	"*n",						/* 110 */},
504{	"*o",						/* 111 */},
505{	"*p",						/* 112 */},
506{	"*h",						/* 113 */},
507{	"*r",						/* 114 */},
508{	"*s",						/* 115 */},
509{	"*t",						/* 116 */},
510{	"*u",						/* 117 */},
511{	"+p",						/* 118 */},
512{	"*w",						/* 119 */},
513{	"*c",						/* 120 */},
514{	"*q",						/* 121 */},
515{	"*z",						/* 122 */},
516{	"lC", "{",					/* 123 */},
517{	"ba", "|",					/* 124 */},
518{	"rC", "}",					/* 125 */},
519{	"ap",						/* 126 */},
520{	0,						/* 127 */},
521{	0,						/* 128 */},
522{	0,						/* 129 */},
523{	0,						/* 130 */},
524{	0,						/* 131 */},
525{	0,						/* 132 */},
526{	0,						/* 133 */},
527{	0,						/* 134 */},
528{	0,						/* 135 */},
529{	0,						/* 136 */},
530{	0,						/* 137 */},
531{	0,						/* 138 */},
532{	0,						/* 139 */},
533{	0,						/* 140 */},
534{	0,						/* 141 */},
535{	0,						/* 142 */},
536{	0,						/* 143 */},
537{	0,						/* 144 */},
538{	0,						/* 145 */},
539{	0,						/* 146 */},
540{	0,						/* 147 */},
541{	0,						/* 148 */},
542{	0,						/* 149 */},
543{	0,						/* 150 */},
544{	0,						/* 151 */},
545{	0,						/* 152 */},
546{	0,						/* 153 */},
547{	0,						/* 154 */},
548{	0,						/* 155 */},
549{	0,						/* 156 */},
550{	0,						/* 157 */},
551{	0,						/* 158 */},
552{	0,						/* 159 */},
553{	0,						/* 160 */},
554{	"*U",						/* 161 */},
555{	"fm",						/* 162 */},
556{	"<=",						/* 163 */},
557{	"f/",						/* 164 */},
558{	"if",						/* 165 */},
559{	"Fn",						/* 166 */},
560{	"CL",						/* 167 */},
561{	"DI",						/* 168 */},
562{	"HE",						/* 169 */},
563{	"SP",						/* 170 */},
564{	"<>",						/* 171 */},
565{	"<-",						/* 172 */},
566{	"ua", "arrowverttp",				/* 173 */},
567{	"->",						/* 174 */},
568{	"da", "arrowvertbt",				/* 175 */},
569{	"de",						/* 176 */},
570{	"+-",						/* 177 */},
571{	"sd",						/* 178 */},
572{	">=",						/* 179 */},
573{	"mu",						/* 180 */},
574{	"pt",						/* 181 */},
575{	"pd",						/* 182 */},
576{	"bu",						/* 183 */},
577{	"di",						/* 184 */},
578{	"!=",						/* 185 */},
579{	"==",						/* 186 */},
580{	"~=", "~~",					/* 187 */},
581{	0,						/* 188 */},
582{	"arrowvertex",					/* 189 */},
583{	"an",						/* 190 */},
584{	"CR",						/* 191 */},
585{	"Ah",						/* 192 */},
586{	"Im",						/* 193 */},
587{	"Re",						/* 194 */},
588{	"wp",						/* 195 */},
589{	"c*",						/* 196 */},
590{	"c+",						/* 197 */},
591{	"es",						/* 198 */},
592{	"ca",						/* 199 */},
593{	"cu",						/* 200 */},
594{	"sp",						/* 201 */},
595{	"ip",						/* 202 */},
596{	"nb",						/* 203 */},
597{	"sb",						/* 204 */},
598{	"ib",						/* 205 */},
599{	"mo",						/* 206 */},
600{	"nm",						/* 207 */},
601{	"/_",						/* 208 */},
602{	"gr",						/* 209 */},
603{	"rg",						/* 210 */},
604{	"co",						/* 211 */},
605{	"tm",						/* 212 */},
606{	0,						/* 213 */},
607{	"sr", "sqrt",					/* 214 */},
608{	"md",						/* 215 */},
609{	"no",						/* 216 */},
610{	"AN",						/* 217 */},
611{	"OR",						/* 218 */},
612{	"hA",						/* 219 */},
613{	"lA",						/* 220 */},
614{	"uA",						/* 221 */},
615{	"rA",						/* 222 */},
616{	"dA",						/* 223 */},
617{	"lz",						/* 224 */},
618{	"la",						/* 225 */},
619{	0,						/* 226 */},
620{	0,						/* 227 */},
621{	0,						/* 228 */},
622{	0,						/* 229 */},
623{	"parenlefttp",					/* 230 */},
624{	"parenleftex",					/* 231 */},
625{	"parenleftbt",					/* 232 */},
626{	"bracketlefttp", "lc",				/* 233 */},
627{	"bracketleftex",				/* 234 */},
628{	"bracketleftbt", "lf",				/* 235 */},
629{	"bracelefttp", "lt",				/* 236 */},
630{	"braceleftmid", "lk",				/* 237 */},
631{	"braceleftbt", "lb",				/* 238 */},
632{	"bracerightex", "braceleftex", "braceex", "bv",	/* 239 */},
633{	0,						/* 240 */},
634{	"ra",						/* 241 */},
635{	"is", "integral",				/* 242 */},
636{	0,						/* 243 */},
637{	0,						/* 244 */},
638{	0,						/* 245 */},
639{	"parenrighttp",					/* 246 */},
640{	"parenrightex",					/* 247 */},
641{	"parenrightbt",					/* 248 */},
642{	"bracketrighttp", "rc",				/* 249 */},
643{	"bracketrightex",				/* 250 */},
644{	"bracketrightbt", "rf",				/* 251 */},
645{	"bracerighttp", "rt",				/* 252 */},
646{	"bracerightmid", "rk",				/* 253 */},
647{	"bracerightbt", "rb",				/* 254 */},
648{	0,						/* 255 */},
649}};
650
651
652static void
653load_standard_maps (void)
654{
655	standard_maps_loaded = 1;
656	DviRegisterMap (&ISO8859_1_map);
657	DviRegisterMap (&Adobe_Symbol_map);
658}
659