summaryrefslogtreecommitdiff
path: root/regcomp.c
diff options
context:
space:
mode:
authorKarl Williamson <public@khwilliamson.com>2011-03-20 11:14:28 -0600
committerKarl Williamson <public@khwilliamson.com>2011-03-20 12:16:13 -0600
commit14e30abce074b423b55e5945b5ee1ca674b2c955 (patch)
tree84f3ff88e1721aae150968e25200ae1b1018174e /regcomp.c
parente2a7e16564e5652c046ec138d11bfa77e7c86836 (diff)
downloadperl-14e30abce074b423b55e5945b5ee1ca674b2c955.tar.gz
regcomp.c: Add special case for a Unicode char
This failed under some circumstances
Diffstat (limited to 'regcomp.c')
-rw-r--r--regcomp.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/regcomp.c b/regcomp.c
index cf0f3db648..4af3e8b2b3 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -10026,6 +10026,18 @@ parseit:
add_alternate(&unicode_alternate, foldbuf, foldlen);
end_multi_fold: ;
}
+
+ /* This is special-cased, as it is the only letter which
+ * has both a multi-fold and single-fold in Latin1. All
+ * the other chars that have single and multi-folds are
+ * always in utf8, and the utf8 folding algorithm catches
+ * them */
+ if (! LOC && j == LATIN_CAPITAL_LETTER_SHARP_S) {
+ stored += set_regclass_bit(pRExC_state,
+ ret,
+ LATIN_SMALL_LETTER_SHARP_S,
+ &l1_fold_invlist, &unicode_alternate);
+ }
}
else {
/* Single character fold. Add everything in its fold