# 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

Reply via email to