xref: /netbsd-src/external/gpl2/groff/dist/src/libs/libgroff/uniglyph.cpp (revision 89a07cf815a29524268025a1139fac4c5190f765)
1*89a07cf8Schristos /*	$NetBSD: uniglyph.cpp,v 1.1.1.1 2016/01/13 18:41:48 christos Exp $	*/
2*89a07cf8Schristos 
3*89a07cf8Schristos // -*- C++ -*-
4*89a07cf8Schristos /* Copyright (C) 2002, 2003, 2004
5*89a07cf8Schristos    Free Software Foundation, Inc.
6*89a07cf8Schristos      Written by Werner Lemberg <wl@gnu.org>
7*89a07cf8Schristos 
8*89a07cf8Schristos This file is part of groff.
9*89a07cf8Schristos 
10*89a07cf8Schristos groff is free software; you can redistribute it and/or modify it under
11*89a07cf8Schristos the terms of the GNU General Public License as published by the Free
12*89a07cf8Schristos Software Foundation; either version 2, or (at your option) any later
13*89a07cf8Schristos version.
14*89a07cf8Schristos 
15*89a07cf8Schristos groff is distributed in the hope that it will be useful, but WITHOUT ANY
16*89a07cf8Schristos WARRANTY; without even the implied warranty of MERCHANTABILITY or
17*89a07cf8Schristos FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
18*89a07cf8Schristos for more details.
19*89a07cf8Schristos 
20*89a07cf8Schristos You should have received a copy of the GNU General Public License along
21*89a07cf8Schristos with groff; see the file COPYING.  If not, write to the Free Software
22*89a07cf8Schristos Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */
23*89a07cf8Schristos 
24*89a07cf8Schristos #include "lib.h"
25*89a07cf8Schristos #include "stringclass.h"
26*89a07cf8Schristos #include "ptable.h"
27*89a07cf8Schristos 
28*89a07cf8Schristos #include "unicode.h"
29*89a07cf8Schristos 
30*89a07cf8Schristos struct unicode_to_glyph {
31*89a07cf8Schristos   char *value;
32*89a07cf8Schristos };
33*89a07cf8Schristos 
34*89a07cf8Schristos declare_ptable(unicode_to_glyph)
35*89a07cf8Schristos implement_ptable(unicode_to_glyph)
36*89a07cf8Schristos 
37*89a07cf8Schristos PTABLE(unicode_to_glyph) unicode_to_glyph_table;
38*89a07cf8Schristos 
39*89a07cf8Schristos struct S {
40*89a07cf8Schristos   const char *key;
41*89a07cf8Schristos   const char *value;
42*89a07cf8Schristos } unicode_to_glyph_list[] = {
43*89a07cf8Schristos   { "0021", "!" },
44*89a07cf8Schristos //{ "0022", "\"" },
45*89a07cf8Schristos   { "0022", "dq" },
46*89a07cf8Schristos //{ "0023", "#" },
47*89a07cf8Schristos   { "0023", "sh" },
48*89a07cf8Schristos //{ "0024", "$" },
49*89a07cf8Schristos   { "0024", "Do" },
50*89a07cf8Schristos   { "0025", "%" },
51*89a07cf8Schristos   { "0026", "&" },
52*89a07cf8Schristos   { "0027", "aq" },
53*89a07cf8Schristos   { "0028", "(" },
54*89a07cf8Schristos   { "0029", ")" },
55*89a07cf8Schristos   { "002A", "*" },
56*89a07cf8Schristos //{ "002B", "+" },
57*89a07cf8Schristos   { "002B", "pl" },
58*89a07cf8Schristos   { "002C", "," },
59*89a07cf8Schristos   { "002E", "." },
60*89a07cf8Schristos //{ "002F", "/" },
61*89a07cf8Schristos   { "002F", "sl" },
62*89a07cf8Schristos   { "0030", "0" },
63*89a07cf8Schristos   { "0031", "1" },
64*89a07cf8Schristos   { "0032", "2" },
65*89a07cf8Schristos   { "0033", "3" },
66*89a07cf8Schristos   { "0034", "4" },
67*89a07cf8Schristos   { "0035", "5" },
68*89a07cf8Schristos   { "0036", "6" },
69*89a07cf8Schristos   { "0037", "7" },
70*89a07cf8Schristos   { "0038", "8" },
71*89a07cf8Schristos   { "0039", "9" },
72*89a07cf8Schristos   { "003A", ":" },
73*89a07cf8Schristos   { "003B", ";" },
74*89a07cf8Schristos   { "003C", "<" },
75*89a07cf8Schristos //{ "003D", "=" },
76*89a07cf8Schristos   { "003D", "eq" },
77*89a07cf8Schristos   { "003D_0338", "!=" },
78*89a07cf8Schristos   { "003E", ">" },
79*89a07cf8Schristos   { "003F", "?" },
80*89a07cf8Schristos //{ "0040", "@" },
81*89a07cf8Schristos   { "0040", "at" },
82*89a07cf8Schristos   { "0041", "A" },
83*89a07cf8Schristos   { "0041_0300", "`A" },
84*89a07cf8Schristos   { "0041_0301", "'A" },
85*89a07cf8Schristos   { "0041_0302", "^A" },
86*89a07cf8Schristos   { "0041_0303", "~A" },
87*89a07cf8Schristos   { "0041_0308", ":A" },
88*89a07cf8Schristos   { "0041_030A", "oA" },
89*89a07cf8Schristos   { "0042", "B" },
90*89a07cf8Schristos   { "0043", "C" },
91*89a07cf8Schristos   { "0043_0301", "'C" },
92*89a07cf8Schristos   { "0043_0327", ",C" },
93*89a07cf8Schristos   { "0044", "D" },
94*89a07cf8Schristos   { "0045", "E" },
95*89a07cf8Schristos   { "0045_0300", "`E" },
96*89a07cf8Schristos   { "0045_0301", "'E" },
97*89a07cf8Schristos   { "0045_0302", "^E" },
98*89a07cf8Schristos   { "0045_0308", ":E" },
99*89a07cf8Schristos   { "0046", "F" },
100*89a07cf8Schristos   { "0047", "G" },
101*89a07cf8Schristos   { "0048", "H" },
102*89a07cf8Schristos   { "0049", "I" },
103*89a07cf8Schristos   { "0049_0300", "`I" },
104*89a07cf8Schristos   { "0049_0301", "'I" },
105*89a07cf8Schristos   { "0049_0302", "^I" },
106*89a07cf8Schristos   { "0049_0308", ":I" },
107*89a07cf8Schristos   { "004A", "J" },
108*89a07cf8Schristos   { "004B", "K" },
109*89a07cf8Schristos   { "004C", "L" },
110*89a07cf8Schristos   { "004D", "M" },
111*89a07cf8Schristos   { "004E", "N" },
112*89a07cf8Schristos   { "004E_0303", "~N" },
113*89a07cf8Schristos   { "004F", "O" },
114*89a07cf8Schristos   { "004F_0300", "`O" },
115*89a07cf8Schristos   { "004F_0301", "'O" },
116*89a07cf8Schristos   { "004F_0302", "^O" },
117*89a07cf8Schristos   { "004F_0303", "~O" },
118*89a07cf8Schristos   { "004F_0308", ":O" },
119*89a07cf8Schristos   { "0050", "P" },
120*89a07cf8Schristos   { "0051", "Q" },
121*89a07cf8Schristos   { "0052", "R" },
122*89a07cf8Schristos   { "0053", "S" },
123*89a07cf8Schristos   { "0053_030C", "vS" },
124*89a07cf8Schristos   { "0054", "T" },
125*89a07cf8Schristos   { "0055", "U" },
126*89a07cf8Schristos   { "0055_0300", "`U" },
127*89a07cf8Schristos   { "0055_0301", "'U" },
128*89a07cf8Schristos   { "0055_0302", "^U" },
129*89a07cf8Schristos   { "0055_0308", ":U" },
130*89a07cf8Schristos   { "0056", "V" },
131*89a07cf8Schristos   { "0057", "W" },
132*89a07cf8Schristos   { "0058", "X" },
133*89a07cf8Schristos   { "0059", "Y" },
134*89a07cf8Schristos   { "0059_0301", "'Y" },
135*89a07cf8Schristos   { "0059_0308", ":Y" },
136*89a07cf8Schristos   { "005A", "Z" },
137*89a07cf8Schristos   { "005A_030C", "vZ" },
138*89a07cf8Schristos   { "005B", "lB" },
139*89a07cf8Schristos //{ "005B", "[" },
140*89a07cf8Schristos   { "005C", "rs" },
141*89a07cf8Schristos //{ "005C", "\\" },
142*89a07cf8Schristos   { "005D", "rB" },
143*89a07cf8Schristos //{ "005D", "]" },
144*89a07cf8Schristos //{ "005E", "^" },
145*89a07cf8Schristos //{ "005E", "a^" },
146*89a07cf8Schristos   { "005E", "ha" },
147*89a07cf8Schristos //{ "005F", "_" },
148*89a07cf8Schristos //{ "005F", "ru" },
149*89a07cf8Schristos   { "005F", "ul" },
150*89a07cf8Schristos   { "0060", "ga" },
151*89a07cf8Schristos //{ "0060", "\\`" },
152*89a07cf8Schristos   { "0061", "a" },
153*89a07cf8Schristos   { "0061_0300", "`a" },
154*89a07cf8Schristos   { "0061_0301", "'a" },
155*89a07cf8Schristos   { "0061_0302", "^a" },
156*89a07cf8Schristos   { "0061_0303", "~a" },
157*89a07cf8Schristos   { "0061_0308", ":a" },
158*89a07cf8Schristos   { "0061_030A", "oa" },
159*89a07cf8Schristos   { "0062", "b" },
160*89a07cf8Schristos   { "0063", "c" },
161*89a07cf8Schristos   { "0063_0301", "'c" },
162*89a07cf8Schristos   { "0063_0327", ",c" },
163*89a07cf8Schristos   { "0064", "d" },
164*89a07cf8Schristos   { "0065", "e" },
165*89a07cf8Schristos   { "0065_0300", "`e" },
166*89a07cf8Schristos   { "0065_0301", "'e" },
167*89a07cf8Schristos   { "0065_0302", "^e" },
168*89a07cf8Schristos   { "0065_0308", ":e" },
169*89a07cf8Schristos   { "0066", "f" },
170*89a07cf8Schristos   { "0066_0066", "ff" },
171*89a07cf8Schristos   { "0066_0066_0069", "Fi" },
172*89a07cf8Schristos   { "0066_0066_006C", "Fl" },
173*89a07cf8Schristos   { "0066_0069", "fi" },
174*89a07cf8Schristos   { "0066_006C", "fl" },
175*89a07cf8Schristos   { "0067", "g" },
176*89a07cf8Schristos   { "0068", "h" },
177*89a07cf8Schristos   { "0069", "i" },
178*89a07cf8Schristos   { "0069_0300", "`i" },
179*89a07cf8Schristos   { "0069_0301", "'i" },
180*89a07cf8Schristos   { "0069_0302", "^i" },
181*89a07cf8Schristos   { "0069_0308", ":i" },
182*89a07cf8Schristos   { "006A", "j" },
183*89a07cf8Schristos   { "006B", "k" },
184*89a07cf8Schristos   { "006C", "l" },
185*89a07cf8Schristos   { "006D", "m" },
186*89a07cf8Schristos   { "006E", "n" },
187*89a07cf8Schristos   { "006E_0303", "~n" },
188*89a07cf8Schristos   { "006F", "o" },
189*89a07cf8Schristos   { "006F_0300", "`o" },
190*89a07cf8Schristos   { "006F_0301", "'o" },
191*89a07cf8Schristos   { "006F_0302", "^o" },
192*89a07cf8Schristos   { "006F_0303", "~o" },
193*89a07cf8Schristos   { "006F_0308", ":o" },
194*89a07cf8Schristos   { "0070", "p" },
195*89a07cf8Schristos   { "0071", "q" },
196*89a07cf8Schristos   { "0072", "r" },
197*89a07cf8Schristos   { "0073", "s" },
198*89a07cf8Schristos   { "0073_030C", "vs" },
199*89a07cf8Schristos   { "0074", "t" },
200*89a07cf8Schristos   { "0075", "u" },
201*89a07cf8Schristos   { "0075_0300", "`u" },
202*89a07cf8Schristos   { "0075_0301", "'u" },
203*89a07cf8Schristos   { "0075_0302", "^u" },
204*89a07cf8Schristos   { "0075_0308", ":u" },
205*89a07cf8Schristos   { "0076", "v" },
206*89a07cf8Schristos   { "0077", "w" },
207*89a07cf8Schristos   { "0078", "x" },
208*89a07cf8Schristos   { "0079", "y" },
209*89a07cf8Schristos   { "0079_0301", "'y" },
210*89a07cf8Schristos   { "0079_0308", ":y" },
211*89a07cf8Schristos   { "007A", "z" },
212*89a07cf8Schristos   { "007A_030C", "vz" },
213*89a07cf8Schristos   { "007B", "lC" },
214*89a07cf8Schristos //{ "007B", "{" },
215*89a07cf8Schristos   { "007C", "ba" },
216*89a07cf8Schristos //{ "007C", "or" },
217*89a07cf8Schristos //{ "007C", "|" },
218*89a07cf8Schristos   { "007D", "rC" },
219*89a07cf8Schristos //{ "007D", "}" },
220*89a07cf8Schristos //{ "007E", "a~" },
221*89a07cf8Schristos   { "007E", "ti" },
222*89a07cf8Schristos //{ "007E", "~" },
223*89a07cf8Schristos   { "00A1", "r!" },
224*89a07cf8Schristos   { "00A2", "ct" },
225*89a07cf8Schristos   { "00A3", "Po" },
226*89a07cf8Schristos   { "00A4", "Cs" },
227*89a07cf8Schristos   { "00A5", "Ye" },
228*89a07cf8Schristos   { "00A6", "bb" },
229*89a07cf8Schristos   { "00A7", "sc" },
230*89a07cf8Schristos   { "00A8", "ad" },
231*89a07cf8Schristos   { "00A9", "co" },
232*89a07cf8Schristos   { "00AA", "Of" },
233*89a07cf8Schristos   { "00AB", "Fo" },
234*89a07cf8Schristos   { "00AC", "no" },
235*89a07cf8Schristos //{ "00AC", "tno" },
236*89a07cf8Schristos   { "00AD", "shc" },
237*89a07cf8Schristos   { "00AE", "rg" },
238*89a07cf8Schristos   { "00AF", "a-" },
239*89a07cf8Schristos   { "00B0", "de" },
240*89a07cf8Schristos   { "00B1", "+-" },
241*89a07cf8Schristos //{ "00B1", "t+-" },
242*89a07cf8Schristos   { "00B2", "S2" },
243*89a07cf8Schristos   { "00B3", "S3" },
244*89a07cf8Schristos   { "00B4", "aa" },
245*89a07cf8Schristos //{ "00B4", "\\'" },
246*89a07cf8Schristos   { "00B5", "mc" },
247*89a07cf8Schristos   { "00B6", "ps" },
248*89a07cf8Schristos   { "00B7", "pc" },
249*89a07cf8Schristos   { "00B8", "ac" },
250*89a07cf8Schristos   { "00B9", "S1" },
251*89a07cf8Schristos   { "00BA", "Om" },
252*89a07cf8Schristos   { "00BB", "Fc" },
253*89a07cf8Schristos   { "00BC", "14" },
254*89a07cf8Schristos   { "00BD", "12" },
255*89a07cf8Schristos   { "00BE", "34" },
256*89a07cf8Schristos   { "00BF", "r?" },
257*89a07cf8Schristos   { "00C6", "AE" },
258*89a07cf8Schristos   { "00D0", "-D" },
259*89a07cf8Schristos   { "00D7", "mu" },
260*89a07cf8Schristos //{ "00D7", "tmu" },
261*89a07cf8Schristos   { "00D8", "/O" },
262*89a07cf8Schristos   { "00DE", "TP" },
263*89a07cf8Schristos   { "00DF", "ss" },
264*89a07cf8Schristos   { "00E6", "ae" },
265*89a07cf8Schristos   { "00F0", "Sd" },
266*89a07cf8Schristos   { "00F7", "di" },
267*89a07cf8Schristos //{ "00F7", "tdi" },
268*89a07cf8Schristos   { "00F8", "/o" },
269*89a07cf8Schristos   { "00FE", "Tp" },
270*89a07cf8Schristos   { "0131", ".i" },
271*89a07cf8Schristos   { "0132", "IJ" },
272*89a07cf8Schristos   { "0133", "ij" },
273*89a07cf8Schristos   { "0141", "/L" },
274*89a07cf8Schristos   { "0142", "/l" },
275*89a07cf8Schristos   { "0152", "OE" },
276*89a07cf8Schristos   { "0153", "oe" },
277*89a07cf8Schristos   { "0192", "Fn" },
278*89a07cf8Schristos   { "02C7", "ah" },
279*89a07cf8Schristos   { "02D8", "ab" },
280*89a07cf8Schristos   { "02D9", "a." },
281*89a07cf8Schristos   { "02DA", "ao" },
282*89a07cf8Schristos   { "02DB", "ho" },
283*89a07cf8Schristos   { "02DD", "a\"" },
284*89a07cf8Schristos   { "0391", "*A" },
285*89a07cf8Schristos   { "0392", "*B" },
286*89a07cf8Schristos   { "0393", "*G" },
287*89a07cf8Schristos   { "0394", "*D" },
288*89a07cf8Schristos   { "0395", "*E" },
289*89a07cf8Schristos   { "0396", "*Z" },
290*89a07cf8Schristos   { "0397", "*Y" },
291*89a07cf8Schristos   { "0398", "*H" },
292*89a07cf8Schristos   { "0399", "*I" },
293*89a07cf8Schristos   { "039A", "*K" },
294*89a07cf8Schristos   { "039B", "*L" },
295*89a07cf8Schristos   { "039C", "*M" },
296*89a07cf8Schristos   { "039D", "*N" },
297*89a07cf8Schristos   { "039E", "*C" },
298*89a07cf8Schristos   { "039F", "*O" },
299*89a07cf8Schristos   { "03A0", "*P" },
300*89a07cf8Schristos   { "03A1", "*R" },
301*89a07cf8Schristos   { "03A3", "*S" },
302*89a07cf8Schristos   { "03A4", "*T" },
303*89a07cf8Schristos   { "03A5", "*U" },
304*89a07cf8Schristos   { "03A6", "*F" },
305*89a07cf8Schristos   { "03A7", "*X" },
306*89a07cf8Schristos   { "03A8", "*Q" },
307*89a07cf8Schristos   { "03A9", "*W" },
308*89a07cf8Schristos   { "03B1", "*a" },
309*89a07cf8Schristos   { "03B2", "*b" },
310*89a07cf8Schristos   { "03B3", "*g" },
311*89a07cf8Schristos   { "03B4", "*d" },
312*89a07cf8Schristos   { "03B5", "*e" },
313*89a07cf8Schristos   { "03B6", "*z" },
314*89a07cf8Schristos   { "03B7", "*y" },
315*89a07cf8Schristos   { "03B8", "*h" },
316*89a07cf8Schristos   { "03B9", "*i" },
317*89a07cf8Schristos   { "03BA", "*k" },
318*89a07cf8Schristos   { "03BB", "*l" },
319*89a07cf8Schristos   { "03BC", "*m" },
320*89a07cf8Schristos   { "03BD", "*n" },
321*89a07cf8Schristos   { "03BE", "*c" },
322*89a07cf8Schristos   { "03BF", "*o" },
323*89a07cf8Schristos   { "03C0", "*p" },
324*89a07cf8Schristos   { "03C1", "*r" },
325*89a07cf8Schristos   { "03C2", "ts" },
326*89a07cf8Schristos   { "03C3", "*s" },
327*89a07cf8Schristos   { "03C4", "*t" },
328*89a07cf8Schristos   { "03C5", "*u" },
329*89a07cf8Schristos   { "03C6", "*f" },
330*89a07cf8Schristos   { "03C7", "*x" },
331*89a07cf8Schristos   { "03C8", "*q" },
332*89a07cf8Schristos   { "03C9", "*w" },
333*89a07cf8Schristos   { "03D1", "+h" },
334*89a07cf8Schristos   { "03D5", "+f" },
335*89a07cf8Schristos   { "03D6", "+p" },
336*89a07cf8Schristos   { "03F5", "+e" },
337*89a07cf8Schristos //{ "2010", "-" },
338*89a07cf8Schristos   { "2010", "hy" },
339*89a07cf8Schristos   { "2013", "en" },
340*89a07cf8Schristos   { "2014", "em" },
341*89a07cf8Schristos //{ "2018", "`" },
342*89a07cf8Schristos   { "2018", "oq" },
343*89a07cf8Schristos //{ "2019", "'" },
344*89a07cf8Schristos   { "2019", "cq" },
345*89a07cf8Schristos   { "201A", "bq" },
346*89a07cf8Schristos   { "201C", "lq" },
347*89a07cf8Schristos   { "201D", "rq" },
348*89a07cf8Schristos   { "201E", "Bq" },
349*89a07cf8Schristos   { "2020", "dg" },
350*89a07cf8Schristos   { "2021", "dd" },
351*89a07cf8Schristos   { "2022", "bu" },
352*89a07cf8Schristos   { "2030", "%0" },
353*89a07cf8Schristos   { "2032", "fm" },
354*89a07cf8Schristos   { "2033", "sd" },
355*89a07cf8Schristos   { "2039", "fo" },
356*89a07cf8Schristos   { "203A", "fc" },
357*89a07cf8Schristos   { "203E", "rn" },
358*89a07cf8Schristos   { "2044", "f/" },
359*89a07cf8Schristos   { "20AC", "Eu" },
360*89a07cf8Schristos //{ "20AC", "eu" },
361*89a07cf8Schristos   { "210F", "-h" },
362*89a07cf8Schristos //{ "210F", "hbar" },
363*89a07cf8Schristos   { "2111", "Im" },
364*89a07cf8Schristos   { "2118", "wp" },
365*89a07cf8Schristos   { "211C", "Re" },
366*89a07cf8Schristos   { "2122", "tm" },
367*89a07cf8Schristos   { "2135", "Ah" },
368*89a07cf8Schristos   { "215B", "18" },
369*89a07cf8Schristos   { "215C", "38" },
370*89a07cf8Schristos   { "215D", "58" },
371*89a07cf8Schristos   { "215E", "78" },
372*89a07cf8Schristos   { "2190", "<-" },
373*89a07cf8Schristos   { "2191", "ua" },
374*89a07cf8Schristos   { "2192", "->" },
375*89a07cf8Schristos   { "2193", "da" },
376*89a07cf8Schristos   { "2194", "<>" },
377*89a07cf8Schristos   { "2195", "va" },
378*89a07cf8Schristos   { "21B5", "CR" },
379*89a07cf8Schristos   { "21D0", "lA" },
380*89a07cf8Schristos   { "21D1", "uA" },
381*89a07cf8Schristos   { "21D2", "rA" },
382*89a07cf8Schristos   { "21D3", "dA" },
383*89a07cf8Schristos   { "21D4", "hA" },
384*89a07cf8Schristos   { "21D5", "vA" },
385*89a07cf8Schristos   { "2200", "fa" },
386*89a07cf8Schristos   { "2202", "pd" },
387*89a07cf8Schristos   { "2203", "te" },
388*89a07cf8Schristos   { "2205", "es" },
389*89a07cf8Schristos   { "2207", "gr" },
390*89a07cf8Schristos   { "2208", "mo" },
391*89a07cf8Schristos   { "2208_0338", "nm" },
392*89a07cf8Schristos   { "220B", "st" },
393*89a07cf8Schristos   { "220F", "product" },
394*89a07cf8Schristos   { "2210", "coproduct" },
395*89a07cf8Schristos   { "2211", "sum" },
396*89a07cf8Schristos   { "2212", "mi" },
397*89a07cf8Schristos //{ "2212", "\\-" },
398*89a07cf8Schristos   { "2213", "-+" },
399*89a07cf8Schristos   { "2217", "**" },
400*89a07cf8Schristos   { "221A", "sr" },
401*89a07cf8Schristos   { "221D", "pt" },
402*89a07cf8Schristos   { "221E", "if" },
403*89a07cf8Schristos   { "2220", "/_" },
404*89a07cf8Schristos   { "2227", "AN" },
405*89a07cf8Schristos   { "2228", "OR" },
406*89a07cf8Schristos   { "2229", "ca" },
407*89a07cf8Schristos   { "222A", "cu" },
408*89a07cf8Schristos   { "222B", "is" },
409*89a07cf8Schristos //{ "222B", "integral" },
410*89a07cf8Schristos //{ "2234", "3d" },
411*89a07cf8Schristos   { "2234", "tf" },
412*89a07cf8Schristos   { "223C", "ap" },
413*89a07cf8Schristos   { "2243", "|=" },
414*89a07cf8Schristos   { "2245", "=~" },
415*89a07cf8Schristos //{ "2248", "~=" },
416*89a07cf8Schristos   { "2248", "~~" },
417*89a07cf8Schristos   { "2261", "==" },
418*89a07cf8Schristos   { "2261_0338", "ne" },
419*89a07cf8Schristos   { "2264", "<=" },
420*89a07cf8Schristos   { "2265", ">=" },
421*89a07cf8Schristos   { "226A", ">>" },
422*89a07cf8Schristos   { "226B", "<<" },
423*89a07cf8Schristos   { "2282", "sb" },
424*89a07cf8Schristos   { "2282_0338", "nb" },
425*89a07cf8Schristos   { "2283", "sp" },
426*89a07cf8Schristos   { "2283_0338", "nc" },
427*89a07cf8Schristos   { "2286", "ib" },
428*89a07cf8Schristos   { "2287", "ip" },
429*89a07cf8Schristos   { "2295", "c+" },
430*89a07cf8Schristos   { "2297", "c*" },
431*89a07cf8Schristos   { "22A5", "pp" },
432*89a07cf8Schristos   { "22C5", "md" },
433*89a07cf8Schristos   { "2308", "lc" },
434*89a07cf8Schristos   { "2309", "rc" },
435*89a07cf8Schristos   { "230A", "lf" },
436*89a07cf8Schristos   { "230B", "rf" },
437*89a07cf8Schristos   { "239B", "parenlefttp" },
438*89a07cf8Schristos   { "239C", "parenleftex" },
439*89a07cf8Schristos   { "239D", "parenleftbt" },
440*89a07cf8Schristos   { "239E", "parenrighttp" },
441*89a07cf8Schristos   { "239F", "parenrightex" },
442*89a07cf8Schristos   { "23A0", "parenrightbt" },
443*89a07cf8Schristos //{ "23A1", "bracketlefttp" },
444*89a07cf8Schristos   { "23A2", "bracketleftex" },
445*89a07cf8Schristos //{ "23A3", "bracketleftbt" },
446*89a07cf8Schristos //{ "23A4", "bracketrighttp" },
447*89a07cf8Schristos   { "23A5", "bracketrightex" },
448*89a07cf8Schristos //{ "23A6", "bracketrightbt" },
449*89a07cf8Schristos   { "23A7", "lt" },
450*89a07cf8Schristos //{ "23A7", "bracelefttp" },
451*89a07cf8Schristos   { "23A8", "lk" },
452*89a07cf8Schristos //{ "23A8", "braceleftmid" },
453*89a07cf8Schristos   { "23A9", "lb" },
454*89a07cf8Schristos //{ "23A9", "braceleftbt" },
455*89a07cf8Schristos   { "23AA", "bv" },
456*89a07cf8Schristos //{ "23AA", "braceex" },
457*89a07cf8Schristos //{ "23AA", "braceleftex" },
458*89a07cf8Schristos //{ "23AA", "bracerightex" },
459*89a07cf8Schristos   { "23AB", "rt" },
460*89a07cf8Schristos //{ "23AB", "bracerighttp" },
461*89a07cf8Schristos   { "23AC", "rk" },
462*89a07cf8Schristos //{ "23AC", "bracerightmid" },
463*89a07cf8Schristos   { "23AD", "rb" },
464*89a07cf8Schristos //{ "23AD", "bracerightbt" },
465*89a07cf8Schristos   { "23AF", "an" },
466*89a07cf8Schristos   { "2502", "br" },
467*89a07cf8Schristos   { "251D", "rk" },
468*89a07cf8Schristos   { "2525", "lk" },
469*89a07cf8Schristos   { "256D", "lt" },
470*89a07cf8Schristos   { "256E", "rt" },
471*89a07cf8Schristos   { "256F", "rb" },
472*89a07cf8Schristos   { "2570", "lb" },
473*89a07cf8Schristos   { "25A1", "sq" },
474*89a07cf8Schristos   { "25CA", "lz" },
475*89a07cf8Schristos   { "25CB", "ci" },
476*89a07cf8Schristos   { "261C", "lh" },
477*89a07cf8Schristos   { "261E", "rh" },
478*89a07cf8Schristos   { "2660", "SP" },
479*89a07cf8Schristos   { "2663", "CL" },
480*89a07cf8Schristos   { "2665", "HE" },
481*89a07cf8Schristos   { "2666", "DI" },
482*89a07cf8Schristos   { "2713", "OK" },
483*89a07cf8Schristos   { "27E8", "la" },
484*89a07cf8Schristos   { "27E9", "ra" },
485*89a07cf8Schristos };
486*89a07cf8Schristos 
487*89a07cf8Schristos // global constructor
488*89a07cf8Schristos static struct unicode_to_glyph_init {
489*89a07cf8Schristos   unicode_to_glyph_init();
490*89a07cf8Schristos } _unicode_to_glyph_init;
491*89a07cf8Schristos 
unicode_to_glyph_init()492*89a07cf8Schristos unicode_to_glyph_init::unicode_to_glyph_init() {
493*89a07cf8Schristos   for (unsigned int i = 0;
494*89a07cf8Schristos        i < sizeof(unicode_to_glyph_list)/sizeof(unicode_to_glyph_list[0]);
495*89a07cf8Schristos        i++) {
496*89a07cf8Schristos     unicode_to_glyph *utg = new unicode_to_glyph[1];
497*89a07cf8Schristos     utg->value = (char *)unicode_to_glyph_list[i].value;
498*89a07cf8Schristos     unicode_to_glyph_table.define(unicode_to_glyph_list[i].key, utg);
499*89a07cf8Schristos   }
500*89a07cf8Schristos }
501*89a07cf8Schristos 
unicode_to_glyph_name(const char * s)502*89a07cf8Schristos const char *unicode_to_glyph_name(const char *s)
503*89a07cf8Schristos {
504*89a07cf8Schristos   unicode_to_glyph *result = unicode_to_glyph_table.lookup(s);
505*89a07cf8Schristos   return result ? result->value : 0;
506*89a07cf8Schristos }
507