1 /* -*- buffer-read-only: t -*-
5 * Copyright (C) 2007, by Larry Wall and others
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.
10 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
11 * This file is built by Porting/regcharclass.pl.
12 * (Generated at: Fri Apr 27 12:34:16 2007 GMT)
13 * Any changes made here will be lost!
17 LNBREAK: Line Break: \R
19 "\x0D\x0A" # CRLF - Network (Windows) line ending
21 0x0B # VT | VERTICAL TAB
23 0x0D # CR | CARRIAGE RETURN
24 0x85 # NEL | NEXT LINE
25 0x2028 # LINE SEPARATOR
26 0x2029 # PARAGRAPH SEPARATOR
28 /*** GENERATED CODE ***/
29 #define is_LNBREAK(s,is_utf8) \
30 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
31 : ( 0x0D == ((U8*)s)[0] ) ? \
32 ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
34 ( ( 0xC2 == ((U8*)s)[0] ) ? \
35 ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
36 : ( 0xE2 == ((U8*)s)[0] ) ? \
37 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
39 : ( 0x85 == ((U8*)s)[0] ) )
41 /*** GENERATED CODE ***/
42 #define is_LNBREAK_safe(s,e,is_utf8) \
44 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
45 : ( 0x0D == ((U8*)s)[0] ) ? \
46 ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
48 ( ( 0xC2 == ((U8*)s)[0] ) ? \
49 ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
50 : ( 0xE2 == ((U8*)s)[0] ) ? \
51 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
53 : ( 0x85 == ((U8*)s)[0] ) ) \
55 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
56 : ( 0x0D == ((U8*)s)[0] ) ? \
57 ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
59 ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 ) \
60 : ( 0x85 == ((U8*)s)[0] ) ) \
62 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1 \
63 : ( !( is_utf8 ) ) ? \
64 ( 0x85 == ((U8*)s)[0] ) \
68 /*** GENERATED CODE ***/
69 #define is_LNBREAK_utf8(s) \
70 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
71 : ( 0x0D == ((U8*)s)[0] ) ? \
72 ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
73 : ( 0xC2 == ((U8*)s)[0] ) ? \
74 ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
75 : ( 0xE2 == ((U8*)s)[0] ) ? \
76 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
79 /*** GENERATED CODE ***/
80 #define is_LNBREAK_utf8_safe(s,e) \
82 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
83 : ( 0x0D == ((U8*)s)[0] ) ? \
84 ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
85 : ( 0xC2 == ((U8*)s)[0] ) ? \
86 ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
87 : ( 0xE2 == ((U8*)s)[0] ) ? \
88 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
91 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
92 : ( 0x0D == ((U8*)s)[0] ) ? \
93 ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
94 : ( 0xC2 == ((U8*)s)[0] ) ? \
95 ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
98 ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) \
101 /*** GENERATED CODE ***/
102 #define is_LNBREAK_latin1(s) \
103 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
104 : ( 0x0D == ((U8*)s)[0] ) ? \
105 ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
106 : ( 0x85 == ((U8*)s)[0] ) )
108 /*** GENERATED CODE ***/
109 #define is_LNBREAK_latin1_safe(s,e) \
111 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
112 : ( 0x0D == ((U8*)s)[0] ) ? \
113 ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
114 : ( 0x85 == ((U8*)s)[0] ) ) \
116 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )\
120 HORIZWS: Horizontal Whitespace: \h \H
125 0x1680 # OGHAM SPACE MARK
126 0x180e # MONGOLIAN VOWEL SEPARATOR
131 0x2004 # THREE-PER-EM SPACE
132 0x2005 # FOUR-PER-EM SPACE
133 0x2006 # SIX-PER-EM SPACE
134 0x2007 # FIGURE SPACE
135 0x2008 # PUNCTUATION SPACE
138 0x202f # NARROW NO-BREAK SPACE
139 0x205f # MEDIUM MATHEMATICAL SPACE
140 0x3000 # IDEOGRAPHIC SPACE
142 /*** GENERATED CODE ***/
143 #define is_HORIZWS(s,is_utf8) \
144 ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1 \
146 ( ( 0xC2 == ((U8*)s)[0] ) ? \
147 ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 ) \
148 : ( 0xE1 == ((U8*)s)[0] ) ? \
149 ( ( 0x9A == ((U8*)s)[1] ) ? \
150 ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 ) \
151 : ( 0xA0 == ((U8*)s)[1] ) ? \
152 ( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 ) \
154 : ( 0xE2 == ((U8*)s)[0] ) ? \
155 ( ( 0x80 == ((U8*)s)[1] ) ? \
156 ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
157 : ( 0x81 == ((U8*)s)[1] ) ? \
158 ( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 ) \
160 : ( 0xE3 == ((U8*)s)[0] ) ? \
161 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
163 : ( 0xA0 == ((U8*)s)[0] ) )
165 /*** GENERATED CODE ***/
166 #define is_HORIZWS_safe(s,e,is_utf8) \
168 ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1 \
170 ( ( 0xC2 == ((U8*)s)[0] ) ? \
171 ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 ) \
172 : ( 0xE1 == ((U8*)s)[0] ) ? \
173 ( ( 0x9A == ((U8*)s)[1] ) ? \
174 ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 ) \
175 : ( 0xA0 == ((U8*)s)[1] ) ? \
176 ( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 ) \
178 : ( 0xE2 == ((U8*)s)[0] ) ? \
179 ( ( 0x80 == ((U8*)s)[1] ) ? \
180 ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
181 : ( 0x81 == ((U8*)s)[1] ) ? \
182 ( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 ) \
184 : ( 0xE3 == ((U8*)s)[0] ) ? \
185 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )\
187 : ( 0xA0 == ((U8*)s)[0] ) ) \
189 ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1 \
191 ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0xA0 == ((U8*)s)[1] ) ) ? 2 : 0 ) \
192 : ( 0xA0 == ((U8*)s)[0] ) ) \
194 ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1 \
195 : ( !( is_utf8 ) ) ? \
196 ( 0xA0 == ((U8*)s)[0] ) \
200 /*** GENERATED CODE ***/
201 #define is_HORIZWS_utf8(s) \
202 ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1 \
203 : ( 0xC2 == ((U8*)s)[0] ) ? \
204 ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 ) \
205 : ( 0xE1 == ((U8*)s)[0] ) ? \
206 ( ( 0x9A == ((U8*)s)[1] ) ? \
207 ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 ) \
208 : ( 0xA0 == ((U8*)s)[1] ) ? \
209 ( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 ) \
211 : ( 0xE2 == ((U8*)s)[0] ) ? \
212 ( ( 0x80 == ((U8*)s)[1] ) ? \
213 ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
214 : ( 0x81 == ((U8*)s)[1] ) ? \
215 ( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 ) \
217 : ( 0xE3 == ((U8*)s)[0] ) ? \
218 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
221 /*** GENERATED CODE ***/
222 #define is_HORIZWS_utf8_safe(s,e) \
224 ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1 \
225 : ( 0xC2 == ((U8*)s)[0] ) ? \
226 ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 ) \
227 : ( 0xE1 == ((U8*)s)[0] ) ? \
228 ( ( 0x9A == ((U8*)s)[1] ) ? \
229 ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 ) \
230 : ( 0xA0 == ((U8*)s)[1] ) ? \
231 ( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 ) \
233 : ( 0xE2 == ((U8*)s)[0] ) ? \
234 ( ( 0x80 == ((U8*)s)[1] ) ? \
235 ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
236 : ( 0x81 == ((U8*)s)[1] ) ? \
237 ( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 ) \
239 : ( 0xE3 == ((U8*)s)[0] ) ? \
240 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
243 ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1 \
244 : ( 0xC2 == ((U8*)s)[0] ) ? \
245 ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 ) \
248 ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) \
251 /*** GENERATED CODE ***/
252 #define is_HORIZWS_latin1(s) \
253 ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] || 0xA0 == ((U8*)s)[0] )
255 /*** GENERATED CODE ***/
256 #define is_HORIZWS_latin1_safe(s,e) \
258 ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] || 0xA0 == ((U8*)s)[0] ) \
261 /*** GENERATED CODE ***/
262 #define is_HORIZWS_cp(cp) \
263 ( 0x09 == cp || ( 0x09 < cp && \
264 ( 0x20 == cp || ( 0x20 < cp && \
265 ( 0xA0 == cp || ( 0xA0 < cp && \
266 ( 0x1680 == cp || ( 0x1680 < cp && \
267 ( 0x180E == cp || ( 0x180E < cp && \
268 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
269 ( 0x202F == cp || ( 0x202F < cp && \
270 ( 0x205F == cp || ( 0x205F < cp && \
271 0x3000 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
274 VERTWS: Vertical Whitespace: \v \V
281 0x2028 # LINE SEPARATOR
282 0x2029 # PARAGRAPH SEPARATOR
284 /*** GENERATED CODE ***/
285 #define is_VERTWS(s,is_utf8) \
286 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1 \
288 ( ( 0xC2 == ((U8*)s)[0] ) ? \
289 ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
290 : ( 0xE2 == ((U8*)s)[0] ) ? \
291 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
293 : ( 0x85 == ((U8*)s)[0] ) )
295 /*** GENERATED CODE ***/
296 #define is_VERTWS_safe(s,e,is_utf8) \
298 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1 \
300 ( ( 0xC2 == ((U8*)s)[0] ) ? \
301 ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
302 : ( 0xE2 == ((U8*)s)[0] ) ? \
303 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
305 : ( 0x85 == ((U8*)s)[0] ) ) \
307 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1 \
309 ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 ) \
310 : ( 0x85 == ((U8*)s)[0] ) ) \
312 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1 \
313 : ( !( is_utf8 ) ) ? \
314 ( 0x85 == ((U8*)s)[0] ) \
318 /*** GENERATED CODE ***/
319 #define is_VERTWS_utf8(s) \
320 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1 \
321 : ( 0xC2 == ((U8*)s)[0] ) ? \
322 ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
323 : ( 0xE2 == ((U8*)s)[0] ) ? \
324 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
327 /*** GENERATED CODE ***/
328 #define is_VERTWS_utf8_safe(s,e) \
330 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1 \
331 : ( 0xC2 == ((U8*)s)[0] ) ? \
332 ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
333 : ( 0xE2 == ((U8*)s)[0] ) ? \
334 ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
337 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1 \
338 : ( 0xC2 == ((U8*)s)[0] ) ? \
339 ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
342 ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) \
345 /*** GENERATED CODE ***/
346 #define is_VERTWS_latin1(s) \
347 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )
349 /*** GENERATED CODE ***/
350 #define is_VERTWS_latin1_safe(s,e) \
352 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )\
355 /*** GENERATED CODE ***/
356 #define is_VERTWS_cp(cp) \
357 ( ( 0x0A <= cp && cp <= 0x0D ) || ( 0x0D < cp && \
358 ( 0x85 == cp || ( 0x85 < cp && \
359 ( 0x2028 == cp || ( 0x2028 < cp && \
360 0x2029 == cp ) ) ) ) ) )
363 TRICKYFOLD: Problematic fold case letters.
365 0x00DF # LATIN1 SMALL LETTER SHARP S
366 0x0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
367 0x03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
369 /*** GENERATED CODE ***/
370 #define is_TRICKYFOLD(s,is_utf8) \
372 ( ( 0xC3 == ((U8*)s)[0] ) ? \
373 ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 ) \
374 : ( 0xCE == ((U8*)s)[0] ) ? \
375 ( ( 0x90 == ((U8*)s)[1] || 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \
377 : ( 0xDF == ((U8*)s)[0] ) )
379 /*** GENERATED CODE ***/
380 #define is_TRICKYFOLD_safe(s,e,is_utf8) \
383 ( ( 0xC3 == ((U8*)s)[0] ) ? \
384 ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 ) \
385 : ( 0xCE == ((U8*)s)[0] ) ? \
386 ( ( 0x90 == ((U8*)s)[1] || 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \
388 : ( 0xDF == ((U8*)s)[0] ) ) \
390 ( ( !( is_utf8 ) ) ? \
391 ( 0xDF == ((U8*)s)[0] ) \
395 /*** GENERATED CODE ***/
396 #define is_TRICKYFOLD_cp(cp) \
397 ( 0xDF == cp || ( 0xDF < cp && \
398 ( 0x390 == cp || ( 0x390 < cp && \
401 /*** GENERATED CODE ***/
402 #define what_TRICKYFOLD(s,is_utf8) \
404 ( ( 0xC3 == ((U8*)s)[0] ) ? \
405 ( ( 0x9F == ((U8*)s)[1] ) ? 0xDF : 0 ) \
406 : ( 0xCE == ((U8*)s)[0] ) ? \
407 ( ( 0x90 == ((U8*)s)[1] ) ? 0x390 \
408 : ( 0xB0 == ((U8*)s)[1] ) ? 0x3B0 : 0 ) \
410 : ( 0xDF == ((U8*)s)[0] ) ? 0xDF : 0 )
412 /*** GENERATED CODE ***/
413 #define what_TRICKYFOLD_safe(s,e,is_utf8) \
416 ( ( 0xC3 == ((U8*)s)[0] ) ? \
417 ( ( 0x9F == ((U8*)s)[1] ) ? 0xDF : 0 ) \
418 : ( 0xCE == ((U8*)s)[0] ) ? \
419 ( ( 0x90 == ((U8*)s)[1] ) ? 0x390 \
420 : ( 0xB0 == ((U8*)s)[1] ) ? 0x3B0 : 0 ) \
422 : ( 0xDF == ((U8*)s)[0] ) ? 0xDF : 0 ) \
424 ( ( ( !( is_utf8 ) ) && ( 0xDF == ((U8*)s)[0] ) ) ? 0xDF : 0 ) \
427 /*** GENERATED CODE ***/
428 #define what_len_TRICKYFOLD(s,is_utf8,len) \
430 ( ( 0xC3 == ((U8*)s)[0] ) ? \
431 ( ( 0x9F == ((U8*)s)[1] ) ? len=2, 0xDF : 0 ) \
432 : ( 0xCE == ((U8*)s)[0] ) ? \
433 ( ( 0x90 == ((U8*)s)[1] ) ? len=2, 0x390 \
434 : ( 0xB0 == ((U8*)s)[1] ) ? len=2, 0x3B0 : 0 ) \
436 : ( 0xDF == ((U8*)s)[0] ) ? len=1, 0xDF : 0 )
438 /*** GENERATED CODE ***/
439 #define what_len_TRICKYFOLD_safe(s,e,is_utf8,len) \
442 ( ( 0xC3 == ((U8*)s)[0] ) ? \
443 ( ( 0x9F == ((U8*)s)[1] ) ? len=2, 0xDF : 0 ) \
444 : ( 0xCE == ((U8*)s)[0] ) ? \
445 ( ( 0x90 == ((U8*)s)[1] ) ? len=2, 0x390 \
446 : ( 0xB0 == ((U8*)s)[1] ) ? len=2, 0x3B0 : 0 ) \
448 : ( 0xDF == ((U8*)s)[0] ) ? len=1, 0xDF : 0 ) \
450 ( ( ( !( is_utf8 ) ) && ( 0xDF == ((U8*)s)[0] ) ) ? len=1, 0xDF : 0 ) \