diff options
author | Karl Williamson <public@khwilliamson.com> | 2013-03-25 19:56:50 -0600 |
---|---|---|
committer | Karl Williamson <khw@cpan.org> | 2015-03-05 21:48:25 -0700 |
commit | 8451602e68fc7c1db0ce6513366724e57dd945df (patch) | |
tree | 01093032864129325886716423e841f13c18f110 /t/op | |
parent | ff23b6f8f3337d6033cab71eddbdca1900bd3cb9 (diff) | |
download | perl-8451602e68fc7c1db0ce6513366724e57dd945df.tar.gz |
t/op/lc.t: Generalize for non-ASCII platforms
This had code that attempted this, but it was wrong. The conversion to
EBCDIC must be done before the \U, or similar.
Diffstat (limited to 't/op')
-rw-r--r-- | t/op/lc.t | 19 |
1 files changed, 9 insertions, 10 deletions
@@ -104,17 +104,17 @@ is(uc($b) , "\x{100}\x{100}AA", 'uc'); is(lc($b) , "\x{101}\x{101}aa", 'lc'); is(fc($b) , "\x{101}\x{101}aa", 'fc'); +my $sharp_s = uni_to_native("\x{DF}"); # \x{DF} is LATIN SMALL LETTER SHARP S, its uppercase is SS or \x{53}\x{53}; # \x{149} is LATIN SMALL LETTER N PRECEDED BY APOSTROPHE, its uppercase is # \x{2BC}\x{E4} or MODIFIER LETTER APOSTROPHE and N. -is(uni_to_native("\U\x{DF}aB\x{149}cD"), uni_to_native("SSAB\x{2BC}NCD"), - "multicharacter uppercase"); +is("\U${sharp_s}aB\x{149}cD", "SSAB\x{2BC}NCD", "multicharacter uppercase"); # The \x{DF} is its own lowercase, ditto for \x{149}. # There are no single character -> multiple characters lowercase mappings. -is(uni_to_native("\L\x{DF}aB\x{149}cD"), uni_to_native("\x{DF}ab\x{149}cd"), +is("\L${sharp_s}aB\x{149}cD", "${sharp_s}ab\x{149}cd", "multicharacter lowercase"); # \x{DF} is LATIN SMALL LETTER SHARP S, its foldcase is ss or \x{73}\x{73}; @@ -122,8 +122,7 @@ is(uni_to_native("\L\x{DF}aB\x{149}cD"), uni_to_native("\x{DF}ab\x{149}cd"), # \x{2BC}\x{6E} or MODIFIER LETTER APOSTROPHE and n. # Note that is this further tested in t/uni/fold.t -is(uni_to_native("\F\x{DF}aB\x{149}cD"), uni_to_native("ssab\x{2BC}ncd"), - "multicharacter foldcase"); +is("\F${sharp_s}aB\x{149}cD", "ssab\x{2BC}ncd", "multicharacter foldcase"); # titlecase is used for \u / ucfirst. @@ -283,15 +282,15 @@ for ("$temp") { } # new in Unicode 5.1.0 -is(lc("\x{1E9E}"), "\x{df}", "lc(LATIN CAPITAL LETTER SHARP S)"); +is(lc("\x{1E9E}"), uni_to_native("\x{df}"), "lc(LATIN CAPITAL LETTER SHARP S)"); { use feature 'unicode_strings'; use bytes; - is(lc("\xc0"), "\xc0", "lc of above-ASCII Latin1 is itself under use bytes"); - is(lcfirst("\xc0"), "\xc0", "lcfirst of above-ASCII Latin1 is itself under use bytes"); - is(uc("\xe0"), "\xe0", "uc of above-ASCII Latin1 is itself under use bytes"); - is(ucfirst("\xe0"), "\xe0", "ucfirst of above-ASCII Latin1 is itself under use bytes"); + is(lc(uni_to_native("\xc0")), uni_to_native("\xc0"), "lc of above-ASCII Latin1 is itself under use bytes"); + is(lcfirst(uni_to_native("\xc0")), uni_to_native("\xc0"), "lcfirst of above-ASCII Latin1 is itself under use bytes"); + is(uc(uni_to_native("\xe0")), uni_to_native("\xe0"), "uc of above-ASCII Latin1 is itself under use bytes"); + is(ucfirst(uni_to_native("\xe0")), uni_to_native("\xe0"), "ucfirst of above-ASCII Latin1 is itself under use bytes"); } # Brought up in ticket #117855: Constant folding applied to uc() should use |