summaryrefslogtreecommitdiff
path: root/regcomp.c
diff options
context:
space:
mode:
authorKarl Williamson <public@khwilliamson.com>2010-11-30 17:48:22 -0700
committerFather Chrysostomos <sprout@cpan.org>2010-12-01 18:06:00 -0800
commit1e696034880c724355310894883f86e27e0cb264 (patch)
tree5c2af8a0b7cac9cb0803771e93cbd8dbe749ec79 /regcomp.c
parent4b714af6fa31f14f6cc58acda554a5dbef2f5248 (diff)
downloadperl-1e696034880c724355310894883f86e27e0cb264.tar.gz
regcomp.c: teach tries about EXACTFU
Diffstat (limited to 'regcomp.c')
-rw-r--r--regcomp.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/regcomp.c b/regcomp.c
index b970ab8c64..7ee2867c6e 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -1358,13 +1358,7 @@ S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, regnode *firs
regnode *convert = NULL;
U32 *prev_states; /* temp array mapping each state to previous one */
/* we just use folder as a flag in utf8 */
- const U8 * const folder = ( flags == EXACTF
- ? PL_fold
- : ( flags == EXACTFL
- ? PL_fold_locale
- : NULL
- )
- );
+ const U8 * folder = NULL;
#ifdef DEBUGGING
const U32 data_slot = add_data( pRExC_state, 4, "tuuu" );
@@ -1384,6 +1378,12 @@ S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, regnode *firs
PERL_UNUSED_ARG(depth);
#endif
+ switch (flags) {
+ case EXACTFU: folder = PL_fold_latin1; break;
+ case EXACTF: folder = PL_fold; break;
+ case EXACTFL: folder = PL_fold_locale; break;
+ }
+
trie = (reg_trie_data *) PerlMemShared_calloc( 1, sizeof(reg_trie_data) );
trie->refcount = 1;
trie->startstate = 1;