Coverage Report

Created: 2025-07-17 06:59

/src/libunistring/lib/unicase/special-casing-table.h
Line
Count
Source
1
/* ANSI-C code produced by gperf version 3.1 */
2
/* Command-line: gperf -m 10 unicase/special-casing-table.gperf  */
3
/* Computed positions: -k'1-3' */
4
5
6
#define TOTAL_KEYWORDS 122
7
17.8M
#define MIN_WORD_LENGTH 3
8
35.7M
#define MAX_WORD_LENGTH 3
9
#define MIN_HASH_VALUE 0
10
17.8M
#define MAX_HASH_VALUE 121
11
/* maximum key range = 122, duplicates = 0 */
12
13
#ifdef __GNUC__
14
__inline
15
#else
16
#ifdef __cplusplus
17
inline
18
#endif
19
#endif
20
/*ARGSUSED*/
21
static unsigned int
22
gl_unicase_special_hash (register const char *str, register size_t len)
23
17.8M
{
24
17.8M
  static const unsigned char asso_values[] =
25
17.8M
    {
26
17.8M
        2,   0,   4,   5,  37,  12, 121,   4, 122, 122,
27
17.8M
      122, 122, 122, 122, 122, 122, 122, 122, 122, 120,
28
17.8M
      119, 118, 117, 116, 122, 122, 122, 122, 122, 122,
29
17.8M
        5,   3, 122, 122, 122, 122, 122, 122, 122, 122,
30
17.8M
      115, 122, 122, 122, 122, 122, 114, 122,   6, 122,
31
17.8M
      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
32
17.8M
      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
33
17.8M
      122, 122, 122,   1, 111, 122, 122, 122, 122, 122,
34
17.8M
      109, 122, 108, 122, 107, 122, 106, 122, 122, 122,
35
17.8M
      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
36
17.8M
      122, 122, 122, 122, 122,  33, 122, 122, 122, 122,
37
17.8M
      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
38
17.8M
      122, 122, 122, 122, 122, 122, 122, 122, 105, 104,
39
17.8M
      103, 102, 101, 100,  99,  31,  98,  97,  96,  95,
40
17.8M
       94,  93,  92,  91,  28,  90,  89,  88,  87,  86,
41
17.8M
       27,  24,  23,  20,  19,  85,  84,  83,  16,  82,
42
17.8M
       81,  80,  79,  15,  78,  77,  76,  75,  74,  73,
43
17.8M
       72,  71,  70,  69,  68,  67,  64, 122,  65,  64,
44
17.8M
       63, 122,  62,  61, 122, 122, 122, 122,  60, 122,
45
17.8M
      122, 122, 122, 122,  59,  58,  57, 122,  56,  55,
46
17.8M
      122, 122, 122, 122,  14,  55, 122, 122, 122, 122,
47
17.8M
       53,  52, 122, 122,  51,  50, 122, 122, 122, 122,
48
17.8M
      122, 122, 122,  50, 122, 122,  48,  47,  46, 122,
49
17.8M
       45,  44, 122, 122, 122, 122, 122, 122, 122, 122,
50
17.8M
       46, 122,  42,  41,  39, 122,  38,  35, 122, 122,
51
17.8M
      122,   0,  33, 122, 122, 122, 122
52
17.8M
    };
53
17.8M
  return asso_values[(unsigned char)str[2]+1] + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]];
54
17.8M
}
55
56
const struct special_casing_rule *
57
gl_unicase_special_lookup (register const char *str, register size_t len)
58
17.8M
{
59
17.8M
  static const unsigned char lengthtable[] =
60
17.8M
    {
61
17.8M
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
62
17.8M
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
63
17.8M
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
64
17.8M
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
65
17.8M
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
66
17.8M
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
67
17.8M
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
68
17.8M
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
69
17.8M
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3
70
17.8M
    };
71
17.8M
  static const struct special_casing_rule wordlist[] =
72
17.8M
    {
73
17.8M
#line 150 "unicase/special-casing-table.gperf"
74
17.8M
      {"\373\001\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0046, 0x0049,      0 }, { 0xFB01,      0,      0 }, { 0x0046, 0x0069,      0 }, { 0x0066, 0x0069,      0 }},
75
17.8M
#line 55 "unicase/special-casing-table.gperf"
76
17.8M
      {"\001I\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x02BC, 0x004E,      0 }, { 0x0149,      0,      0 }, { 0x02BC, 0x004E,      0 }, { 0x02BC, 0x006E,      0 }},
77
17.8M
#line 149 "unicase/special-casing-table.gperf"
78
17.8M
      {"\373\000\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0046, 0x0046,      0 }, { 0xFB00,      0,      0 }, { 0x0046, 0x0066,      0 }, { 0x0066, 0x0066,      0 }},
79
17.8M
#line 39 "unicase/special-casing-table.gperf"
80
17.8M
      {"\000I\000", 1,  SCC_MORE_ABOVE       , {  'l',  't' }, { 0x0049,      0,      0 }, { 0x0069, 0x0307,      0 }, { 0x0049,      0,      0 }, { 0x0069,      0,      0 }},
81
17.8M
#line 151 "unicase/special-casing-table.gperf"
82
17.8M
      {"\373\002\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0046, 0x004C,      0 }, { 0xFB02,      0,      0 }, { 0x0046, 0x006C,      0 }, { 0x0066, 0x006C,      0 }},
83
17.8M
#line 152 "unicase/special-casing-table.gperf"
84
17.8M
      {"\373\003\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0046, 0x0046, 0x0049 }, { 0xFB03,      0,      0 }, { 0x0046, 0x0066, 0x0069 }, { 0x0066, 0x0066, 0x0069 }},
85
17.8M
#line 52 "unicase/special-casing-table.gperf"
86
17.8M
      {"\0010\000", 1,  SCC_ALWAYS           , {  't',  'r' }, { 0x0130,      0,      0 }, { 0x0069,      0,      0 }, { 0x0130,      0,      0 }, { 0x0069,      0,      0 }},
87
17.8M
#line 40 "unicase/special-casing-table.gperf"
88
17.8M
      {"\000I\001", 1, -SCC_BEFORE_DOT       , {  't',  'r' }, { 0x0049,      0,      0 }, { 0x0131,      0,      0 }, { 0x0049,      0,      0 }, { 0x0131,      0,      0 }},
89
17.8M
#line 41 "unicase/special-casing-table.gperf"
90
17.8M
      {"\000I\002", 1, -SCC_BEFORE_DOT       , {  'a',  'z' }, { 0x0049,      0,      0 }, { 0x0131,      0,      0 }, { 0x0049,      0,      0 }, { 0x0131,      0,      0 }},
91
17.8M
#line 57 "unicase/special-casing-table.gperf"
92
17.8M
      {"\003\007\000", 1,  SCC_AFTER_SOFT_DOTTED, {  'l',  't' }, {      0,      0,      0 }, { 0x0307,      0,      0 }, {      0,      0,      0 }, { 0x0307,      0,      0 }},
93
17.8M
#line 53 "unicase/special-casing-table.gperf"
94
17.8M
      {"\0010\001", 1,  SCC_ALWAYS           , {  'a',  'z' }, { 0x0130,      0,      0 }, { 0x0069,      0,      0 }, { 0x0130,      0,      0 }, { 0x0069,      0,      0 }},
95
17.8M
#line 54 "unicase/special-casing-table.gperf"
96
17.8M
      {"\0010\002", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0130,      0,      0 }, { 0x0069, 0x0307,      0 }, { 0x0130,      0,      0 }, { 0x0069, 0x0307,      0 }},
97
17.8M
#line 154 "unicase/special-casing-table.gperf"
98
17.8M
      {"\373\005\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0053, 0x0054,      0 }, { 0xFB05,      0,      0 }, { 0x0053, 0x0074,      0 }, { 0x0073, 0x0074,      0 }},
99
17.8M
#line 58 "unicase/special-casing-table.gperf"
100
17.8M
      {"\003\007\001", 1,  SCC_AFTER_I          , {  't',  'r' }, { 0x0307,      0,      0 }, {      0,      0,      0 }, { 0x0307,      0,      0 }, { 0x0307,      0,      0 }},
101
17.8M
#line 59 "unicase/special-casing-table.gperf"
102
17.8M
      {"\003\007\002", 0,  SCC_AFTER_I          , {  'a',  'z' }, { 0x0307,      0,      0 }, {      0,      0,      0 }, { 0x0307,      0,      0 }, { 0x0307,      0,      0 }},
103
17.8M
#line 43 "unicase/special-casing-table.gperf"
104
17.8M
      {"\000I\004", 0,  SCC_ALWAYS           , {  'a',  'z' }, { 0x0049,      0,      0 }, { 0x0069,      0,      0 }, { 0x0049,      0,      0 }, { 0x0131,      0,      0 }},
105
17.8M
#line 47 "unicase/special-casing-table.gperf"
106
17.8M
      {"\000\314\000", 0,  SCC_ALWAYS           , {  'l',  't' }, { 0x00CC,      0,      0 }, { 0x0069, 0x0307, 0x0300 }, { 0x00CC,      0,      0 }, { 0x00EC,      0,      0 }},
107
17.8M
#line 133 "unicase/special-casing-table.gperf"
108
17.8M
      {"\037\314\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0397, 0x0399,      0 }, { 0x1FC3,      0,      0 }, { 0x1FCC,      0,      0 }, { 0x03B7, 0x03B9,      0 }},
109
17.8M
#line 109 "unicase/special-casing-table.gperf"
110
17.8M
      {"\037\243\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6B, 0x0399,      0 }, { 0x1FA3,      0,      0 }, { 0x1FAB,      0,      0 }, { 0x1F63, 0x03B9,      0 }},
111
17.8M
#line 104 "unicase/special-casing-table.gperf"
112
17.8M
      {"\037\236\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2E, 0x0399,      0 }, { 0x1F96,      0,      0 }, { 0x1F9E,      0,      0 }, { 0x1F26, 0x03B9,      0 }},
113
17.8M
#line 61 "unicase/special-casing-table.gperf"
114
17.8M
      {"\003\243\000", 0,  SCC_FINAL_SIGMA      , { '\0', '\0' }, { 0x03A3,      0,      0 }, { 0x03C2,      0,      0 }, { 0x03A3,      0,      0 }, { 0x03C3,      0,      0 }},
115
17.8M
#line 69 "unicase/special-casing-table.gperf"
116
17.8M
      {"\036\236\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1E9E,      0,      0 }, { 0x00DF,      0,      0 }, { 0x1E9E,      0,      0 }, { 0x0073, 0x0073,      0 }},
117
17.8M
#line 100 "unicase/special-casing-table.gperf"
118
17.8M
      {"\037\232\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2A, 0x0399,      0 }, { 0x1F92,      0,      0 }, { 0x1F9A,      0,      0 }, { 0x1F22, 0x03B9,      0 }},
119
17.8M
#line 99 "unicase/special-casing-table.gperf"
120
17.8M
      {"\037\231\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F29, 0x0399,      0 }, { 0x1F91,      0,      0 }, { 0x1F99,      0,      0 }, { 0x1F21, 0x03B9,      0 }},
121
17.8M
#line 68 "unicase/special-casing-table.gperf"
122
17.8M
      {"\036\232\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0041, 0x02BE,      0 }, { 0x1E9A,      0,      0 }, { 0x0041, 0x02BE,      0 }, { 0x0061, 0x02BE,      0 }},
123
17.8M
#line 67 "unicase/special-casing-table.gperf"
124
17.8M
      {"\036\231\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0059, 0x030A,      0 }, { 0x1E99,      0,      0 }, { 0x0059, 0x030A,      0 }, { 0x0079, 0x030A,      0 }},
125
17.8M
#line 98 "unicase/special-casing-table.gperf"
126
17.8M
      {"\037\230\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F28, 0x0399,      0 }, { 0x1F90,      0,      0 }, { 0x1F98,      0,      0 }, { 0x1F20, 0x03B9,      0 }},
127
17.8M
#line 97 "unicase/special-casing-table.gperf"
128
17.8M
      {"\037\227\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2F, 0x0399,      0 }, { 0x1F97,      0,      0 }, { 0x1F9F,      0,      0 }, { 0x1F27, 0x03B9,      0 }},
129
17.8M
#line 66 "unicase/special-casing-table.gperf"
130
17.8M
      {"\036\230\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0057, 0x030A,      0 }, { 0x1E98,      0,      0 }, { 0x0057, 0x030A,      0 }, { 0x0077, 0x030A,      0 }},
131
17.8M
#line 65 "unicase/special-casing-table.gperf"
132
17.8M
      {"\036\227\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0054, 0x0308,      0 }, { 0x1E97,      0,      0 }, { 0x0054, 0x0308,      0 }, { 0x0074, 0x0308,      0 }},
133
17.8M
#line 96 "unicase/special-casing-table.gperf"
134
17.8M
      {"\037\226\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2E, 0x0399,      0 }, { 0x1F96,      0,      0 }, { 0x1F9E,      0,      0 }, { 0x1F26, 0x03B9,      0 }},
135
17.8M
#line 90 "unicase/special-casing-table.gperf"
136
17.8M
      {"\037\220\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F28, 0x0399,      0 }, { 0x1F90,      0,      0 }, { 0x1F98,      0,      0 }, { 0x1F20, 0x03B9,      0 }},
137
17.8M
#line 64 "unicase/special-casing-table.gperf"
138
17.8M
      {"\036\226\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0048, 0x0331,      0 }, { 0x1E96,      0,      0 }, { 0x0048, 0x0331,      0 }, { 0x0068, 0x0331,      0 }},
139
17.8M
#line 60 "unicase/special-casing-table.gperf"
140
17.8M
      {"\003\220\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0399, 0x0308, 0x0301 }, { 0x0390,      0,      0 }, { 0x0399, 0x0308, 0x0301 }, { 0x03B9, 0x0308, 0x0301 }},
141
17.8M
#line 81 "unicase/special-casing-table.gperf"
142
17.8M
      {"\037\207\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0F, 0x0399,      0 }, { 0x1F87,      0,      0 }, { 0x1F8F,      0,      0 }, { 0x1F07, 0x03B9,      0 }},
143
17.8M
#line 45 "unicase/special-casing-table.gperf"
144
17.8M
      {"\000i\000", 1,  SCC_ALWAYS           , {  't',  'r' }, { 0x0130,      0,      0 }, { 0x0069,      0,      0 }, { 0x0130,      0,      0 }, { 0x0069,      0,      0 }},
145
17.8M
#line 148 "unicase/special-casing-table.gperf"
146
17.8M
      {"\037\374\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A9, 0x0399,      0 }, { 0x1FF3,      0,      0 }, { 0x1FFC,      0,      0 }, { 0x03C9, 0x03B9,      0 }},
147
17.8M
#line 153 "unicase/special-casing-table.gperf"
148
17.8M
      {"\373\004\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0046, 0x0046, 0x004C }, { 0xFB04,      0,      0 }, { 0x0046, 0x0066, 0x006C }, { 0x0066, 0x0066, 0x006C }},
149
17.8M
#line 147 "unicase/special-casing-table.gperf"
150
17.8M
      {"\037\367\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A9, 0x0342, 0x0399 }, { 0x1FF7,      0,      0 }, { 0x03A9, 0x0342, 0x0345 }, { 0x03C9, 0x0342, 0x03B9 }},
151
17.8M
#line 46 "unicase/special-casing-table.gperf"
152
17.8M
      {"\000i\001", 0,  SCC_ALWAYS           , {  'a',  'z' }, { 0x0130,      0,      0 }, { 0x0069,      0,      0 }, { 0x0130,      0,      0 }, { 0x0069,      0,      0 }},
153
17.8M
#line 42 "unicase/special-casing-table.gperf"
154
17.8M
      {"\000I\003", 1,  SCC_ALWAYS           , {  't',  'r' }, { 0x0049,      0,      0 }, { 0x0069,      0,      0 }, { 0x0049,      0,      0 }, { 0x0131,      0,      0 }},
155
17.8M
#line 146 "unicase/special-casing-table.gperf"
156
17.8M
      {"\037\366\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A9, 0x0342,      0 }, { 0x1FF6,      0,      0 }, { 0x03A9, 0x0342,      0 }, { 0x03C9, 0x0342,      0 }},
157
17.8M
#line 145 "unicase/special-casing-table.gperf"
158
17.8M
      {"\037\364\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x038F, 0x0399,      0 }, { 0x1FF4,      0,      0 }, { 0x038F, 0x0345,      0 }, { 0x03CE, 0x03B9,      0 }},
159
17.8M
#line 63 "unicase/special-casing-table.gperf"
160
17.8M
      {"\005\207\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0535, 0x0552,      0 }, { 0x0587,      0,      0 }, { 0x0535, 0x0582,      0 }, { 0x0565, 0x0582,      0 }},
161
17.8M
#line 144 "unicase/special-casing-table.gperf"
162
17.8M
      {"\037\363\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A9, 0x0399,      0 }, { 0x1FF3,      0,      0 }, { 0x1FFC,      0,      0 }, { 0x03C9, 0x03B9,      0 }},
163
17.8M
#line 143 "unicase/special-casing-table.gperf"
164
17.8M
      {"\037\362\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1FFA, 0x0399,      0 }, { 0x1FF2,      0,      0 }, { 0x1FFA, 0x0345,      0 }, { 0x1F7C, 0x03B9,      0 }},
165
17.8M
#line 56 "unicase/special-casing-table.gperf"
166
17.8M
      {"\001\360\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x004A, 0x030C,      0 }, { 0x01F0,      0,      0 }, { 0x004A, 0x030C,      0 }, { 0x006A, 0x030C,      0 }},
167
17.8M
#line 142 "unicase/special-casing-table.gperf"
168
17.8M
      {"\037\347\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0342 }, { 0x1FE7,      0,      0 }, { 0x03A5, 0x0308, 0x0342 }, { 0x03C5, 0x0308, 0x0342 }},
169
17.8M
#line 141 "unicase/special-casing-table.gperf"
170
17.8M
      {"\037\346\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A5, 0x0342,      0 }, { 0x1FE6,      0,      0 }, { 0x03A5, 0x0342,      0 }, { 0x03C5, 0x0342,      0 }},
171
17.8M
#line 140 "unicase/special-casing-table.gperf"
172
17.8M
      {"\037\344\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A1, 0x0313,      0 }, { 0x1FE4,      0,      0 }, { 0x03A1, 0x0313,      0 }, { 0x03C1, 0x0313,      0 }},
173
17.8M
#line 139 "unicase/special-casing-table.gperf"
174
17.8M
      {"\037\343\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0301 }, { 0x1FE3,      0,      0 }, { 0x03A5, 0x0308, 0x0301 }, { 0x03C5, 0x0308, 0x0301 }},
175
17.8M
#line 138 "unicase/special-casing-table.gperf"
176
17.8M
      {"\037\342\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0300 }, { 0x1FE2,      0,      0 }, { 0x03A5, 0x0308, 0x0300 }, { 0x03C5, 0x0308, 0x0300 }},
177
17.8M
#line 49 "unicase/special-casing-table.gperf"
178
17.8M
      {"\000\337\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0053, 0x0053,      0 }, { 0x00DF,      0,      0 }, { 0x0053, 0x0073,      0 }, { 0x0073, 0x0073,      0 }},
179
17.8M
#line 137 "unicase/special-casing-table.gperf"
180
17.8M
      {"\037\327\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0399, 0x0308, 0x0342 }, { 0x1FD7,      0,      0 }, { 0x0399, 0x0308, 0x0342 }, { 0x03B9, 0x0308, 0x0342 }},
181
17.8M
#line 136 "unicase/special-casing-table.gperf"
182
17.8M
      {"\037\326\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0399, 0x0342,      0 }, { 0x1FD6,      0,      0 }, { 0x0399, 0x0342,      0 }, { 0x03B9, 0x0342,      0 }},
183
17.8M
#line 135 "unicase/special-casing-table.gperf"
184
17.8M
      {"\037\323\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0399, 0x0308, 0x0301 }, { 0x1FD3,      0,      0 }, { 0x0399, 0x0308, 0x0301 }, { 0x03B9, 0x0308, 0x0301 }},
185
17.8M
#line 134 "unicase/special-casing-table.gperf"
186
17.8M
      {"\037\322\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0399, 0x0308, 0x0300 }, { 0x1FD2,      0,      0 }, { 0x0399, 0x0308, 0x0300 }, { 0x03B9, 0x0308, 0x0300 }},
187
17.8M
#line 48 "unicase/special-casing-table.gperf"
188
17.8M
      {"\000\315\000", 0,  SCC_ALWAYS           , {  'l',  't' }, { 0x00CD,      0,      0 }, { 0x0069, 0x0307, 0x0301 }, { 0x00CD,      0,      0 }, { 0x00ED,      0,      0 }},
189
17.8M
#line 132 "unicase/special-casing-table.gperf"
190
17.8M
      {"\037\307\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0397, 0x0342, 0x0399 }, { 0x1FC7,      0,      0 }, { 0x0397, 0x0342, 0x0345 }, { 0x03B7, 0x0342, 0x03B9 }},
191
17.8M
#line 131 "unicase/special-casing-table.gperf"
192
17.8M
      {"\037\306\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0397, 0x0342,      0 }, { 0x1FC6,      0,      0 }, { 0x0397, 0x0342,      0 }, { 0x03B7, 0x0342,      0 }},
193
17.8M
#line 130 "unicase/special-casing-table.gperf"
194
17.8M
      {"\037\304\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0389, 0x0399,      0 }, { 0x1FC4,      0,      0 }, { 0x0389, 0x0345,      0 }, { 0x03AE, 0x03B9,      0 }},
195
17.8M
#line 129 "unicase/special-casing-table.gperf"
196
17.8M
      {"\037\303\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0397, 0x0399,      0 }, { 0x1FC3,      0,      0 }, { 0x1FCC,      0,      0 }, { 0x03B7, 0x03B9,      0 }},
197
17.8M
#line 128 "unicase/special-casing-table.gperf"
198
17.8M
      {"\037\302\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1FCA, 0x0399,      0 }, { 0x1FC2,      0,      0 }, { 0x1FCA, 0x0345,      0 }, { 0x1F74, 0x03B9,      0 }},
199
17.8M
#line 127 "unicase/special-casing-table.gperf"
200
17.8M
      {"\037\274\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0391, 0x0399,      0 }, { 0x1FB3,      0,      0 }, { 0x1FBC,      0,      0 }, { 0x03B1, 0x03B9,      0 }},
201
17.8M
#line 126 "unicase/special-casing-table.gperf"
202
17.8M
      {"\037\267\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0391, 0x0342, 0x0399 }, { 0x1FB7,      0,      0 }, { 0x0391, 0x0342, 0x0345 }, { 0x03B1, 0x0342, 0x03B9 }},
203
17.8M
#line 125 "unicase/special-casing-table.gperf"
204
17.8M
      {"\037\266\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0391, 0x0342,      0 }, { 0x1FB6,      0,      0 }, { 0x0391, 0x0342,      0 }, { 0x03B1, 0x0342,      0 }},
205
17.8M
#line 124 "unicase/special-casing-table.gperf"
206
17.8M
      {"\037\264\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0386, 0x0399,      0 }, { 0x1FB4,      0,      0 }, { 0x0386, 0x0345,      0 }, { 0x03AC, 0x03B9,      0 }},
207
17.8M
#line 123 "unicase/special-casing-table.gperf"
208
17.8M
      {"\037\263\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0391, 0x0399,      0 }, { 0x1FB3,      0,      0 }, { 0x1FBC,      0,      0 }, { 0x03B1, 0x03B9,      0 }},
209
17.8M
#line 122 "unicase/special-casing-table.gperf"
210
17.8M
      {"\037\262\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1FBA, 0x0399,      0 }, { 0x1FB2,      0,      0 }, { 0x1FBA, 0x0345,      0 }, { 0x1F70, 0x03B9,      0 }},
211
17.8M
#line 62 "unicase/special-casing-table.gperf"
212
17.8M
      {"\003\260\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0301 }, { 0x03B0,      0,      0 }, { 0x03A5, 0x0308, 0x0301 }, { 0x03C5, 0x0308, 0x0301 }},
213
17.8M
#line 121 "unicase/special-casing-table.gperf"
214
17.8M
      {"\037\257\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6F, 0x0399,      0 }, { 0x1FA7,      0,      0 }, { 0x1FAF,      0,      0 }, { 0x1F67, 0x03B9,      0 }},
215
17.8M
#line 120 "unicase/special-casing-table.gperf"
216
17.8M
      {"\037\256\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6E, 0x0399,      0 }, { 0x1FA6,      0,      0 }, { 0x1FAE,      0,      0 }, { 0x1F66, 0x03B9,      0 }},
217
17.8M
#line 119 "unicase/special-casing-table.gperf"
218
17.8M
      {"\037\255\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6D, 0x0399,      0 }, { 0x1FA5,      0,      0 }, { 0x1FAD,      0,      0 }, { 0x1F65, 0x03B9,      0 }},
219
17.8M
#line 118 "unicase/special-casing-table.gperf"
220
17.8M
      {"\037\254\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6C, 0x0399,      0 }, { 0x1FA4,      0,      0 }, { 0x1FAC,      0,      0 }, { 0x1F64, 0x03B9,      0 }},
221
17.8M
#line 117 "unicase/special-casing-table.gperf"
222
17.8M
      {"\037\253\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6B, 0x0399,      0 }, { 0x1FA3,      0,      0 }, { 0x1FAB,      0,      0 }, { 0x1F63, 0x03B9,      0 }},
223
17.8M
#line 116 "unicase/special-casing-table.gperf"
224
17.8M
      {"\037\252\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6A, 0x0399,      0 }, { 0x1FA2,      0,      0 }, { 0x1FAA,      0,      0 }, { 0x1F62, 0x03B9,      0 }},
225
17.8M
#line 115 "unicase/special-casing-table.gperf"
226
17.8M
      {"\037\251\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F69, 0x0399,      0 }, { 0x1FA1,      0,      0 }, { 0x1FA9,      0,      0 }, { 0x1F61, 0x03B9,      0 }},
227
17.8M
#line 114 "unicase/special-casing-table.gperf"
228
17.8M
      {"\037\250\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F68, 0x0399,      0 }, { 0x1FA0,      0,      0 }, { 0x1FA8,      0,      0 }, { 0x1F60, 0x03B9,      0 }},
229
17.8M
#line 113 "unicase/special-casing-table.gperf"
230
17.8M
      {"\037\247\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6F, 0x0399,      0 }, { 0x1FA7,      0,      0 }, { 0x1FAF,      0,      0 }, { 0x1F67, 0x03B9,      0 }},
231
17.8M
#line 112 "unicase/special-casing-table.gperf"
232
17.8M
      {"\037\246\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6E, 0x0399,      0 }, { 0x1FA6,      0,      0 }, { 0x1FAE,      0,      0 }, { 0x1F66, 0x03B9,      0 }},
233
17.8M
#line 111 "unicase/special-casing-table.gperf"
234
17.8M
      {"\037\245\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6D, 0x0399,      0 }, { 0x1FA5,      0,      0 }, { 0x1FAD,      0,      0 }, { 0x1F65, 0x03B9,      0 }},
235
17.8M
#line 110 "unicase/special-casing-table.gperf"
236
17.8M
      {"\037\244\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6C, 0x0399,      0 }, { 0x1FA4,      0,      0 }, { 0x1FAC,      0,      0 }, { 0x1F64, 0x03B9,      0 }},
237
17.8M
#line 108 "unicase/special-casing-table.gperf"
238
17.8M
      {"\037\242\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F6A, 0x0399,      0 }, { 0x1FA2,      0,      0 }, { 0x1FAA,      0,      0 }, { 0x1F62, 0x03B9,      0 }},
239
17.8M
#line 107 "unicase/special-casing-table.gperf"
240
17.8M
      {"\037\241\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F69, 0x0399,      0 }, { 0x1FA1,      0,      0 }, { 0x1FA9,      0,      0 }, { 0x1F61, 0x03B9,      0 }},
241
17.8M
#line 106 "unicase/special-casing-table.gperf"
242
17.8M
      {"\037\240\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F68, 0x0399,      0 }, { 0x1FA0,      0,      0 }, { 0x1FA8,      0,      0 }, { 0x1F60, 0x03B9,      0 }},
243
17.8M
#line 105 "unicase/special-casing-table.gperf"
244
17.8M
      {"\037\237\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2F, 0x0399,      0 }, { 0x1F97,      0,      0 }, { 0x1F9F,      0,      0 }, { 0x1F27, 0x03B9,      0 }},
245
17.8M
#line 103 "unicase/special-casing-table.gperf"
246
17.8M
      {"\037\235\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2D, 0x0399,      0 }, { 0x1F95,      0,      0 }, { 0x1F9D,      0,      0 }, { 0x1F25, 0x03B9,      0 }},
247
17.8M
#line 102 "unicase/special-casing-table.gperf"
248
17.8M
      {"\037\234\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2C, 0x0399,      0 }, { 0x1F94,      0,      0 }, { 0x1F9C,      0,      0 }, { 0x1F24, 0x03B9,      0 }},
249
17.8M
#line 101 "unicase/special-casing-table.gperf"
250
17.8M
      {"\037\233\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2B, 0x0399,      0 }, { 0x1F93,      0,      0 }, { 0x1F9B,      0,      0 }, { 0x1F23, 0x03B9,      0 }},
251
17.8M
#line 95 "unicase/special-casing-table.gperf"
252
17.8M
      {"\037\225\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2D, 0x0399,      0 }, { 0x1F95,      0,      0 }, { 0x1F9D,      0,      0 }, { 0x1F25, 0x03B9,      0 }},
253
17.8M
#line 94 "unicase/special-casing-table.gperf"
254
17.8M
      {"\037\224\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2C, 0x0399,      0 }, { 0x1F94,      0,      0 }, { 0x1F9C,      0,      0 }, { 0x1F24, 0x03B9,      0 }},
255
17.8M
#line 93 "unicase/special-casing-table.gperf"
256
17.8M
      {"\037\223\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2B, 0x0399,      0 }, { 0x1F93,      0,      0 }, { 0x1F9B,      0,      0 }, { 0x1F23, 0x03B9,      0 }},
257
17.8M
#line 92 "unicase/special-casing-table.gperf"
258
17.8M
      {"\037\222\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F2A, 0x0399,      0 }, { 0x1F92,      0,      0 }, { 0x1F9A,      0,      0 }, { 0x1F22, 0x03B9,      0 }},
259
17.8M
#line 91 "unicase/special-casing-table.gperf"
260
17.8M
      {"\037\221\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F29, 0x0399,      0 }, { 0x1F91,      0,      0 }, { 0x1F99,      0,      0 }, { 0x1F21, 0x03B9,      0 }},
261
17.8M
#line 89 "unicase/special-casing-table.gperf"
262
17.8M
      {"\037\217\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0F, 0x0399,      0 }, { 0x1F87,      0,      0 }, { 0x1F8F,      0,      0 }, { 0x1F07, 0x03B9,      0 }},
263
17.8M
#line 88 "unicase/special-casing-table.gperf"
264
17.8M
      {"\037\216\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0E, 0x0399,      0 }, { 0x1F86,      0,      0 }, { 0x1F8E,      0,      0 }, { 0x1F06, 0x03B9,      0 }},
265
17.8M
#line 87 "unicase/special-casing-table.gperf"
266
17.8M
      {"\037\215\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0D, 0x0399,      0 }, { 0x1F85,      0,      0 }, { 0x1F8D,      0,      0 }, { 0x1F05, 0x03B9,      0 }},
267
17.8M
#line 86 "unicase/special-casing-table.gperf"
268
17.8M
      {"\037\214\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0C, 0x0399,      0 }, { 0x1F84,      0,      0 }, { 0x1F8C,      0,      0 }, { 0x1F04, 0x03B9,      0 }},
269
17.8M
#line 85 "unicase/special-casing-table.gperf"
270
17.8M
      {"\037\213\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0B, 0x0399,      0 }, { 0x1F83,      0,      0 }, { 0x1F8B,      0,      0 }, { 0x1F03, 0x03B9,      0 }},
271
17.8M
#line 84 "unicase/special-casing-table.gperf"
272
17.8M
      {"\037\212\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0A, 0x0399,      0 }, { 0x1F82,      0,      0 }, { 0x1F8A,      0,      0 }, { 0x1F02, 0x03B9,      0 }},
273
17.8M
#line 83 "unicase/special-casing-table.gperf"
274
17.8M
      {"\037\211\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F09, 0x0399,      0 }, { 0x1F81,      0,      0 }, { 0x1F89,      0,      0 }, { 0x1F01, 0x03B9,      0 }},
275
17.8M
#line 82 "unicase/special-casing-table.gperf"
276
17.8M
      {"\037\210\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F08, 0x0399,      0 }, { 0x1F80,      0,      0 }, { 0x1F88,      0,      0 }, { 0x1F00, 0x03B9,      0 }},
277
17.8M
#line 80 "unicase/special-casing-table.gperf"
278
17.8M
      {"\037\206\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0E, 0x0399,      0 }, { 0x1F86,      0,      0 }, { 0x1F8E,      0,      0 }, { 0x1F06, 0x03B9,      0 }},
279
17.8M
#line 79 "unicase/special-casing-table.gperf"
280
17.8M
      {"\037\205\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0D, 0x0399,      0 }, { 0x1F85,      0,      0 }, { 0x1F8D,      0,      0 }, { 0x1F05, 0x03B9,      0 }},
281
17.8M
#line 78 "unicase/special-casing-table.gperf"
282
17.8M
      {"\037\204\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0C, 0x0399,      0 }, { 0x1F84,      0,      0 }, { 0x1F8C,      0,      0 }, { 0x1F04, 0x03B9,      0 }},
283
17.8M
#line 77 "unicase/special-casing-table.gperf"
284
17.8M
      {"\037\203\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0B, 0x0399,      0 }, { 0x1F83,      0,      0 }, { 0x1F8B,      0,      0 }, { 0x1F03, 0x03B9,      0 }},
285
17.8M
#line 76 "unicase/special-casing-table.gperf"
286
17.8M
      {"\037\202\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F0A, 0x0399,      0 }, { 0x1F82,      0,      0 }, { 0x1F8A,      0,      0 }, { 0x1F02, 0x03B9,      0 }},
287
17.8M
#line 75 "unicase/special-casing-table.gperf"
288
17.8M
      {"\037\201\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F09, 0x0399,      0 }, { 0x1F81,      0,      0 }, { 0x1F89,      0,      0 }, { 0x1F01, 0x03B9,      0 }},
289
17.8M
#line 74 "unicase/special-casing-table.gperf"
290
17.8M
      {"\037\200\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x1F08, 0x0399,      0 }, { 0x1F80,      0,      0 }, { 0x1F88,      0,      0 }, { 0x1F00, 0x03B9,      0 }},
291
17.8M
#line 73 "unicase/special-casing-table.gperf"
292
17.8M
      {"\037V\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0342 }, { 0x1F56,      0,      0 }, { 0x03A5, 0x0313, 0x0342 }, { 0x03C5, 0x0313, 0x0342 }},
293
17.8M
#line 72 "unicase/special-casing-table.gperf"
294
17.8M
      {"\037T\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0301 }, { 0x1F54,      0,      0 }, { 0x03A5, 0x0313, 0x0301 }, { 0x03C5, 0x0313, 0x0301 }},
295
17.8M
#line 71 "unicase/special-casing-table.gperf"
296
17.8M
      {"\037R\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0300 }, { 0x1F52,      0,      0 }, { 0x03A5, 0x0313, 0x0300 }, { 0x03C5, 0x0313, 0x0300 }},
297
17.8M
#line 70 "unicase/special-casing-table.gperf"
298
17.8M
      {"\037P\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x03A5, 0x0313,      0 }, { 0x1F50,      0,      0 }, { 0x03A5, 0x0313,      0 }, { 0x03C5, 0x0313,      0 }},
299
17.8M
#line 44 "unicase/special-casing-table.gperf"
300
17.8M
      {"\000J\000", 0,  SCC_MORE_ABOVE       , {  'l',  't' }, { 0x004A,      0,      0 }, { 0x006A, 0x0307,      0 }, { 0x004A,      0,      0 }, { 0x006A,      0,      0 }},
301
17.8M
#line 51 "unicase/special-casing-table.gperf"
302
17.8M
      {"\001.\000", 0,  SCC_MORE_ABOVE       , {  'l',  't' }, { 0x012E,      0,      0 }, { 0x012F, 0x0307,      0 }, { 0x012E,      0,      0 }, { 0x012F,      0,      0 }},
303
17.8M
#line 50 "unicase/special-casing-table.gperf"
304
17.8M
      {"\001(\000", 0,  SCC_ALWAYS           , {  'l',  't' }, { 0x0128,      0,      0 }, { 0x0069, 0x0307, 0x0303 }, { 0x0128,      0,      0 }, { 0x0129,      0,      0 }},
305
17.8M
#line 160 "unicase/special-casing-table.gperf"
306
17.8M
      {"\373\027\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0544, 0x053D,      0 }, { 0xFB17,      0,      0 }, { 0x0544, 0x056D,      0 }, { 0x0574, 0x056D,      0 }},
307
17.8M
#line 159 "unicase/special-casing-table.gperf"
308
17.8M
      {"\373\026\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x054E, 0x0546,      0 }, { 0xFB16,      0,      0 }, { 0x054E, 0x0576,      0 }, { 0x057E, 0x0576,      0 }},
309
17.8M
#line 158 "unicase/special-casing-table.gperf"
310
17.8M
      {"\373\025\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0544, 0x053B,      0 }, { 0xFB15,      0,      0 }, { 0x0544, 0x056B,      0 }, { 0x0574, 0x056B,      0 }},
311
17.8M
#line 157 "unicase/special-casing-table.gperf"
312
17.8M
      {"\373\024\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0544, 0x0535,      0 }, { 0xFB14,      0,      0 }, { 0x0544, 0x0565,      0 }, { 0x0574, 0x0565,      0 }},
313
17.8M
#line 156 "unicase/special-casing-table.gperf"
314
17.8M
      {"\373\023\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0544, 0x0546,      0 }, { 0xFB13,      0,      0 }, { 0x0544, 0x0576,      0 }, { 0x0574, 0x0576,      0 }},
315
17.8M
#line 155 "unicase/special-casing-table.gperf"
316
17.8M
      {"\373\006\000", 0,  SCC_ALWAYS           , { '\0', '\0' }, { 0x0053, 0x0054,      0 }, { 0xFB06,      0,      0 }, { 0x0053, 0x0074,      0 }, { 0x0073, 0x0074,      0 }}
317
17.8M
    };
318
319
17.8M
  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
320
17.8M
    {
321
17.8M
      register unsigned int key = gl_unicase_special_hash (str, len);
322
323
17.8M
      if (key <= MAX_HASH_VALUE)
324
9.71M
        if (len == lengthtable[key])
325
9.71M
          {
326
9.71M
            register const char *s = wordlist[key].code;
327
328
9.71M
            if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
329
1.08M
              return &wordlist[key];
330
9.71M
          }
331
17.8M
    }
332
16.7M
  return 0;
333
17.8M
}