Coverage Report

Created: 2025-10-26 06:49

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