# New Ticket Created by raiph # Please include the string: [perl #125556] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=125556 >
What I did: > say 'ffl'.uc; # say the uppercased version of an ffl ligature What I got with camelia (rakudo-moar 01edd3): ffl "What I expected": FFL ---- "What I expected" is based on http://unicode.org/Public/UNIDATA/SpecialCasing.txt which defines a bunch of special casing rules: "The data in this file, combined with the simple case mappings in UnicodeData.txt, defines the full case mappings Lowercase_Mapping (lc), Titlecase_Mapping (tc), and Uppercase_Mapping (uc)." The entry for ffl approximates to: <code>; <lower>; <title>; <upper>; # <comment> FB04; FB04; 0046 0066 006C; 0046 0046 004C; # LATIN SMALL LIGATURE FFL (Note difference between title case and upper case.) ---- A quick search of MoarVM's source code for SpecialCasing reveals this comment: # XXX SpecialCasing.txt # haven't decided how to do it (in the ucd2c.pl tool) I'm surmising that Rakudo (MoarVM) does none of this special casing yet. ---- Digging a little bit more in to What I did and What I got: > say 'ffl'.uniname LATIN SMALL LIGATURE FFL > say 'ffl'.NFD NFD:0x<fb04> The canonical decomposition of this precomposed codepoint is to the individual 'f' and 'l' characters of which the ligature is composed, i.e. three codepoints: > say 'ffl'.NFKD, 'ffl'.NFKD.Str NFKD:0x<0066 0066 006c>, ffl