X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/8770da0e36c1d16484eea6e86a2d0eeafad07f30..2656178466102ca7279f95992c941b6ce42fe923:/regcharclass.h diff --git a/regcharclass.h b/regcharclass.h index e15da14..924841f 100644 --- a/regcharclass.h +++ b/regcharclass.h @@ -8,7 +8,7 @@ * License or the Artistic License, as specified in the README file. * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - * This file is built by Porting/regcharclass.pl. + * This file is built by regen/regcharclass.pl. * Any changes made here will be lost! */ @@ -359,11 +359,14 @@ 0x2029 == cp ) ) ) ) ) ) /* - TRICKYFOLD: Problematic fold case letters. + TRICKYFOLD: Problematic fold case letters. When adding to this list, also should add them to regcomp.c and fold_grind.t - 0x00DF # LATIN1 SMALL LETTER SHARP S + 0x00DF # LATIN SMALL LETTER SHARP S 0x0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 0x03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS + 0x1E9E # LATIN CAPITAL LETTER SHARP S, because maps to same as 00DF + 0x1FD3 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA; maps same as 0390 + 0x1FE3 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA; maps same as 03B0 */ /*** GENERATED CODE ***/ #define is_TRICKYFOLD(s,is_utf8) \ @@ -372,12 +375,32 @@ ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 ) \ : ( 0xCE == ((U8*)s)[0] ) ? \ ( ( 0x90 == ((U8*)s)[1] || 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \ + : ( 0xE1 == ((U8*)s)[0] ) ? \ + ( ( 0xBA == ((U8*)s)[1] ) ? \ + ( ( 0x9E == ((U8*)s)[2] ) ? 3 : 0 ) \ + : ( 0xBF == ((U8*)s)[1] ) ? \ + ( ( 0x93 == ((U8*)s)[2] || 0xA3 == ((U8*)s)[2] ) ? 3 : 0 ) \ + : 0 ) \ : 0 ) \ : ( 0xDF == ((U8*)s)[0] ) ) /*** GENERATED CODE ***/ #define is_TRICKYFOLD_safe(s,e,is_utf8) \ -( ((e)-(s) > 1) ? \ +( ((e)-(s) > 2) ? \ + ( ( is_utf8 ) ? \ + ( ( 0xC3 == ((U8*)s)[0] ) ? \ + ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 ) \ + : ( 0xCE == ((U8*)s)[0] ) ? \ + ( ( 0x90 == ((U8*)s)[1] || 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \ + : ( 0xE1 == ((U8*)s)[0] ) ? \ + ( ( 0xBA == ((U8*)s)[1] ) ? \ + ( ( 0x9E == ((U8*)s)[2] ) ? 3 : 0 ) \ + : ( 0xBF == ((U8*)s)[1] ) ? \ + ( ( 0x93 == ((U8*)s)[2] || 0xA3 == ((U8*)s)[2] ) ? 3 : 0 ) \ + : 0 ) \ + : 0 ) \ + : ( 0xDF == ((U8*)s)[0] ) ) \ +: ((e)-(s) > 1) ? \ ( ( is_utf8 ) ? \ ( ( 0xC3 == ((U8*)s)[0] ) ? \ ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 ) \ @@ -395,7 +418,10 @@ #define is_TRICKYFOLD_cp(cp) \ ( 0xDF == cp || ( 0xDF < cp && \ ( 0x390 == cp || ( 0x390 < cp && \ -0x3B0 == cp ) ) ) ) +( 0x3B0 == cp || ( 0x3B0 < cp && \ +( 0x1E9E == cp || ( 0x1E9E < cp && \ +( 0x1FD3 == cp || ( 0x1FD3 < cp && \ +0x1FE3 == cp ) ) ) ) ) ) ) ) ) ) /*** GENERATED CODE ***/ #define what_TRICKYFOLD(s,is_utf8) \ @@ -405,12 +431,35 @@ : ( 0xCE == ((U8*)s)[0] ) ? \ ( ( 0x90 == ((U8*)s)[1] ) ? 0x390 \ : ( 0xB0 == ((U8*)s)[1] ) ? 0x3B0 : 0 ) \ + : ( 0xE1 == ((U8*)s)[0] ) ? \ + ( ( 0xBA == ((U8*)s)[1] ) ? \ + ( ( 0x9E == ((U8*)s)[2] ) ? 0x1E9E : 0 ) \ + : ( 0xBF == ((U8*)s)[1] ) ? \ + ( ( 0x93 == ((U8*)s)[2] ) ? 0x1FD3 \ + : ( 0xA3 == ((U8*)s)[2] ) ? 0x1FE3 : 0 ) \ + : 0 ) \ : 0 ) \ : ( 0xDF == ((U8*)s)[0] ) ? 0xDF : 0 ) /*** GENERATED CODE ***/ #define what_TRICKYFOLD_safe(s,e,is_utf8) \ -( ((e)-(s) > 1) ? \ +( ((e)-(s) > 2) ? \ + ( ( is_utf8 ) ? \ + ( ( 0xC3 == ((U8*)s)[0] ) ? \ + ( ( 0x9F == ((U8*)s)[1] ) ? 0xDF : 0 ) \ + : ( 0xCE == ((U8*)s)[0] ) ? \ + ( ( 0x90 == ((U8*)s)[1] ) ? 0x390 \ + : ( 0xB0 == ((U8*)s)[1] ) ? 0x3B0 : 0 ) \ + : ( 0xE1 == ((U8*)s)[0] ) ? \ + ( ( 0xBA == ((U8*)s)[1] ) ? \ + ( ( 0x9E == ((U8*)s)[2] ) ? 0x1E9E : 0 ) \ + : ( 0xBF == ((U8*)s)[1] ) ? \ + ( ( 0x93 == ((U8*)s)[2] ) ? 0x1FD3 \ + : ( 0xA3 == ((U8*)s)[2] ) ? 0x1FE3 : 0 ) \ + : 0 ) \ + : 0 ) \ + : ( 0xDF == ((U8*)s)[0] ) ? 0xDF : 0 ) \ +: ((e)-(s) > 1) ? \ ( ( is_utf8 ) ? \ ( ( 0xC3 == ((U8*)s)[0] ) ? \ ( ( 0x9F == ((U8*)s)[1] ) ? 0xDF : 0 ) \ @@ -431,12 +480,35 @@ : ( 0xCE == ((U8*)s)[0] ) ? \ ( ( 0x90 == ((U8*)s)[1] ) ? len=2, 0x390 \ : ( 0xB0 == ((U8*)s)[1] ) ? len=2, 0x3B0 : 0 ) \ + : ( 0xE1 == ((U8*)s)[0] ) ? \ + ( ( 0xBA == ((U8*)s)[1] ) ? \ + ( ( 0x9E == ((U8*)s)[2] ) ? len=3, 0x1E9E : 0 ) \ + : ( 0xBF == ((U8*)s)[1] ) ? \ + ( ( 0x93 == ((U8*)s)[2] ) ? len=3, 0x1FD3 \ + : ( 0xA3 == ((U8*)s)[2] ) ? len=3, 0x1FE3 : 0 ) \ + : 0 ) \ : 0 ) \ : ( 0xDF == ((U8*)s)[0] ) ? len=1, 0xDF : 0 ) /*** GENERATED CODE ***/ #define what_len_TRICKYFOLD_safe(s,e,is_utf8,len) \ -( ((e)-(s) > 1) ? \ +( ((e)-(s) > 2) ? \ + ( ( is_utf8 ) ? \ + ( ( 0xC3 == ((U8*)s)[0] ) ? \ + ( ( 0x9F == ((U8*)s)[1] ) ? len=2, 0xDF : 0 ) \ + : ( 0xCE == ((U8*)s)[0] ) ? \ + ( ( 0x90 == ((U8*)s)[1] ) ? len=2, 0x390 \ + : ( 0xB0 == ((U8*)s)[1] ) ? len=2, 0x3B0 : 0 ) \ + : ( 0xE1 == ((U8*)s)[0] ) ? \ + ( ( 0xBA == ((U8*)s)[1] ) ? \ + ( ( 0x9E == ((U8*)s)[2] ) ? len=3, 0x1E9E : 0 ) \ + : ( 0xBF == ((U8*)s)[1] ) ? \ + ( ( 0x93 == ((U8*)s)[2] ) ? len=3, 0x1FD3 \ + : ( 0xA3 == ((U8*)s)[2] ) ? len=3, 0x1FE3 : 0 ) \ + : 0 ) \ + : 0 ) \ + : ( 0xDF == ((U8*)s)[0] ) ? len=1, 0xDF : 0 ) \ +: ((e)-(s) > 1) ? \ ( ( is_utf8 ) ? \ ( ( 0xC3 == ((U8*)s)[0] ) ? \ ( ( 0x9F == ((U8*)s)[1] ) ? len=2, 0xDF : 0 ) \