diff options
Diffstat (limited to 'lang/perl5.12/files/patch-bug69973')
-rw-r--r-- | lang/perl5.12/files/patch-bug69973 | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/lang/perl5.12/files/patch-bug69973 b/lang/perl5.12/files/patch-bug69973 deleted file mode 100644 index fe2119fe42a1..000000000000 --- a/lang/perl5.12/files/patch-bug69973 +++ /dev/null @@ -1,95 +0,0 @@ -# http://rt.perl.org/rt3//Public/Bug/Display.html?id=69973 -# http://perl5.git.perl.org/perl.git/commitdiff_plain/0abd0d78a73da1c4d13b1c700526b7e5d03b32d4?hp=fe88edf0c4ada4230b84bdb5417029b8f766694a -diff --git a/ext/re/t/regop.t b/ext/re/t/regop.t -index 9118bf6..46e6ec0 100644 ---- ext/re/t/regop.t -+++ ext/re/t/regop.t -@@ -231,12 +231,12 @@ anchored "ABC" at 0 - #Freeing REx: "(\\.COM|\\.EXE|\\.BAT|\\.CMD|\\.VBS|\\.VBE|\\.JS|\\.JSE|\\."...... - %MATCHED% - floating ""$ at 3..4 (checking floating) --1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0] --stclass EXACTF <.> minlen 3 --Found floating substr ""$ at offset 30... --Does not contradict STCLASS... --Guessed: match at offset 26 --Matching stclass EXACTF <.> against ".exe" -+#1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0] -+#stclass EXACTF <.> minlen 3 -+#Found floating substr ""$ at offset 30... -+#Does not contradict STCLASS... -+#Guessed: match at offset 26 -+#Matching stclass EXACTF <.> against ".exe" - --- - #Compiling REx "[q]" - #size 12 nodes Got 100 bytes for offset annotations. -diff --git a/regcomp.c b/regcomp.c -index 6e9fa26..eb5f12f 100644 ---- regcomp.c -+++ regcomp.c -@@ -2833,13 +2833,18 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, - } - } else { - /* -- Currently we assume that the trie can handle unicode and ascii -- matches fold cased matches. If this proves true then the following -- define will prevent tries in this situation. -- -- #define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT) --*/ -+ Currently we do not believe that the trie logic can -+ handle case insensitive matching properly when the -+ pattern is not unicode (thus forcing unicode semantics). -+ -+ If/when this is fixed the following define can be swapped -+ in below to fully enable trie logic. -+ - #define TRIE_TYPE_IS_SAFE 1 -+ -+*/ -+#define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT) -+ - if ( last && TRIE_TYPE_IS_SAFE ) { - make_trie( pRExC_state, - startbranch, first, cur, tail, count, -diff --git a/regexec.c b/regexec.c -index 402ede3..ec09c28 100644 ---- regexec.c -+++ regexec.c -@@ -1105,16 +1105,15 @@ Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV *sv, char *strpos, - - #define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan, len, \ - uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \ -- UV uvc_unfolded = 0; \ - switch (trie_type) { \ - case trie_utf8_fold: \ - if ( foldlen>0 ) { \ -- uvc_unfolded = uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \ -+ uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \ - foldlen -= len; \ - uscan += len; \ - len=0; \ - } else { \ -- uvc_unfolded = uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \ -+ uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \ - uvc = to_uni_fold( uvc, foldbuf, &foldlen ); \ - foldlen -= UNISKIP( uvc ); \ - uscan = foldbuf + UNISKIP( uvc ); \ -@@ -1140,7 +1139,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \ - uvc = (UV)*uc; \ - len = 1; \ - } \ -- \ - if (uvc < 256) { \ - charid = trie->charmap[ uvc ]; \ - } \ -@@ -1153,9 +1151,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \ - charid = (U16)SvIV(*svpp); \ - } \ - } \ -- if (!charid && trie_type == trie_utf8_fold && !UTF) { \ -- charid = trie->charmap[uvc_unfolded]; \ -- } \ - } STMT_END - - #define REXEC_FBC_EXACTISH_CHECK(CoNd) \ |