C++程序  |  782行  |  10.56 KB

/*
 * fontconfig/fc-glyphname/fcglyphname.tmpl.h
 *
 * Copyright © 2003 Keith Packard
 *
 * Permission to use, copy, modify, distribute, and sell this software and its
 * documentation for any purpose is hereby granted without fee, provided that
 * the above copyright notice appear in all copies and that both that
 * copyright notice and this permission notice appear in supporting
 * documentation, and that the name of the author(s) not be used in
 * advertising or publicity pertaining to distribution of the software without
 * specific, written prior permission.  The authors make no
 * representations about the suitability of this software for any purpose.  It
 * is provided "as is" without express or implied warranty.
 *
 * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
 * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */

/* 201 glyphnames in 271 entries, 74% occupancy */

#define FC_GLYPHNAME_HASH 271
#define FC_GLYPHNAME_REHASH 269
#define FC_GLYPHNAME_MAXLEN 4

typedef int16_t FcGlyphId;

static const struct { const FcChar32 ucs; const FcChar8 name[5]; } _fc_glyph_names[201] = {
    { 0x2701, "a1" },
    { 0x2721, "a10" },
    { 0x275e, "a100" },
    { 0x2761, "a101" },
    { 0x2762, "a102" },
    { 0x2763, "a103" },
    { 0x2764, "a104" },
    { 0x2710, "a105" },
    { 0x2765, "a106" },
    { 0x2766, "a107" },
    { 0x2767, "a108" },
    { 0x2660, "a109" },
    { 0x261b, "a11" },
    { 0x2665, "a110" },
    { 0x2666, "a111" },
    { 0x2663, "a112" },
    { 0x2709, "a117" },
    { 0x2708, "a118" },
    { 0x2707, "a119" },
    { 0x261e, "a12" },
    { 0x2460, "a120" },
    { 0x2461, "a121" },
    { 0x2462, "a122" },
    { 0x2463, "a123" },
    { 0x2464, "a124" },
    { 0x2465, "a125" },
    { 0x2466, "a126" },
    { 0x2467, "a127" },
    { 0x2468, "a128" },
    { 0x2469, "a129" },
    { 0x270c, "a13" },
    { 0x2776, "a130" },
    { 0x2777, "a131" },
    { 0x2778, "a132" },
    { 0x2779, "a133" },
    { 0x277a, "a134" },
    { 0x277b, "a135" },
    { 0x277c, "a136" },
    { 0x277d, "a137" },
    { 0x277e, "a138" },
    { 0x277f, "a139" },
    { 0x270d, "a14" },
    { 0x2780, "a140" },
    { 0x2781, "a141" },
    { 0x2782, "a142" },
    { 0x2783, "a143" },
    { 0x2784, "a144" },
    { 0x2785, "a145" },
    { 0x2786, "a146" },
    { 0x2787, "a147" },
    { 0x2788, "a148" },
    { 0x2789, "a149" },
    { 0x270e, "a15" },
    { 0x278a, "a150" },
    { 0x278b, "a151" },
    { 0x278c, "a152" },
    { 0x278d, "a153" },
    { 0x278e, "a154" },
    { 0x278f, "a155" },
    { 0x2790, "a156" },
    { 0x2791, "a157" },
    { 0x2792, "a158" },
    { 0x2793, "a159" },
    { 0x270f, "a16" },
    { 0x2794, "a160" },
    { 0x2192, "a161" },
    { 0x27a3, "a162" },
    { 0x2194, "a163" },
    { 0x2195, "a164" },
    { 0x2799, "a165" },
    { 0x279b, "a166" },
    { 0x279c, "a167" },
    { 0x279d, "a168" },
    { 0x279e, "a169" },
    { 0x2711, "a17" },
    { 0x279f, "a170" },
    { 0x27a0, "a171" },
    { 0x27a1, "a172" },
    { 0x27a2, "a173" },
    { 0x27a4, "a174" },
    { 0x27a5, "a175" },
    { 0x27a6, "a176" },
    { 0x27a7, "a177" },
    { 0x27a8, "a178" },
    { 0x27a9, "a179" },
    { 0x2712, "a18" },
    { 0x27ab, "a180" },
    { 0x27ad, "a181" },
    { 0x27af, "a182" },
    { 0x27b2, "a183" },
    { 0x27b3, "a184" },
    { 0x27b5, "a185" },
    { 0x27b8, "a186" },
    { 0x27ba, "a187" },
    { 0x27bb, "a188" },
    { 0x27bc, "a189" },
    { 0x2713, "a19" },
    { 0x27bd, "a190" },
    { 0x27be, "a191" },
    { 0x279a, "a192" },
    { 0x27aa, "a193" },
    { 0x27b6, "a194" },
    { 0x27b9, "a195" },
    { 0x2798, "a196" },
    { 0x27b4, "a197" },
    { 0x27b7, "a198" },
    { 0x27ac, "a199" },
    { 0x2702, "a2" },
    { 0x2714, "a20" },
    { 0x27ae, "a200" },
    { 0x27b1, "a201" },
    { 0x2703, "a202" },
    { 0x2750, "a203" },
    { 0x2752, "a204" },
    { 0x276e, "a205" },
    { 0x2770, "a206" },
    { 0x2715, "a21" },
    { 0x2716, "a22" },
    { 0x2717, "a23" },
    { 0x2718, "a24" },
    { 0x2719, "a25" },
    { 0x271a, "a26" },
    { 0x271b, "a27" },
    { 0x271c, "a28" },
    { 0x2722, "a29" },
    { 0x2704, "a3" },
    { 0x2723, "a30" },
    { 0x2724, "a31" },
    { 0x2725, "a32" },
    { 0x2726, "a33" },
    { 0x2727, "a34" },
    { 0x2605, "a35" },
    { 0x2729, "a36" },
    { 0x272a, "a37" },
    { 0x272b, "a38" },
    { 0x272c, "a39" },
    { 0x260e, "a4" },
    { 0x272d, "a40" },
    { 0x272e, "a41" },
    { 0x272f, "a42" },
    { 0x2730, "a43" },
    { 0x2731, "a44" },
    { 0x2732, "a45" },
    { 0x2733, "a46" },
    { 0x2734, "a47" },
    { 0x2735, "a48" },
    { 0x2736, "a49" },
    { 0x2706, "a5" },
    { 0x2737, "a50" },
    { 0x2738, "a51" },
    { 0x2739, "a52" },
    { 0x273a, "a53" },
    { 0x273b, "a54" },
    { 0x273c, "a55" },
    { 0x273d, "a56" },
    { 0x273e, "a57" },
    { 0x273f, "a58" },
    { 0x2740, "a59" },
    { 0x271d, "a6" },
    { 0x2741, "a60" },
    { 0x2742, "a61" },
    { 0x2743, "a62" },
    { 0x2744, "a63" },
    { 0x2745, "a64" },
    { 0x2746, "a65" },
    { 0x2747, "a66" },
    { 0x2748, "a67" },
    { 0x2749, "a68" },
    { 0x274a, "a69" },
    { 0x271e, "a7" },
    { 0x274b, "a70" },
    { 0x25cf, "a71" },
    { 0x274d, "a72" },
    { 0x25a0, "a73" },
    { 0x274f, "a74" },
    { 0x2751, "a75" },
    { 0x25b2, "a76" },
    { 0x25bc, "a77" },
    { 0x25c6, "a78" },
    { 0x2756, "a79" },
    { 0x271f, "a8" },
    { 0x25d7, "a81" },
    { 0x2758, "a82" },
    { 0x2759, "a83" },
    { 0x275a, "a84" },
    { 0x276f, "a85" },
    { 0x2771, "a86" },
    { 0x2772, "a87" },
    { 0x2773, "a88" },
    { 0x2768, "a89" },
    { 0x2720, "a9" },
    { 0x2769, "a90" },
    { 0x276c, "a91" },
    { 0x276d, "a92" },
    { 0x276a, "a93" },
    { 0x276b, "a94" },
    { 0x2774, "a95" },
    { 0x2775, "a96" },
    { 0x275b, "a97" },
    { 0x275c, "a98" },
    { 0x275d, "a99" },
};
static const FcGlyphId _fc_name_to_ucs[271] = {
    123,
    81,
    198,
    154,
    142,
    186,
    82,
    -1,
    143,
    172,
    181,
    79,
    153,
    191,
    -1,
    -1,
    80,
    195,
    179,
    170,
    151,
    129,
    101,
    194,
    85,
    102,
    73,
    171,
    99,
    -1,
    -1,
    100,
    196,
    -1,
    189,
    163,
    110,
    199,
    -1,
    -1,
    59,
    50,
    -1,
    60,
    75,
    -1,
    51,
    -1,
    -1,
    58,
    -1,
    61,
    55,
    -1,
    192,
    56,
    62,
    -1,
    53,
    166,
    113,
    54,
    -1,
    157,
    33,
    188,
    177,
    21,
    -1,
    -1,
    31,
    -1,
    -1,
    32,
    -1,
    -1,
    24,
    160,
    -1,
    38,
    -1,
    -1,
    26,
    -1,
    161,
    27,
    197,
    94,
    95,
    105,
    106,
    90,
    91,
    92,
    93,
    86,
    87,
    88,
    89,
    28,
    29,
    39,
    40,
    10,
    11,
    17,
    18,
    6,
    7,
    8,
    9,
    2,
    3,
    4,
    5,
    -1,
    -1,
    114,
    108,
    146,
    74,
    -1,
    117,
    115,
    118,
    156,
    119,
    -1,
    120,
    -1,
    121,
    131,
    122,
    -1,
    109,
    -1,
    124,
    141,
    134,
    174,
    144,
    -1,
    137,
    155,
    138,
    -1,
    64,
    -1,
    140,
    152,
    65,
    -1,
    111,
    -1,
    57,
    162,
    -1,
    -1,
    67,
    -1,
    -1,
    150,
    68,
    -1,
    167,
    -1,
    69,
    164,
    -1,
    116,
    70,
    -1,
    -1,
    148,
    71,
    -1,
    -1,
    184,
    72,
    149,
    176,
    193,
    34,
    182,
    145,
    -1,
    83,
    187,
    -1,
    103,
    84,
    104,
    200,
    63,
    37,
    41,
    52,
    19,
    30,
    1,
    12,
    97,
    35,
    98,
    135,
    46,
    36,
    47,
    96,
    48,
    159,
    49,
    -1,
    42,
    112,
    43,
    173,
    44,
    168,
    45,
    -1,
    20,
    183,
    16,
    147,
    22,
    178,
    23,
    -1,
    15,
    -1,
    25,
    190,
    13,
    139,
    14,
    -1,
    -1,
    -1,
    128,
    107,
    125,
    -1,
    0,
    158,
    169,
    136,
    126,
    -1,
    -1,
    180,
    127,
    77,
    -1,
    -1,
    132,
    -1,
    78,
    -1,
    133,
    -1,
    165,
    66,
    130,
    -1,
    -1,
    -1,
    76,
    -1,
    185,
    175,
};
static const FcGlyphId _fc_ucs_to_name[271] = {
    56,
    135,
    19,
    138,
    58,
    140,
    59,
    142,
    60,
    144,
    61,
    146,
    62,
    149,
    64,
    151,
    152,
    153,
    154,
    155,
    156,
    157,
    159,
    160,
    161,
    162,
    163,
    131,
    165,
    166,
    167,
    168,
    170,
    -1,
    172,
    -1,
    174,
    112,
    175,
    113,
    -1,
    173,
    -1,
    179,
    -1,
    182,
    183,
    158,
    198,
    199,
    200,
    2,
    -1,
    -1,
    3,
    4,
    5,
    6,
    8,
    9,
    10,
    189,
    164,
    194,
    195,
    192,
    193,
    114,
    11,
    115,
    186,
    15,
    188,
    13,
    14,
    31,
    32,
    33,
    34,
    35,
    36,
    37,
    38,
    39,
    40,
    42,
    43,
    44,
    45,
    46,
    47,
    48,
    49,
    50,
    51,
    53,
    54,
    55,
    20,
    21,
    22,
    23,
    24,
    25,
    26,
    27,
    28,
    29,
    -1,
    103,
    69,
    99,
    70,
    71,
    72,
    73,
    75,
    76,
    77,
    78,
    66,
    79,
    80,
    81,
    82,
    83,
    84,
    100,
    86,
    106,
    87,
    109,
    88,
    -1,
    110,
    89,
    90,
    104,
    91,
    101,
    105,
    92,
    102,
    93,
    94,
    95,
    97,
    98,
    196,
    -1,
    134,
    -1,
    -1,
    -1,
    -1,
    -1,
    137,
    -1,
    -1,
    -1,
    -1,
    -1,
    139,
    -1,
    -1,
    176,
    -1,
    -1,
    141,
    184,
    -1,
    -1,
    -1,
    -1,
    143,
    177,
    57,
    -1,
    -1,
    -1,
    145,
    -1,
    -1,
    -1,
    -1,
    178,
    148,
    -1,
    -1,
    -1,
    -1,
    -1,
    150,
    65,
    171,
    67,
    68,
    -1,
    -1,
    191,
    -1,
    -1,
    181,
    -1,
    -1,
    -1,
    -1,
    -1,
    -1,
    -1,
    -1,
    185,
    -1,
    -1,
    -1,
    -1,
    -1,
    187,
    -1,
    -1,
    -1,
    133,
    -1,
    197,
    -1,
    -1,
    -1,
    -1,
    -1,
    0,
    107,
    111,
    125,
    -1,
    147,
    18,
    17,
    16,
    -1,
    -1,
    30,
    41,
    52,
    63,
    7,
    74,
    85,
    96,
    108,
    116,
    117,
    118,
    119,
    120,
    121,
    122,
    123,
    136,
    169,
    180,
    190,
    1,
    124,
    126,
    127,
    128,
    129,
    130,
    -1,
    132,
    12,
};