summaryrefslogtreecommitdiff
path: root/pp.c
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2015-06-21 21:38:32 -0600
committerKarl Williamson <khw@cpan.org>2015-07-28 22:15:53 -0600
commit9b63e895ee43cb3717f72cde64f6a658b1b46dd7 (patch)
treebf381dfa72b0e8c5bd5c89b393f635405b0189a6 /pp.c
parentce6e23cf44eba8e2f28aeef6eafc77ef073a33a9 (diff)
downloadperl-9b63e895ee43cb3717f72cde64f6a658b1b46dd7.tar.gz
There are no folds to multiple chars in early Unicode versions
Several places require special handling because of this, notably for the lowercase Sharp S, but not in Unicodes before 3.0.1
Diffstat (limited to 'pp.c')
-rw-r--r--pp.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/pp.c b/pp.c
index f750fce304..57b05b3d14 100644
--- a/pp.c
+++ b/pp.c
@@ -4401,8 +4401,14 @@ PP(pp_fc)
const U8 *send;
U8 *d;
U8 tmpbuf[UTF8_MAXBYTES_CASE + 1];
+#if UNICODE_MAJOR_VERSION > 3 /* no multifolds in early Unicode */ \
+ || (UNICODE_MAJOR_VERSION == 3 && ( UNICODE_DOT_VERSION > 0) \
+ || UNICODE_DOT_DOT_VERSION > 0)
const bool full_folding = TRUE; /* This variable is here so we can easily
move to more generality later */
+#else
+ const bool full_folding = FALSE;
+#endif
const U8 flags = ( full_folding ? FOLD_FLAGS_FULL : 0 )
#ifdef USE_LOCALE_CTYPE
| ( IN_LC_RUNTIME(LC_CTYPE) ? FOLD_FLAGS_LOCALE : 0 )