1 /*
2  * fontconfig/fc-glyphname/fcglyphname.tmpl.h
3  *
4  * Copyright © 2003 Keith Packard
5  *
6  * Permission to use, copy, modify, distribute, and sell this software and its
7  * documentation for any purpose is hereby granted without fee, provided that
8  * the above copyright notice appear in all copies and that both that
9  * copyright notice and this permission notice appear in supporting
10  * documentation, and that the name of the author(s) not be used in
11  * advertising or publicity pertaining to distribution of the software without
12  * specific, written prior permission.  The authors make no
13  * representations about the suitability of this software for any purpose.  It
14  * is provided "as is" without express or implied warranty.
15  *
16  * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18  * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22  * PERFORMANCE OF THIS SOFTWARE.
23  */
24 
25 /* 201 glyphnames in 271 entries, 74% occupancy */
26 
27 #define FC_GLYPHNAME_HASH 271
28 #define FC_GLYPHNAME_REHASH 269
29 #define FC_GLYPHNAME_MAXLEN 4
30 
31 typedef int16_t FcGlyphId;
32 
33 static const struct { const FcChar32 ucs; const FcChar8 name[5]; } _fc_glyph_names[201] = {
34     { 0x2701, "a1" },
35     { 0x2721, "a10" },
36     { 0x275e, "a100" },
37     { 0x2761, "a101" },
38     { 0x2762, "a102" },
39     { 0x2763, "a103" },
40     { 0x2764, "a104" },
41     { 0x2710, "a105" },
42     { 0x2765, "a106" },
43     { 0x2766, "a107" },
44     { 0x2767, "a108" },
45     { 0x2660, "a109" },
46     { 0x261b, "a11" },
47     { 0x2665, "a110" },
48     { 0x2666, "a111" },
49     { 0x2663, "a112" },
50     { 0x2709, "a117" },
51     { 0x2708, "a118" },
52     { 0x2707, "a119" },
53     { 0x261e, "a12" },
54     { 0x2460, "a120" },
55     { 0x2461, "a121" },
56     { 0x2462, "a122" },
57     { 0x2463, "a123" },
58     { 0x2464, "a124" },
59     { 0x2465, "a125" },
60     { 0x2466, "a126" },
61     { 0x2467, "a127" },
62     { 0x2468, "a128" },
63     { 0x2469, "a129" },
64     { 0x270c, "a13" },
65     { 0x2776, "a130" },
66     { 0x2777, "a131" },
67     { 0x2778, "a132" },
68     { 0x2779, "a133" },
69     { 0x277a, "a134" },
70     { 0x277b, "a135" },
71     { 0x277c, "a136" },
72     { 0x277d, "a137" },
73     { 0x277e, "a138" },
74     { 0x277f, "a139" },
75     { 0x270d, "a14" },
76     { 0x2780, "a140" },
77     { 0x2781, "a141" },
78     { 0x2782, "a142" },
79     { 0x2783, "a143" },
80     { 0x2784, "a144" },
81     { 0x2785, "a145" },
82     { 0x2786, "a146" },
83     { 0x2787, "a147" },
84     { 0x2788, "a148" },
85     { 0x2789, "a149" },
86     { 0x270e, "a15" },
87     { 0x278a, "a150" },
88     { 0x278b, "a151" },
89     { 0x278c, "a152" },
90     { 0x278d, "a153" },
91     { 0x278e, "a154" },
92     { 0x278f, "a155" },
93     { 0x2790, "a156" },
94     { 0x2791, "a157" },
95     { 0x2792, "a158" },
96     { 0x2793, "a159" },
97     { 0x270f, "a16" },
98     { 0x2794, "a160" },
99     { 0x2192, "a161" },
100     { 0x27a3, "a162" },
101     { 0x2194, "a163" },
102     { 0x2195, "a164" },
103     { 0x2799, "a165" },
104     { 0x279b, "a166" },
105     { 0x279c, "a167" },
106     { 0x279d, "a168" },
107     { 0x279e, "a169" },
108     { 0x2711, "a17" },
109     { 0x279f, "a170" },
110     { 0x27a0, "a171" },
111     { 0x27a1, "a172" },
112     { 0x27a2, "a173" },
113     { 0x27a4, "a174" },
114     { 0x27a5, "a175" },
115     { 0x27a6, "a176" },
116     { 0x27a7, "a177" },
117     { 0x27a8, "a178" },
118     { 0x27a9, "a179" },
119     { 0x2712, "a18" },
120     { 0x27ab, "a180" },
121     { 0x27ad, "a181" },
122     { 0x27af, "a182" },
123     { 0x27b2, "a183" },
124     { 0x27b3, "a184" },
125     { 0x27b5, "a185" },
126     { 0x27b8, "a186" },
127     { 0x27ba, "a187" },
128     { 0x27bb, "a188" },
129     { 0x27bc, "a189" },
130     { 0x2713, "a19" },
131     { 0x27bd, "a190" },
132     { 0x27be, "a191" },
133     { 0x279a, "a192" },
134     { 0x27aa, "a193" },
135     { 0x27b6, "a194" },
136     { 0x27b9, "a195" },
137     { 0x2798, "a196" },
138     { 0x27b4, "a197" },
139     { 0x27b7, "a198" },
140     { 0x27ac, "a199" },
141     { 0x2702, "a2" },
142     { 0x2714, "a20" },
143     { 0x27ae, "a200" },
144     { 0x27b1, "a201" },
145     { 0x2703, "a202" },
146     { 0x2750, "a203" },
147     { 0x2752, "a204" },
148     { 0x276e, "a205" },
149     { 0x2770, "a206" },
150     { 0x2715, "a21" },
151     { 0x2716, "a22" },
152     { 0x2717, "a23" },
153     { 0x2718, "a24" },
154     { 0x2719, "a25" },
155     { 0x271a, "a26" },
156     { 0x271b, "a27" },
157     { 0x271c, "a28" },
158     { 0x2722, "a29" },
159     { 0x2704, "a3" },
160     { 0x2723, "a30" },
161     { 0x2724, "a31" },
162     { 0x2725, "a32" },
163     { 0x2726, "a33" },
164     { 0x2727, "a34" },
165     { 0x2605, "a35" },
166     { 0x2729, "a36" },
167     { 0x272a, "a37" },
168     { 0x272b, "a38" },
169     { 0x272c, "a39" },
170     { 0x260e, "a4" },
171     { 0x272d, "a40" },
172     { 0x272e, "a41" },
173     { 0x272f, "a42" },
174     { 0x2730, "a43" },
175     { 0x2731, "a44" },
176     { 0x2732, "a45" },
177     { 0x2733, "a46" },
178     { 0x2734, "a47" },
179     { 0x2735, "a48" },
180     { 0x2736, "a49" },
181     { 0x2706, "a5" },
182     { 0x2737, "a50" },
183     { 0x2738, "a51" },
184     { 0x2739, "a52" },
185     { 0x273a, "a53" },
186     { 0x273b, "a54" },
187     { 0x273c, "a55" },
188     { 0x273d, "a56" },
189     { 0x273e, "a57" },
190     { 0x273f, "a58" },
191     { 0x2740, "a59" },
192     { 0x271d, "a6" },
193     { 0x2741, "a60" },
194     { 0x2742, "a61" },
195     { 0x2743, "a62" },
196     { 0x2744, "a63" },
197     { 0x2745, "a64" },
198     { 0x2746, "a65" },
199     { 0x2747, "a66" },
200     { 0x2748, "a67" },
201     { 0x2749, "a68" },
202     { 0x274a, "a69" },
203     { 0x271e, "a7" },
204     { 0x274b, "a70" },
205     { 0x25cf, "a71" },
206     { 0x274d, "a72" },
207     { 0x25a0, "a73" },
208     { 0x274f, "a74" },
209     { 0x2751, "a75" },
210     { 0x25b2, "a76" },
211     { 0x25bc, "a77" },
212     { 0x25c6, "a78" },
213     { 0x2756, "a79" },
214     { 0x271f, "a8" },
215     { 0x25d7, "a81" },
216     { 0x2758, "a82" },
217     { 0x2759, "a83" },
218     { 0x275a, "a84" },
219     { 0x276f, "a85" },
220     { 0x2771, "a86" },
221     { 0x2772, "a87" },
222     { 0x2773, "a88" },
223     { 0x2768, "a89" },
224     { 0x2720, "a9" },
225     { 0x2769, "a90" },
226     { 0x276c, "a91" },
227     { 0x276d, "a92" },
228     { 0x276a, "a93" },
229     { 0x276b, "a94" },
230     { 0x2774, "a95" },
231     { 0x2775, "a96" },
232     { 0x275b, "a97" },
233     { 0x275c, "a98" },
234     { 0x275d, "a99" },
235 };
236 static const FcGlyphId _fc_name_to_ucs[271] = {
237     123,
238     81,
239     198,
240     154,
241     142,
242     186,
243     82,
244     -1,
245     143,
246     172,
247     181,
248     79,
249     153,
250     191,
251     -1,
252     -1,
253     80,
254     195,
255     179,
256     170,
257     151,
258     129,
259     101,
260     194,
261     85,
262     102,
263     73,
264     171,
265     99,
266     -1,
267     -1,
268     100,
269     196,
270     -1,
271     189,
272     163,
273     110,
274     199,
275     -1,
276     -1,
277     59,
278     50,
279     -1,
280     60,
281     75,
282     -1,
283     51,
284     -1,
285     -1,
286     58,
287     -1,
288     61,
289     55,
290     -1,
291     192,
292     56,
293     62,
294     -1,
295     53,
296     166,
297     113,
298     54,
299     -1,
300     157,
301     33,
302     188,
303     177,
304     21,
305     -1,
306     -1,
307     31,
308     -1,
309     -1,
310     32,
311     -1,
312     -1,
313     24,
314     160,
315     -1,
316     38,
317     -1,
318     -1,
319     26,
320     -1,
321     161,
322     27,
323     197,
324     94,
325     95,
326     105,
327     106,
328     90,
329     91,
330     92,
331     93,
332     86,
333     87,
334     88,
335     89,
336     28,
337     29,
338     39,
339     40,
340     10,
341     11,
342     17,
343     18,
344     6,
345     7,
346     8,
347     9,
348     2,
349     3,
350     4,
351     5,
352     -1,
353     -1,
354     114,
355     108,
356     146,
357     74,
358     -1,
359     117,
360     115,
361     118,
362     156,
363     119,
364     -1,
365     120,
366     -1,
367     121,
368     131,
369     122,
370     -1,
371     109,
372     -1,
373     124,
374     141,
375     134,
376     174,
377     144,
378     -1,
379     137,
380     155,
381     138,
382     -1,
383     64,
384     -1,
385     140,
386     152,
387     65,
388     -1,
389     111,
390     -1,
391     57,
392     162,
393     -1,
394     -1,
395     67,
396     -1,
397     -1,
398     150,
399     68,
400     -1,
401     167,
402     -1,
403     69,
404     164,
405     -1,
406     116,
407     70,
408     -1,
409     -1,
410     148,
411     71,
412     -1,
413     -1,
414     184,
415     72,
416     149,
417     176,
418     193,
419     34,
420     182,
421     145,
422     -1,
423     83,
424     187,
425     -1,
426     103,
427     84,
428     104,
429     200,
430     63,
431     37,
432     41,
433     52,
434     19,
435     30,
436     1,
437     12,
438     97,
439     35,
440     98,
441     135,
442     46,
443     36,
444     47,
445     96,
446     48,
447     159,
448     49,
449     -1,
450     42,
451     112,
452     43,
453     173,
454     44,
455     168,
456     45,
457     -1,
458     20,
459     183,
460     16,
461     147,
462     22,
463     178,
464     23,
465     -1,
466     15,
467     -1,
468     25,
469     190,
470     13,
471     139,
472     14,
473     -1,
474     -1,
475     -1,
476     128,
477     107,
478     125,
479     -1,
480     0,
481     158,
482     169,
483     136,
484     126,
485     -1,
486     -1,
487     180,
488     127,
489     77,
490     -1,
491     -1,
492     132,
493     -1,
494     78,
495     -1,
496     133,
497     -1,
498     165,
499     66,
500     130,
501     -1,
502     -1,
503     -1,
504     76,
505     -1,
506     185,
507     175,
508 };
509 static const FcGlyphId _fc_ucs_to_name[271] = {
510     56,
511     135,
512     19,
513     138,
514     58,
515     140,
516     59,
517     142,
518     60,
519     144,
520     61,
521     146,
522     62,
523     149,
524     64,
525     151,
526     152,
527     153,
528     154,
529     155,
530     156,
531     157,
532     159,
533     160,
534     161,
535     162,
536     163,
537     131,
538     165,
539     166,
540     167,
541     168,
542     170,
543     -1,
544     172,
545     -1,
546     174,
547     112,
548     175,
549     113,
550     -1,
551     173,
552     -1,
553     179,
554     -1,
555     182,
556     183,
557     158,
558     198,
559     199,
560     200,
561     2,
562     -1,
563     -1,
564     3,
565     4,
566     5,
567     6,
568     8,
569     9,
570     10,
571     189,
572     164,
573     194,
574     195,
575     192,
576     193,
577     114,
578     11,
579     115,
580     186,
581     15,
582     188,
583     13,
584     14,
585     31,
586     32,
587     33,
588     34,
589     35,
590     36,
591     37,
592     38,
593     39,
594     40,
595     42,
596     43,
597     44,
598     45,
599     46,
600     47,
601     48,
602     49,
603     50,
604     51,
605     53,
606     54,
607     55,
608     20,
609     21,
610     22,
611     23,
612     24,
613     25,
614     26,
615     27,
616     28,
617     29,
618     -1,
619     103,
620     69,
621     99,
622     70,
623     71,
624     72,
625     73,
626     75,
627     76,
628     77,
629     78,
630     66,
631     79,
632     80,
633     81,
634     82,
635     83,
636     84,
637     100,
638     86,
639     106,
640     87,
641     109,
642     88,
643     -1,
644     110,
645     89,
646     90,
647     104,
648     91,
649     101,
650     105,
651     92,
652     102,
653     93,
654     94,
655     95,
656     97,
657     98,
658     196,
659     -1,
660     134,
661     -1,
662     -1,
663     -1,
664     -1,
665     -1,
666     137,
667     -1,
668     -1,
669     -1,
670     -1,
671     -1,
672     139,
673     -1,
674     -1,
675     176,
676     -1,
677     -1,
678     141,
679     184,
680     -1,
681     -1,
682     -1,
683     -1,
684     143,
685     177,
686     57,
687     -1,
688     -1,
689     -1,
690     145,
691     -1,
692     -1,
693     -1,
694     -1,
695     178,
696     148,
697     -1,
698     -1,
699     -1,
700     -1,
701     -1,
702     150,
703     65,
704     171,
705     67,
706     68,
707     -1,
708     -1,
709     191,
710     -1,
711     -1,
712     181,
713     -1,
714     -1,
715     -1,
716     -1,
717     -1,
718     -1,
719     -1,
720     -1,
721     185,
722     -1,
723     -1,
724     -1,
725     -1,
726     -1,
727     187,
728     -1,
729     -1,
730     -1,
731     133,
732     -1,
733     197,
734     -1,
735     -1,
736     -1,
737     -1,
738     -1,
739     0,
740     107,
741     111,
742     125,
743     -1,
744     147,
745     18,
746     17,
747     16,
748     -1,
749     -1,
750     30,
751     41,
752     52,
753     63,
754     7,
755     74,
756     85,
757     96,
758     108,
759     116,
760     117,
761     118,
762     119,
763     120,
764     121,
765     122,
766     123,
767     136,
768     169,
769     180,
770     190,
771     1,
772     124,
773     126,
774     127,
775     128,
776     129,
777     130,
778     -1,
779     132,
780     12,
781 };
782