Coverage Report

Created: 2026-11-12 07:51

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