summaryrefslogtreecommitdiff
path: root/pp.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-10-23 12:52:10 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-10-23 12:52:10 +0000
commit6fdb5f96460dfb69dad11dd7111abf8ec1263bb1 (patch)
tree719a8dab7204d5f4518a76666c2e0e505a06a1f5 /pp.c
parent44bc797b2bc92bd45d512cde050d525bd921cf16 (diff)
downloadperl-6fdb5f96460dfb69dad11dd7111abf8ec1263bb1.tar.gz
Document the final sigma spot.
p4raw-id: //depot/perl@12602
Diffstat (limited to 'pp.c')
-rw-r--r--pp.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/pp.c b/pp.c
index 3d93f759ac..a0729e972a 100644
--- a/pp.c
+++ b/pp.c
@@ -3277,7 +3277,7 @@ PP(pp_uc)
d = (U8*)SvPVX(TARG);
send = s + len;
while (s < send) {
- toUPPER_utf8(s, tmpbuf, &ulen);
+ toUPPER_utf8(s, tmpbuf, &ulen);
Copy(tmpbuf, d, ulen, U8);
d += ulen;
s += UTF8SKIP(s);
@@ -3344,7 +3344,24 @@ PP(pp_lc)
d = (U8*)SvPVX(TARG);
send = s + len;
while (s < send) {
- toLOWER_utf8(s, tmpbuf, &ulen);
+ UV uv = toLOWER_utf8(s, tmpbuf, &ulen);
+#define GREEK_CAPITAL_LETTER_SIGMA 0x03A3 /* Unicode */
+ if (uv == GREEK_CAPITAL_LETTER_SIGMA) {
+ /*
+ * Now if the sigma is NOT followed by
+ * /$ignorable_sequence$cased_letter/;
+ * and it IS preceded by
+ * /$cased_letter$ignorable_sequence/;
+ * where $ignorable_sequence is
+ * [\x{2010}\x{AD}\p{Mn}]*
+ * and $cased_letter is
+ * [\p{Ll}\p{Lo}\p{Lt}]
+ * then it should be mapped to 0x03C2,
+ * (GREEK SMALL LETTER FINAL SIGMA),
+ * instead of staying 0x03A3.
+ * See lib/unicore/SpecCase.txt.
+ */
+ }
Copy(tmpbuf, d, ulen, U8);
d += ulen;
s += UTF8SKIP(s);