summaryrefslogtreecommitdiff
path: root/pp.c
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2020-12-30 05:55:08 -0700
committerKarl Williamson <khw@cpan.org>2020-12-30 07:08:52 -0700
commit4cfbe5474a5c5f852a6dbf0138dc796c2800be93 (patch)
tree8ea05ea8bcb4100f77cd73d5e68298f587d5bfaf /pp.c
parent1f6e74eb3536a13f38c1016477cd5b62dfe4e3da (diff)
downloadperl-4cfbe5474a5c5f852a6dbf0138dc796c2800be93.tar.gz
Fix buggy fc() in Turkish locale
When Turkish handling was added, fc() wasn't properly updated
Diffstat (limited to 'pp.c')
-rw-r--r--pp.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/pp.c b/pp.c
index 5e1706346d..23cc6c8adb 100644
--- a/pp.c
+++ b/pp.c
@@ -4813,7 +4813,7 @@ PP(pp_fc)
do {
extra++;
- s_peek = (U8 *) memchr(s_peek + 1, 'i',
+ s_peek = (U8 *) memchr(s_peek + 1, 'I',
send - (s_peek + 1));
} while (s_peek != NULL);
}
@@ -4828,8 +4828,14 @@ PP(pp_fc)
+ 1 /* Trailing NUL */ );
d = (U8*)SvPVX(dest) + len;
- *d++ = UTF8_TWO_BYTE_HI(GREEK_SMALL_LETTER_MU);
- *d++ = UTF8_TWO_BYTE_LO(GREEK_SMALL_LETTER_MU);
+ if (*s == 'I') {
+ *d++ = UTF8_TWO_BYTE_HI(LATIN_SMALL_LETTER_DOTLESS_I);
+ *d++ = UTF8_TWO_BYTE_LO(LATIN_SMALL_LETTER_DOTLESS_I);
+ }
+ else {
+ *d++ = UTF8_TWO_BYTE_HI(GREEK_SMALL_LETTER_MU);
+ *d++ = UTF8_TWO_BYTE_LO(GREEK_SMALL_LETTER_MU);
+ }
s++;
for (; s < send; s++) {