xref: /openbsd-src/gnu/usr.bin/perl/regcharclass.h (revision 4c1e55dc91edd6e69ccc60ce855900fbc12cf34f)
1 /*  -*- buffer-read-only: t -*-
2  *
3  *    regcharclass.h
4  *
5  *    Copyright (C) 2007, by Larry Wall and others
6  *
7  *    You may distribute under the terms of either the GNU General Public
8  *    License or the Artistic License, as specified in the README file.
9  *
10  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
11  * This file is built by Porting/regcharclass.pl.
12  *
13  * Any changes made here will be lost!
14  *
15  */
16 
17 /*
18 	LNBREAK: Line Break: \R
19 
20 	"\x0D\x0A"      # CRLF - Network (Windows) line ending
21 	0x0A            # LF  | LINE FEED
22 	0x0B            # VT  | VERTICAL TAB
23 	0x0C            # FF  | FORM FEED
24 	0x0D            # CR  | CARRIAGE RETURN
25 	0x85            # NEL | NEXT LINE
26 	0x2028          # LINE SEPARATOR
27 	0x2029          # PARAGRAPH SEPARATOR
28 */
29 /*** GENERATED CODE ***/
30 #define is_LNBREAK(s,is_utf8)                                               \
31 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                        \
32 : ( 0x0D == ((U8*)s)[0] ) ?                                                 \
33     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                     \
34 : ( is_utf8 ) ?                                                             \
35     ( ( 0xC2 == ((U8*)s)[0] ) ?                                             \
36 	( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
37     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
38 	( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
39     : 0 )                                                                   \
40 : ( 0x85 == ((U8*)s)[0] ) )
41 
42 /*** GENERATED CODE ***/
43 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
44 ( ((e)-(s) > 2) ?                                                           \
45     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
46     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
47 	( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
48     : ( is_utf8 ) ?                                                         \
49 	( ( 0xC2 == ((U8*)s)[0] ) ?                                         \
50 	    ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                             \
51 	: ( 0xE2 == ((U8*)s)[0] ) ?                                         \
52 	    ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
53 	: 0 )                                                               \
54     : ( 0x85 == ((U8*)s)[0] ) )                                             \
55 : ((e)-(s) > 1) ?                                                           \
56     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
57     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
58 	( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
59     : ( is_utf8 ) ?                                                         \
60 	( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )  \
61     : ( 0x85 == ((U8*)s)[0] ) )                                             \
62 : ((e)-(s) > 0) ?                                                           \
63     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
64     : ( !( is_utf8 ) ) ?                                                    \
65 	( 0x85 == ((U8*)s)[0] )                                             \
66     : 0 )                                                                   \
67 : 0 )
68 
69 /*** GENERATED CODE ***/
70 #define is_LNBREAK_utf8(s)                                                  \
71 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                        \
72 : ( 0x0D == ((U8*)s)[0] ) ?                                                 \
73     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                     \
74 : ( 0xC2 == ((U8*)s)[0] ) ?                                                 \
75     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
76 : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
77     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
78 : 0 )
79 
80 /*** GENERATED CODE ***/
81 #define is_LNBREAK_utf8_safe(s,e)                                           \
82 ( ((e)-(s) > 2) ?                                                           \
83     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
84     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
85 	( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
86     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
87 	( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
88     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
89 	( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
90     : 0 )                                                                   \
91 : ((e)-(s) > 1) ?                                                           \
92     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
93     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
94 	( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
95     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
96 	( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
97     : 0 )                                                                   \
98 : ((e)-(s) > 0) ?                                                           \
99     ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D )                          \
100 : 0 )
101 
102 /*** GENERATED CODE ***/
103 #define is_LNBREAK_latin1(s)                                                \
104 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                        \
105 : ( 0x0D == ((U8*)s)[0] ) ?                                                 \
106     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                     \
107 : ( 0x85 == ((U8*)s)[0] ) )
108 
109 /*** GENERATED CODE ***/
110 #define is_LNBREAK_latin1_safe(s,e)                                         \
111 ( ((e)-(s) > 1) ?                                                           \
112     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
113     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
114 	( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
115     : ( 0x85 == ((U8*)s)[0] ) )                                             \
116 : ((e)-(s) > 0) ?                                                           \
117     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )\
118 : 0 )
119 
120 /*
121 	HORIZWS: Horizontal Whitespace: \h \H
122 
123 	0x09            # HT
124 	0x20            # SPACE
125 	0xa0            # NBSP
126 	0x1680          # OGHAM SPACE MARK
127 	0x180e          # MONGOLIAN VOWEL SEPARATOR
128 	0x2000          # EN QUAD
129 	0x2001          # EM QUAD
130 	0x2002          # EN SPACE
131 	0x2003          # EM SPACE
132 	0x2004          # THREE-PER-EM SPACE
133 	0x2005          # FOUR-PER-EM SPACE
134 	0x2006          # SIX-PER-EM SPACE
135 	0x2007          # FIGURE SPACE
136 	0x2008          # PUNCTUATION SPACE
137 	0x2009          # THIN SPACE
138 	0x200A          # HAIR SPACE
139 	0x202f          # NARROW NO-BREAK SPACE
140 	0x205f          # MEDIUM MATHEMATICAL SPACE
141 	0x3000          # IDEOGRAPHIC SPACE
142 */
143 /*** GENERATED CODE ***/
144 #define is_HORIZWS(s,is_utf8)                                               \
145 ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                        \
146 : ( is_utf8 ) ?                                                             \
147     ( ( 0xC2 == ((U8*)s)[0] ) ?                                             \
148 	( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
149     : ( 0xE1 == ((U8*)s)[0] ) ?                                             \
150 	( ( 0x9A == ((U8*)s)[1] ) ?                                         \
151 	    ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                             \
152 	: ( 0xA0 == ((U8*)s)[1] ) ?                                         \
153 	    ( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 )                             \
154 	: 0 )                                                               \
155     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
156 	( ( 0x80 == ((U8*)s)[1] ) ?                                         \
157 	    ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
158 	: ( 0x81 == ((U8*)s)[1] ) ?                                         \
159 	    ( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 )                             \
160 	: 0 )                                                               \
161     : ( 0xE3 == ((U8*)s)[0] ) ?                                             \
162 	( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
163     : 0 )                                                                   \
164 : ( 0xA0 == ((U8*)s)[0] ) )
165 
166 /*** GENERATED CODE ***/
167 #define is_HORIZWS_safe(s,e,is_utf8)                                        \
168 ( ((e)-(s) > 2) ?                                                           \
169     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
170     : ( is_utf8 ) ?                                                         \
171 	( ( 0xC2 == ((U8*)s)[0] ) ?                                         \
172 	    ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                             \
173 	: ( 0xE1 == ((U8*)s)[0] ) ?                                         \
174 	    ( ( 0x9A == ((U8*)s)[1] ) ?                                     \
175 		( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                         \
176 	    : ( 0xA0 == ((U8*)s)[1] ) ?                                     \
177 		( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 )                         \
178 	    : 0 )                                                           \
179 	: ( 0xE2 == ((U8*)s)[0] ) ?                                         \
180 	    ( ( 0x80 == ((U8*)s)[1] ) ?                                     \
181 		( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
182 	    : ( 0x81 == ((U8*)s)[1] ) ?                                     \
183 		( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 )                         \
184 	    : 0 )                                                           \
185 	: ( 0xE3 == ((U8*)s)[0] ) ?                                         \
186 	    ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )\
187 	: 0 )                                                               \
188     : ( 0xA0 == ((U8*)s)[0] ) )                                             \
189 : ((e)-(s) > 1) ?                                                           \
190     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
191     : ( is_utf8 ) ?                                                         \
192 	( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0xA0 == ((U8*)s)[1] ) ) ? 2 : 0 )  \
193     : ( 0xA0 == ((U8*)s)[0] ) )                                             \
194 : ((e)-(s) > 0) ?                                                           \
195     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
196     : ( !( is_utf8 ) ) ?                                                    \
197 	( 0xA0 == ((U8*)s)[0] )                                             \
198     : 0 )                                                                   \
199 : 0 )
200 
201 /*** GENERATED CODE ***/
202 #define is_HORIZWS_utf8(s)                                                  \
203 ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                        \
204 : ( 0xC2 == ((U8*)s)[0] ) ?                                                 \
205     ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
206 : ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
207     ( ( 0x9A == ((U8*)s)[1] ) ?                                             \
208 	( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
209     : ( 0xA0 == ((U8*)s)[1] ) ?                                             \
210 	( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 )                                 \
211     : 0 )                                                                   \
212 : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
213     ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
214 	( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
215     : ( 0x81 == ((U8*)s)[1] ) ?                                             \
216 	( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 )                                 \
217     : 0 )                                                                   \
218 : ( 0xE3 == ((U8*)s)[0] ) ?                                                 \
219     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
220 : 0 )
221 
222 /*** GENERATED CODE ***/
223 #define is_HORIZWS_utf8_safe(s,e)                                           \
224 ( ((e)-(s) > 2) ?                                                           \
225     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
226     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
227 	( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
228     : ( 0xE1 == ((U8*)s)[0] ) ?                                             \
229 	( ( 0x9A == ((U8*)s)[1] ) ?                                         \
230 	    ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                             \
231 	: ( 0xA0 == ((U8*)s)[1] ) ?                                         \
232 	    ( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 )                             \
233 	: 0 )                                                               \
234     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
235 	( ( 0x80 == ((U8*)s)[1] ) ?                                         \
236 	    ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
237 	: ( 0x81 == ((U8*)s)[1] ) ?                                         \
238 	    ( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 )                             \
239 	: 0 )                                                               \
240     : ( 0xE3 == ((U8*)s)[0] ) ?                                             \
241 	( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
242     : 0 )                                                                   \
243 : ((e)-(s) > 1) ?                                                           \
244     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
245     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
246 	( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
247     : 0 )                                                                   \
248 : ((e)-(s) > 0) ?                                                           \
249     ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] )                          \
250 : 0 )
251 
252 /*** GENERATED CODE ***/
253 #define is_HORIZWS_latin1(s)                                                \
254 ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] || 0xA0 == ((U8*)s)[0] )
255 
256 /*** GENERATED CODE ***/
257 #define is_HORIZWS_latin1_safe(s,e)                                         \
258 ( ((e)-(s) > 0) ?                                                           \
259     ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] || 0xA0 == ((U8*)s)[0] )   \
260 : 0 )
261 
262 /*** GENERATED CODE ***/
263 #define is_HORIZWS_cp(cp)                                                   \
264 ( 0x09 == cp || ( 0x09 < cp &&                                              \
265 ( 0x20 == cp || ( 0x20 < cp &&                                              \
266 ( 0xA0 == cp || ( 0xA0 < cp &&                                              \
267 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
268 ( 0x180E == cp || ( 0x180E < cp &&                                          \
269 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
270 ( 0x202F == cp || ( 0x202F < cp &&                                          \
271 ( 0x205F == cp || ( 0x205F < cp &&                                          \
272 0x3000 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
273 
274 /*
275 	VERTWS: Vertical Whitespace: \v \V
276 
277 	0x0A            # LF
278 	0x0B            # VT
279 	0x0C            # FF
280 	0x0D            # CR
281 	0x85            # NEL
282 	0x2028          # LINE SEPARATOR
283 	0x2029          # PARAGRAPH SEPARATOR
284 */
285 /*** GENERATED CODE ***/
286 #define is_VERTWS(s,is_utf8)                                                \
287 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                        \
288 : ( is_utf8 ) ?                                                             \
289     ( ( 0xC2 == ((U8*)s)[0] ) ?                                             \
290 	( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
291     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
292 	( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
293     : 0 )                                                                   \
294 : ( 0x85 == ((U8*)s)[0] ) )
295 
296 /*** GENERATED CODE ***/
297 #define is_VERTWS_safe(s,e,is_utf8)                                         \
298 ( ((e)-(s) > 2) ?                                                           \
299     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
300     : ( is_utf8 ) ?                                                         \
301 	( ( 0xC2 == ((U8*)s)[0] ) ?                                         \
302 	    ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                             \
303 	: ( 0xE2 == ((U8*)s)[0] ) ?                                         \
304 	    ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
305 	: 0 )                                                               \
306     : ( 0x85 == ((U8*)s)[0] ) )                                             \
307 : ((e)-(s) > 1) ?                                                           \
308     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
309     : ( is_utf8 ) ?                                                         \
310 	( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )  \
311     : ( 0x85 == ((U8*)s)[0] ) )                                             \
312 : ((e)-(s) > 0) ?                                                           \
313     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
314     : ( !( is_utf8 ) ) ?                                                    \
315 	( 0x85 == ((U8*)s)[0] )                                             \
316     : 0 )                                                                   \
317 : 0 )
318 
319 /*** GENERATED CODE ***/
320 #define is_VERTWS_utf8(s)                                                   \
321 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                        \
322 : ( 0xC2 == ((U8*)s)[0] ) ?                                                 \
323     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
324 : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
325     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
326 : 0 )
327 
328 /*** GENERATED CODE ***/
329 #define is_VERTWS_utf8_safe(s,e)                                            \
330 ( ((e)-(s) > 2) ?                                                           \
331     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
332     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
333 	( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
334     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
335 	( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
336     : 0 )                                                                   \
337 : ((e)-(s) > 1) ?                                                           \
338     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
339     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
340 	( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
341     : 0 )                                                                   \
342 : ((e)-(s) > 0) ?                                                           \
343     ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D )                          \
344 : 0 )
345 
346 /*** GENERATED CODE ***/
347 #define is_VERTWS_latin1(s)                                                 \
348 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )
349 
350 /*** GENERATED CODE ***/
351 #define is_VERTWS_latin1_safe(s,e)                                          \
352 ( ((e)-(s) > 0) ?                                                           \
353     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )\
354 : 0 )
355 
356 /*** GENERATED CODE ***/
357 #define is_VERTWS_cp(cp)                                                    \
358 ( ( 0x0A <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
359 ( 0x85 == cp || ( 0x85 < cp &&                                              \
360 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
361 0x2029 == cp ) ) ) ) ) )
362 
363 /*
364 	TRICKYFOLD: Problematic fold case letters.
365 
366 	0x00DF	# LATIN1 SMALL LETTER SHARP S
367 	0x0390	# GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
368 	0x03B0	# GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
369 */
370 /*** GENERATED CODE ***/
371 #define is_TRICKYFOLD(s,is_utf8)                                            \
372 ( ( is_utf8 ) ?                                                             \
373     ( ( 0xC3 == ((U8*)s)[0] ) ?                                             \
374 	( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 )                                 \
375     : ( 0xCE == ((U8*)s)[0] ) ?                                             \
376 	( ( 0x90 == ((U8*)s)[1] || 0xB0 == ((U8*)s)[1] ) ? 2 : 0 )          \
377     : 0 )                                                                   \
378 : ( 0xDF == ((U8*)s)[0] ) )
379 
380 /*** GENERATED CODE ***/
381 #define is_TRICKYFOLD_safe(s,e,is_utf8)                                     \
382 ( ((e)-(s) > 1) ?                                                           \
383     ( ( is_utf8 ) ?                                                         \
384 	( ( 0xC3 == ((U8*)s)[0] ) ?                                         \
385 	    ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 )                             \
386 	: ( 0xCE == ((U8*)s)[0] ) ?                                         \
387 	    ( ( 0x90 == ((U8*)s)[1] || 0xB0 == ((U8*)s)[1] ) ? 2 : 0 )      \
388 	: 0 )                                                               \
389     : ( 0xDF == ((U8*)s)[0] ) )                                             \
390 : ((e)-(s) > 0) ?                                                           \
391     ( ( !( is_utf8 ) ) ?                                                    \
392 	( 0xDF == ((U8*)s)[0] )                                             \
393     : 0 )                                                                   \
394 : 0 )
395 
396 /*** GENERATED CODE ***/
397 #define is_TRICKYFOLD_cp(cp)                                                \
398 ( 0xDF == cp || ( 0xDF < cp &&                                              \
399 ( 0x390 == cp || ( 0x390 < cp &&                                            \
400 0x3B0 == cp ) ) ) )
401 
402 /*** GENERATED CODE ***/
403 #define what_TRICKYFOLD(s,is_utf8)                                          \
404 ( ( is_utf8 ) ?                                                             \
405     ( ( 0xC3 == ((U8*)s)[0] ) ?                                             \
406 	( ( 0x9F == ((U8*)s)[1] ) ? 0xDF : 0 )                              \
407     : ( 0xCE == ((U8*)s)[0] ) ?                                             \
408 	( ( 0x90 == ((U8*)s)[1] ) ? 0x390                                   \
409 	: ( 0xB0 == ((U8*)s)[1] ) ? 0x3B0 : 0 )                             \
410     : 0 )                                                                   \
411 : ( 0xDF == ((U8*)s)[0] ) ? 0xDF : 0 )
412 
413 /*** GENERATED CODE ***/
414 #define what_TRICKYFOLD_safe(s,e,is_utf8)                                   \
415 ( ((e)-(s) > 1) ?                                                           \
416     ( ( is_utf8 ) ?                                                         \
417 	( ( 0xC3 == ((U8*)s)[0] ) ?                                         \
418 	    ( ( 0x9F == ((U8*)s)[1] ) ? 0xDF : 0 )                          \
419 	: ( 0xCE == ((U8*)s)[0] ) ?                                         \
420 	    ( ( 0x90 == ((U8*)s)[1] ) ? 0x390                               \
421 	    : ( 0xB0 == ((U8*)s)[1] ) ? 0x3B0 : 0 )                         \
422 	: 0 )                                                               \
423     : ( 0xDF == ((U8*)s)[0] ) ? 0xDF : 0 )                                  \
424 : ((e)-(s) > 0) ?                                                           \
425     ( ( ( !( is_utf8 ) ) && ( 0xDF == ((U8*)s)[0] ) ) ? 0xDF : 0 )          \
426 : 0 )
427 
428 /*** GENERATED CODE ***/
429 #define what_len_TRICKYFOLD(s,is_utf8,len)                                  \
430 ( ( is_utf8 ) ?                                                             \
431     ( ( 0xC3 == ((U8*)s)[0] ) ?                                             \
432 	( ( 0x9F == ((U8*)s)[1] ) ? len=2, 0xDF : 0 )                       \
433     : ( 0xCE == ((U8*)s)[0] ) ?                                             \
434 	( ( 0x90 == ((U8*)s)[1] ) ? len=2, 0x390                            \
435 	: ( 0xB0 == ((U8*)s)[1] ) ? len=2, 0x3B0 : 0 )                      \
436     : 0 )                                                                   \
437 : ( 0xDF == ((U8*)s)[0] ) ? len=1, 0xDF : 0 )
438 
439 /*** GENERATED CODE ***/
440 #define what_len_TRICKYFOLD_safe(s,e,is_utf8,len)                           \
441 ( ((e)-(s) > 1) ?                                                           \
442     ( ( is_utf8 ) ?                                                         \
443 	( ( 0xC3 == ((U8*)s)[0] ) ?                                         \
444 	    ( ( 0x9F == ((U8*)s)[1] ) ? len=2, 0xDF : 0 )                   \
445 	: ( 0xCE == ((U8*)s)[0] ) ?                                         \
446 	    ( ( 0x90 == ((U8*)s)[1] ) ? len=2, 0x390                        \
447 	    : ( 0xB0 == ((U8*)s)[1] ) ? len=2, 0x3B0 : 0 )                  \
448 	: 0 )                                                               \
449     : ( 0xDF == ((U8*)s)[0] ) ? len=1, 0xDF : 0 )                           \
450 : ((e)-(s) > 0) ?                                                           \
451     ( ( ( !( is_utf8 ) ) && ( 0xDF == ((U8*)s)[0] ) ) ? len=1, 0xDF : 0 )   \
452 : 0 )
453 
454 /* ex: set ro: */
455