*/
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
-( ( 'a' == ((const U8*)s)[0] ) ? \
- ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( 'h' == ((const U8*)s)[0] ) ? \
+( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
+( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
+ ( ( inRANGE(((const U8*)s)[1], 'S', 'T') || inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xC5 == ((const U8*)s)[0] ) ? \
( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0xCA == ((const U8*)s)[0] ) ? \
- ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
: ( 0xCE == ((const U8*)s)[0] ) ? \
( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
( ( 0xCD == ((const U8*)s)[2] ) ? \
- ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
: ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB9 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCC == ((const U8*)s)[2] ) ? \
+ ( ( 0x88 == ((const U8*)s)[3] ) ? \
+ ( ( 0xCC == ((const U8*)s)[4] ) ? \
+ ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
+ : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
: ( 0xCF == ((const U8*)s)[0] ) ? \
( ( 0x81 == ((const U8*)s)[1] ) ? \
( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0x85 == ((const U8*)s)[1] ) ? \
( ( 0xCC == ((const U8*)s)[2] ) ? \
- ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ ( ( 0x88 == ((const U8*)s)[3] ) ? \
+ ( ( 0xCC == ((const U8*)s)[4] ) ? \
+ ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
+ : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x93 == ((const U8*)s)[3] ) ? \
+ ( ( 0xCC == ((const U8*)s)[4] ) ? \
+ ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 4 )\
+ : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
: ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0x89 == ((const U8*)s)[1] ) ? \
( ( 0xCD == ((const U8*)s)[2] ) ? \
- ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
: ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0xD5 == ((const U8*)s)[0] ) ? \
/*** GENERATED CODE ***/
-#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
-( ((e)-(s) > 3) ? \
- ( ( 'a' == ((const U8*)s)[0] ) ? \
+#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
+( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( 'h' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
+ ( ( inRANGE(((const U8*)s)[1], 'S', 'T') || inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xC5 == ((const U8*)s)[0] ) ? \
( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0xCA == ((const U8*)s)[0] ) ? \
- ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
: ( 0xCE == ((const U8*)s)[0] ) ? \
( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0xB4 == ((const U8*)s)[1] ) ? \
( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
: ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : 0 ) \
-: ((e)-(s) > 2) ? \
- ( ( 'a' == ((const U8*)s)[0] ) ? \
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
+( ((e)-(s) > 2) ? \
+ ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( 'h' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
+ ( ( inRANGE(((const U8*)s)[1], 'S', 'T') || inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] || 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( ( 's' == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 's', 't') ) ) ? 2 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
+ : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) && ( inRANGE(((const U8*)s)[1], 'S', 'T') || inRANGE(((const U8*)s)[1], 's', 't') ) ) ? 2 : 0 )\
: 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
( ((e)-(s) > 5) ? \
- ( ( 'a' == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
+: ((e)-(s) > 4) ? \
+ ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( 'h' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
+ ( ( inRANGE(((const U8*)s)[1], 'S', 'T') || inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xC5 == ((const U8*)s)[0] ) ? \
( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0xCA == ((const U8*)s)[0] ) ? \
- ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
: ( 0xCE == ((const U8*)s)[0] ) ? \
( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
( ( 0xCD == ((const U8*)s)[2] ) ? \
- ( ( 0x82 == ((const U8*)s)[3] ) ? \
- ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
- : 0 ) \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
: ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB9 == ((const U8*)s)[1] ) ? \
- ( ( 0xCC == ((const U8*)s)[2] ) ? \
- ( ( 0x88 == ((const U8*)s)[3] ) ? \
- ( ( 0xCC == ((const U8*)s)[4] ) ? \
- ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
- : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
- : 0 ) \
- : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : 0 ) \
+ : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0xCF == ((const U8*)s)[0] ) ? \
( ( 0x81 == ((const U8*)s)[1] ) ? \
( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0x85 == ((const U8*)s)[1] ) ? \
( ( 0xCC == ((const U8*)s)[2] ) ? \
- ( ( 0x88 == ((const U8*)s)[3] ) ? \
- ( ( 0xCC == ((const U8*)s)[4] ) ? \
- ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
- : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
- : ( 0x93 == ((const U8*)s)[3] ) ? \
- ( ( 0xCC == ((const U8*)s)[4] ) ? \
- ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 4 )\
- : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
- : 0 ) \
+ ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
: ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0x89 == ((const U8*)s)[1] ) ? \
( ( 0xCD == ((const U8*)s)[2] ) ? \
- ( ( 0x82 == ((const U8*)s)[3] ) ? \
- ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
- : 0 ) \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
: ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( 0xD5 == ((const U8*)s)[0] ) ? \
( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
: ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
: 0 ) \
-: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
+: ((e)-(s) > 3) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
/*
MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
/*** GENERATED CODE ***/
#define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
( ((e)-(s) > 5) ? \
- ( ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( ( 'f' == ((const U8*)s)[1] ) && ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) && ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ) ? 3 : 0 )\
: ( 0xCE == ((const U8*)s)[0] ) ? \
( ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
( ( ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) && ( 0xCE == ((const U8*)s)[4] ) ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
: ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
: ( ( ( ( ( 0x89 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) && ( 0xCE == ((const U8*)s)[4] ) ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
: 0 ) \
-: ( ( ( ((e)-(s) > 2) && ( 'f' == ((const U8*)s)[0] ) ) && ( 'f' == ((const U8*)s)[1] ) ) && ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ) ? 3 : 0 )
+: ( ( ( ((e)-(s) > 2) && ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ) && ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ) && ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ) ? 3 : 0 )
/*
THREE_CHAR_FOLD: A three-character multi-char fold
/*** GENERATED CODE ***/
#define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
( ((e)-(s) > 3) ? \
- ( ( 'a' == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 'h', 'j') || inRANGE(((const U8*)s)[0], 's', 't') || 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? 1\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ? 1\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
: ( 0xCA == ((const U8*)s)[0] ) ? \
( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xCE == ((const U8*)s)[0] ) ? \
: ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) ? 3 : 0 )\
: 0 ) \
: ((e)-(s) > 2) ? \
- ( ( 'a' == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 'h', 'j') || inRANGE(((const U8*)s)[0], 's', 't') || 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? 1\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ? 1\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
: ( 0xCA == ((const U8*)s)[0] ) ? \
( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xCE == ((const U8*)s)[0] ) ? \
: ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) ? 3 : 0 )\
: 0 ) \
: ((e)-(s) > 1) ? \
- ( ( 'a' == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 'h', 'j') || inRANGE(((const U8*)s)[0], 's', 't') || 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? 1\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ? 1\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
: ( 0xCA == ((const U8*)s)[0] ) ? \
( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xCE == ((const U8*)s)[0] ) ? \
( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x81 ) || ((const U8*)s)[1] == 0x89 || ((const U8*)s)[1] == 0x8E ) ? 2 : 0 )\
: ( ( 0xD5 == ((const U8*)s)[0] ) && ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ) ? 2 : 0 )\
: ((e)-(s) > 0) ? \
- ( 'a' == ((const U8*)s)[0] || 'f' == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 'h', 'j') || inRANGE(((const U8*)s)[0], 's', 't') || 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] )\
+ ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) )\
: 0 )
/*
*/
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
-( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )
+( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
-( ( 'h' == ((const U8*)s)[0] ) ? \
+( ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0x8F == ((const U8*)s)[0] ) ? \
( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xAB == ((const U8*)s)[0] ) ? \
- ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB4 == ((const U8*)s)[0] ) ? \
( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
-( ( 'a' == ((const U8*)s)[0] ) ? \
+( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( 'h' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0x8F == ((const U8*)s)[0] ) ? \
( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xAB == ((const U8*)s)[0] ) ? \
- ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB4 == ((const U8*)s)[0] ) ? \
( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
( ((e)-(s) > 3) ? \
- ( ( 'a' == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( 'h' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0x8F == ((const U8*)s)[0] ) ? \
( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xAB == ((const U8*)s)[0] ) ? \
- ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB4 == ((const U8*)s)[0] ) ? \
( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: 0 ) \
: ((e)-(s) > 2) ? \
- ( ( 'a' == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( 'h' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] || 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( ( 's' == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 's', 't') ) ) ? 2 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
: 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
( ((e)-(s) > 5) ? \
- ( ( 'a' == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
/*
/*** GENERATED CODE ***/
#define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
( ((e)-(s) > 5) ? \
- ( ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( ( 'f' == ((const U8*)s)[1] ) && ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )\
: ( 0xB4 == ((const U8*)s)[0] ) ? \
( ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
( ( ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB4 == ((const U8*)s)[4] ) ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
: ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
: ( ( ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB4 == ((const U8*)s)[4] ) ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
: 0 ) \
-: ( ( ( ((e)-(s) > 2) && ( 'f' == ((const U8*)s)[0] ) ) && ( 'f' == ((const U8*)s)[1] ) ) && ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ) ? 3 : 0 )
+: ( ( ( ((e)-(s) > 2) && ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ) && ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )
/*
THREE_CHAR_FOLD: A three-character multi-char fold
/*** GENERATED CODE ***/
#define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
( ((e)-(s) > 3) ? \
- ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 's' ) || ((const U8*)s)[0] == 'w' || ((const U8*)s)[0] == 'y' ) ? 1\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
: ( 0xAB == ((const U8*)s)[0] ) ? \
( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB4 == ((const U8*)s)[0] ) ? \
: ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: 0 ) \
: ((e)-(s) > 2) ? \
- ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 's' ) || ((const U8*)s)[0] == 'w' || ((const U8*)s)[0] == 'y' ) ? 1\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
: ( 0xAB == ((const U8*)s)[0] ) ? \
( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB4 == ((const U8*)s)[0] ) ? \
: ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: 0 ) \
: ((e)-(s) > 1) ? \
- ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 's' ) || ((const U8*)s)[0] == 'w' || ((const U8*)s)[0] == 'y' ) ? 1\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
: ( 0xAB == ((const U8*)s)[0] ) ? \
( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB4 == ((const U8*)s)[0] ) ? \
( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? 2 : 0 )\
: ( ( 0xB5 == ((const U8*)s)[0] ) && ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ) ? 2 : 0 )\
: ((e)-(s) > 0) ? \
- ( ( ( ((const U8*)s)[0] & 0xEF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 's' ) || ((const U8*)s)[0] == 'y' )\
+ ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0x9F ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) )\
: 0 )
/*
*/
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
-( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )
+( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
-( ( 'h' == ((const U8*)s)[0] ) ? \
+( ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0x8E == ((const U8*)s)[0] ) ? \
( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xAA == ((const U8*)s)[0] ) ? \
- ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB3 == ((const U8*)s)[0] ) ? \
( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
-( ( 'a' == ((const U8*)s)[0] ) ? \
+( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( 'h' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0x8E == ((const U8*)s)[0] ) ? \
( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xAA == ((const U8*)s)[0] ) ? \
- ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB3 == ((const U8*)s)[0] ) ? \
( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
( ((e)-(s) > 3) ? \
- ( ( 'a' == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( 'h' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0x8E == ((const U8*)s)[0] ) ? \
( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ( 0xAA == ((const U8*)s)[0] ) ? \
- ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ( 0xB3 == ((const U8*)s)[0] ) ? \
( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: 0 ) \
: ((e)-(s) > 2) ? \
- ( ( 'a' == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? \
- ( ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ? 3 : 2 )\
- : ( 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( 'h' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'i' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'j' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 's' == ((const U8*)s)[0] ) ? \
- ( ( inRANGE(((const U8*)s)[1], 's', 't') ) ? 2 : 0 ) \
- : ( 't' == ((const U8*)s)[0] ) ? \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'w' == ((const U8*)s)[0] || 'y' == ((const U8*)s)[0] ) ? \
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 'n' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] || 'i' == ((const U8*)s)[1] || 'l' == ((const U8*)s)[1] ) ? 2 : 0 )\
- : ( ( 's' == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 's', 't') ) ) ? 2 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
: 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
( ((e)-(s) > 5) ? \
- ( ( 'a' == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
- : ( 'f' == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
/*
/*** GENERATED CODE ***/
#define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
( ((e)-(s) > 5) ? \
- ( ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( ( 'f' == ((const U8*)s)[1] ) && ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )\
: ( 0xB3 == ((const U8*)s)[0] ) ? \
( ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
( ( ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB3 == ((const U8*)s)[4] ) ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
: ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
: ( ( ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB3 == ((const U8*)s)[4] ) ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
: 0 ) \
-: ( ( ( ((e)-(s) > 2) && ( 'f' == ((const U8*)s)[0] ) ) && ( 'f' == ((const U8*)s)[1] ) ) && ( 'i' == ((const U8*)s)[2] || 'l' == ((const U8*)s)[2] ) ) ? 3 : 0 )
+: ( ( ( ((e)-(s) > 2) && ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ) && ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )
/*
THREE_CHAR_FOLD: A three-character multi-char fold
/*** GENERATED CODE ***/
#define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
( ((e)-(s) > 3) ? \
- ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 's' ) || ((const U8*)s)[0] == 'w' || ((const U8*)s)[0] == 'y' ) ? 1\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
: ( 0xAA == ((const U8*)s)[0] ) ? \
( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB3 == ((const U8*)s)[0] ) ? \
: ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: 0 ) \
: ((e)-(s) > 2) ? \
- ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 's' ) || ((const U8*)s)[0] == 'w' || ((const U8*)s)[0] == 'y' ) ? 1\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
: ( 0xAA == ((const U8*)s)[0] ) ? \
( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB3 == ((const U8*)s)[0] ) ? \
: ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: 0 ) \
: ((e)-(s) > 1) ? \
- ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 's' ) || ((const U8*)s)[0] == 'w' || ((const U8*)s)[0] == 'y' ) ? 1\
- : ( 'f' == ((const U8*)s)[0] ) ? \
- ( ( 'f' == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
+ : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
: ( 0xAA == ((const U8*)s)[0] ) ? \
( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xB3 == ((const U8*)s)[0] ) ? \
( ( ((const U8*)s)[1] == 0x53 || ((const U8*)s)[1] == 0x55 || ((const U8*)s)[1] == 0x58 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) ) ? 2 : 0 )\
: ( ( 0xB4 == ((const U8*)s)[0] ) && ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ) ? 2 : 0 )\
: ((e)-(s) > 0) ? \
- ( ( ( ((const U8*)s)[0] & 0xEF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xFE ) == 's' ) || ((const U8*)s)[0] == 'y' )\
+ ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0x9F ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) )\
: 0 )
/*
* 50b85a67451145545a65cea370dab8d3444fbfe07e9c34cef560c5b7da9d3eef lib/unicore/version
* 2680b9254eb236c5c090f11b149605043e8c8433661b96efc4a42fb4709342a5 regen/charset_translations.pl
* e44d836c4a344d535e81585842da1e85bbc24f2f67f4f3e7e3ec32b16262f856 regen/regcharclass.pl
- * b549b9989c6987563dad8f8ad6b984c8026cdc283d60ea34457959c5d4b4ade0 regen/regcharclass_multi_char_folds.pl
+ * 830295a68856e7c31bea527a47b780011700e9a362494bf34a000c3d81fc9694 regen/regcharclass_multi_char_folds.pl
* ex: set ro: */