More logical to use %04"UVXf" than %"UVuf" since
Jarkko Hietaniemi [Fri, 26 Oct 2001 14:34:15 +0000 (14:34 +0000)]
the Unicode standard prefers hex.

p4raw-id: //depot/perl@12691

lib/unicore/To/Fold.pl
lib/unicore/To/Lower.pl
lib/unicore/To/Title.pl
lib/unicore/To/Upper.pl
lib/unicore/mktables
utf8.c

index 5a24150..1502690 100644 (file)
 # Any changes made here will be lost!
 
 %utf8::ToSpecFold = (
-'223' => "\x{0073}\x{0073}",
-'304' => "\x{0069}",
-'305' => "\x{0069}",
-'329' => "\x{02BC}\x{006E}",
-'496' => "\x{006A}\x{030C}",
-'912' => "\x{03B9}\x{0308}\x{0301}",
-'944' => "\x{03C5}\x{0308}\x{0301}",
-'1415' => "\x{0565}\x{0582}",
-'7830' => "\x{0068}\x{0331}",
-'7831' => "\x{0074}\x{0308}",
-'7832' => "\x{0077}\x{030A}",
-'7833' => "\x{0079}\x{030A}",
-'7834' => "\x{0061}\x{02BE}",
-'8016' => "\x{03C5}\x{0313}",
-'8018' => "\x{03C5}\x{0313}\x{0300}",
-'8020' => "\x{03C5}\x{0313}\x{0301}",
-'8022' => "\x{03C5}\x{0313}\x{0342}",
-'8064' => "\x{1F00}\x{03B9}",
-'8065' => "\x{1F01}\x{03B9}",
-'8066' => "\x{1F02}\x{03B9}",
-'8067' => "\x{1F03}\x{03B9}",
-'8068' => "\x{1F04}\x{03B9}",
-'8069' => "\x{1F05}\x{03B9}",
-'8070' => "\x{1F06}\x{03B9}",
-'8071' => "\x{1F07}\x{03B9}",
-'8072' => "\x{1F00}\x{03B9}",
-'8073' => "\x{1F01}\x{03B9}",
-'8074' => "\x{1F02}\x{03B9}",
-'8075' => "\x{1F03}\x{03B9}",
-'8076' => "\x{1F04}\x{03B9}",
-'8077' => "\x{1F05}\x{03B9}",
-'8078' => "\x{1F06}\x{03B9}",
-'8079' => "\x{1F07}\x{03B9}",
-'8080' => "\x{1F20}\x{03B9}",
-'8081' => "\x{1F21}\x{03B9}",
-'8082' => "\x{1F22}\x{03B9}",
-'8083' => "\x{1F23}\x{03B9}",
-'8084' => "\x{1F24}\x{03B9}",
-'8085' => "\x{1F25}\x{03B9}",
-'8086' => "\x{1F26}\x{03B9}",
-'8087' => "\x{1F27}\x{03B9}",
-'8088' => "\x{1F20}\x{03B9}",
-'8089' => "\x{1F21}\x{03B9}",
-'8090' => "\x{1F22}\x{03B9}",
-'8091' => "\x{1F23}\x{03B9}",
-'8092' => "\x{1F24}\x{03B9}",
-'8093' => "\x{1F25}\x{03B9}",
-'8094' => "\x{1F26}\x{03B9}",
-'8095' => "\x{1F27}\x{03B9}",
-'8096' => "\x{1F60}\x{03B9}",
-'8097' => "\x{1F61}\x{03B9}",
-'8098' => "\x{1F62}\x{03B9}",
-'8099' => "\x{1F63}\x{03B9}",
-'8100' => "\x{1F64}\x{03B9}",
-'8101' => "\x{1F65}\x{03B9}",
-'8102' => "\x{1F66}\x{03B9}",
-'8103' => "\x{1F67}\x{03B9}",
-'8104' => "\x{1F60}\x{03B9}",
-'8105' => "\x{1F61}\x{03B9}",
-'8106' => "\x{1F62}\x{03B9}",
-'8107' => "\x{1F63}\x{03B9}",
-'8108' => "\x{1F64}\x{03B9}",
-'8109' => "\x{1F65}\x{03B9}",
-'8110' => "\x{1F66}\x{03B9}",
-'8111' => "\x{1F67}\x{03B9}",
-'8114' => "\x{1F70}\x{03B9}",
-'8115' => "\x{03B1}\x{03B9}",
-'8116' => "\x{03AC}\x{03B9}",
-'8118' => "\x{03B1}\x{0342}",
-'8119' => "\x{03B1}\x{0342}\x{03B9}",
-'8124' => "\x{03B1}\x{03B9}",
-'8130' => "\x{1F74}\x{03B9}",
-'8131' => "\x{03B7}\x{03B9}",
-'8132' => "\x{03AE}\x{03B9}",
-'8134' => "\x{03B7}\x{0342}",
-'8135' => "\x{03B7}\x{0342}\x{03B9}",
-'8140' => "\x{03B7}\x{03B9}",
-'8146' => "\x{03B9}\x{0308}\x{0300}",
-'8147' => "\x{03B9}\x{0308}\x{0301}",
-'8150' => "\x{03B9}\x{0342}",
-'8151' => "\x{03B9}\x{0308}\x{0342}",
-'8162' => "\x{03C5}\x{0308}\x{0300}",
-'8163' => "\x{03C5}\x{0308}\x{0301}",
-'8164' => "\x{03C1}\x{0313}",
-'8166' => "\x{03C5}\x{0342}",
-'8167' => "\x{03C5}\x{0308}\x{0342}",
-'8178' => "\x{1F7C}\x{03B9}",
-'8179' => "\x{03C9}\x{03B9}",
-'8180' => "\x{03CE}\x{03B9}",
-'8182' => "\x{03C9}\x{0342}",
-'8183' => "\x{03C9}\x{0342}\x{03B9}",
-'8188' => "\x{03C9}\x{03B9}",
-'64256' => "\x{0066}\x{0066}",
-'64257' => "\x{0066}\x{0069}",
-'64258' => "\x{0066}\x{006C}",
-'64259' => "\x{0066}\x{0066}\x{0069}",
-'64260' => "\x{0066}\x{0066}\x{006C}",
-'64261' => "\x{0073}\x{0074}",
-'64262' => "\x{0073}\x{0074}",
-'64275' => "\x{0574}\x{0576}",
-'64276' => "\x{0574}\x{0565}",
-'64277' => "\x{0574}\x{056B}",
-'64278' => "\x{057E}\x{0576}",
-'64279' => "\x{0574}\x{056D}",
+'00DF' => "\x{0073}\x{0073}",
+'0130' => "\x{0069}",
+'0131' => "\x{0069}",
+'0149' => "\x{02BC}\x{006E}",
+'01F0' => "\x{006A}\x{030C}",
+'0390' => "\x{03B9}\x{0308}\x{0301}",
+'03B0' => "\x{03C5}\x{0308}\x{0301}",
+'0587' => "\x{0565}\x{0582}",
+'1E96' => "\x{0068}\x{0331}",
+'1E97' => "\x{0074}\x{0308}",
+'1E98' => "\x{0077}\x{030A}",
+'1E99' => "\x{0079}\x{030A}",
+'1E9A' => "\x{0061}\x{02BE}",
+'1F50' => "\x{03C5}\x{0313}",
+'1F52' => "\x{03C5}\x{0313}\x{0300}",
+'1F54' => "\x{03C5}\x{0313}\x{0301}",
+'1F56' => "\x{03C5}\x{0313}\x{0342}",
+'1F80' => "\x{1F00}\x{03B9}",
+'1F81' => "\x{1F01}\x{03B9}",
+'1F82' => "\x{1F02}\x{03B9}",
+'1F83' => "\x{1F03}\x{03B9}",
+'1F84' => "\x{1F04}\x{03B9}",
+'1F85' => "\x{1F05}\x{03B9}",
+'1F86' => "\x{1F06}\x{03B9}",
+'1F87' => "\x{1F07}\x{03B9}",
+'1F88' => "\x{1F00}\x{03B9}",
+'1F89' => "\x{1F01}\x{03B9}",
+'1F8A' => "\x{1F02}\x{03B9}",
+'1F8B' => "\x{1F03}\x{03B9}",
+'1F8C' => "\x{1F04}\x{03B9}",
+'1F8D' => "\x{1F05}\x{03B9}",
+'1F8E' => "\x{1F06}\x{03B9}",
+'1F8F' => "\x{1F07}\x{03B9}",
+'1F90' => "\x{1F20}\x{03B9}",
+'1F91' => "\x{1F21}\x{03B9}",
+'1F92' => "\x{1F22}\x{03B9}",
+'1F93' => "\x{1F23}\x{03B9}",
+'1F94' => "\x{1F24}\x{03B9}",
+'1F95' => "\x{1F25}\x{03B9}",
+'1F96' => "\x{1F26}\x{03B9}",
+'1F97' => "\x{1F27}\x{03B9}",
+'1F98' => "\x{1F20}\x{03B9}",
+'1F99' => "\x{1F21}\x{03B9}",
+'1F9A' => "\x{1F22}\x{03B9}",
+'1F9B' => "\x{1F23}\x{03B9}",
+'1F9C' => "\x{1F24}\x{03B9}",
+'1F9D' => "\x{1F25}\x{03B9}",
+'1F9E' => "\x{1F26}\x{03B9}",
+'1F9F' => "\x{1F27}\x{03B9}",
+'1FA0' => "\x{1F60}\x{03B9}",
+'1FA1' => "\x{1F61}\x{03B9}",
+'1FA2' => "\x{1F62}\x{03B9}",
+'1FA3' => "\x{1F63}\x{03B9}",
+'1FA4' => "\x{1F64}\x{03B9}",
+'1FA5' => "\x{1F65}\x{03B9}",
+'1FA6' => "\x{1F66}\x{03B9}",
+'1FA7' => "\x{1F67}\x{03B9}",
+'1FA8' => "\x{1F60}\x{03B9}",
+'1FA9' => "\x{1F61}\x{03B9}",
+'1FAA' => "\x{1F62}\x{03B9}",
+'1FAB' => "\x{1F63}\x{03B9}",
+'1FAC' => "\x{1F64}\x{03B9}",
+'1FAD' => "\x{1F65}\x{03B9}",
+'1FAE' => "\x{1F66}\x{03B9}",
+'1FAF' => "\x{1F67}\x{03B9}",
+'1FB2' => "\x{1F70}\x{03B9}",
+'1FB3' => "\x{03B1}\x{03B9}",
+'1FB4' => "\x{03AC}\x{03B9}",
+'1FB6' => "\x{03B1}\x{0342}",
+'1FB7' => "\x{03B1}\x{0342}\x{03B9}",
+'1FBC' => "\x{03B1}\x{03B9}",
+'1FC2' => "\x{1F74}\x{03B9}",
+'1FC3' => "\x{03B7}\x{03B9}",
+'1FC4' => "\x{03AE}\x{03B9}",
+'1FC6' => "\x{03B7}\x{0342}",
+'1FC7' => "\x{03B7}\x{0342}\x{03B9}",
+'1FCC' => "\x{03B7}\x{03B9}",
+'1FD2' => "\x{03B9}\x{0308}\x{0300}",
+'1FD3' => "\x{03B9}\x{0308}\x{0301}",
+'1FD6' => "\x{03B9}\x{0342}",
+'1FD7' => "\x{03B9}\x{0308}\x{0342}",
+'1FE2' => "\x{03C5}\x{0308}\x{0300}",
+'1FE3' => "\x{03C5}\x{0308}\x{0301}",
+'1FE4' => "\x{03C1}\x{0313}",
+'1FE6' => "\x{03C5}\x{0342}",
+'1FE7' => "\x{03C5}\x{0308}\x{0342}",
+'1FF2' => "\x{1F7C}\x{03B9}",
+'1FF3' => "\x{03C9}\x{03B9}",
+'1FF4' => "\x{03CE}\x{03B9}",
+'1FF6' => "\x{03C9}\x{0342}",
+'1FF7' => "\x{03C9}\x{0342}\x{03B9}",
+'1FFC' => "\x{03C9}\x{03B9}",
+'FB00' => "\x{0066}\x{0066}",
+'FB01' => "\x{0066}\x{0069}",
+'FB02' => "\x{0066}\x{006C}",
+'FB03' => "\x{0066}\x{0066}\x{0069}",
+'FB04' => "\x{0066}\x{0066}\x{006C}",
+'FB05' => "\x{0073}\x{0074}",
+'FB06' => "\x{0073}\x{0074}",
+'FB13' => "\x{0574}\x{0576}",
+'FB14' => "\x{0574}\x{0565}",
+'FB15' => "\x{0574}\x{056B}",
+'FB16' => "\x{057E}\x{0576}",
+'FB17' => "\x{0574}\x{056D}",
 );
 
 return <<'END';
index ce89c8e..5508634 100644 (file)
 # Any changes made here will be lost!
 
 %utf8::ToSpecLower = (
-'223' => "\x{00DF}",
-'329' => "\x{0149}",
-'496' => "\x{01F0}",
-'912' => "\x{0390}",
-'944' => "\x{03B0}",
-'1415' => "\x{0587}",
-'7830' => "\x{1E96}",
-'7831' => "\x{1E97}",
-'7832' => "\x{1E98}",
-'7833' => "\x{1E99}",
-'7834' => "\x{1E9A}",
-'8016' => "\x{1F50}",
-'8018' => "\x{1F52}",
-'8020' => "\x{1F54}",
-'8022' => "\x{1F56}",
-'8064' => "\x{1F80}",
-'8065' => "\x{1F81}",
-'8066' => "\x{1F82}",
-'8067' => "\x{1F83}",
-'8068' => "\x{1F84}",
-'8069' => "\x{1F85}",
-'8070' => "\x{1F86}",
-'8071' => "\x{1F87}",
-'8072' => "\x{1F80}",
-'8073' => "\x{1F81}",
-'8074' => "\x{1F82}",
-'8075' => "\x{1F83}",
-'8076' => "\x{1F84}",
-'8077' => "\x{1F85}",
-'8078' => "\x{1F86}",
-'8079' => "\x{1F87}",
-'8080' => "\x{1F90}",
-'8081' => "\x{1F91}",
-'8082' => "\x{1F92}",
-'8083' => "\x{1F93}",
-'8084' => "\x{1F94}",
-'8085' => "\x{1F95}",
-'8086' => "\x{1F96}",
-'8087' => "\x{1F97}",
-'8088' => "\x{1F90}",
-'8089' => "\x{1F91}",
-'8090' => "\x{1F92}",
-'8091' => "\x{1F93}",
-'8092' => "\x{1F94}",
-'8093' => "\x{1F95}",
-'8094' => "\x{1F96}",
-'8095' => "\x{1F97}",
-'8096' => "\x{1FA0}",
-'8097' => "\x{1FA1}",
-'8098' => "\x{1FA2}",
-'8099' => "\x{1FA3}",
-'8100' => "\x{1FA4}",
-'8101' => "\x{1FA5}",
-'8102' => "\x{1FA6}",
-'8103' => "\x{1FA7}",
-'8104' => "\x{1FA0}",
-'8105' => "\x{1FA1}",
-'8106' => "\x{1FA2}",
-'8107' => "\x{1FA3}",
-'8108' => "\x{1FA4}",
-'8109' => "\x{1FA5}",
-'8110' => "\x{1FA6}",
-'8111' => "\x{1FA7}",
-'8114' => "\x{1FB2}",
-'8115' => "\x{1FB3}",
-'8116' => "\x{1FB4}",
-'8118' => "\x{1FB6}",
-'8119' => "\x{1FB7}",
-'8124' => "\x{1FB3}",
-'8130' => "\x{1FC2}",
-'8131' => "\x{1FC3}",
-'8132' => "\x{1FC4}",
-'8134' => "\x{1FC6}",
-'8135' => "\x{1FC7}",
-'8140' => "\x{1FC3}",
-'8146' => "\x{1FD2}",
-'8147' => "\x{1FD3}",
-'8150' => "\x{1FD6}",
-'8151' => "\x{1FD7}",
-'8162' => "\x{1FE2}",
-'8163' => "\x{1FE3}",
-'8164' => "\x{1FE4}",
-'8166' => "\x{1FE6}",
-'8167' => "\x{1FE7}",
-'8178' => "\x{1FF2}",
-'8179' => "\x{1FF3}",
-'8180' => "\x{1FF4}",
-'8182' => "\x{1FF6}",
-'8183' => "\x{1FF7}",
-'8188' => "\x{1FF3}",
-'64256' => "\x{FB00}",
-'64257' => "\x{FB01}",
-'64258' => "\x{FB02}",
-'64259' => "\x{FB03}",
-'64260' => "\x{FB04}",
-'64261' => "\x{FB05}",
-'64262' => "\x{FB06}",
-'64275' => "\x{FB13}",
-'64276' => "\x{FB14}",
-'64277' => "\x{FB15}",
-'64278' => "\x{FB16}",
-'64279' => "\x{FB17}",
+'00DF' => "\x{00DF}",
+'0149' => "\x{0149}",
+'01F0' => "\x{01F0}",
+'0390' => "\x{0390}",
+'03B0' => "\x{03B0}",
+'0587' => "\x{0587}",
+'1E96' => "\x{1E96}",
+'1E97' => "\x{1E97}",
+'1E98' => "\x{1E98}",
+'1E99' => "\x{1E99}",
+'1E9A' => "\x{1E9A}",
+'1F50' => "\x{1F50}",
+'1F52' => "\x{1F52}",
+'1F54' => "\x{1F54}",
+'1F56' => "\x{1F56}",
+'1F80' => "\x{1F80}",
+'1F81' => "\x{1F81}",
+'1F82' => "\x{1F82}",
+'1F83' => "\x{1F83}",
+'1F84' => "\x{1F84}",
+'1F85' => "\x{1F85}",
+'1F86' => "\x{1F86}",
+'1F87' => "\x{1F87}",
+'1F88' => "\x{1F80}",
+'1F89' => "\x{1F81}",
+'1F8A' => "\x{1F82}",
+'1F8B' => "\x{1F83}",
+'1F8C' => "\x{1F84}",
+'1F8D' => "\x{1F85}",
+'1F8E' => "\x{1F86}",
+'1F8F' => "\x{1F87}",
+'1F90' => "\x{1F90}",
+'1F91' => "\x{1F91}",
+'1F92' => "\x{1F92}",
+'1F93' => "\x{1F93}",
+'1F94' => "\x{1F94}",
+'1F95' => "\x{1F95}",
+'1F96' => "\x{1F96}",
+'1F97' => "\x{1F97}",
+'1F98' => "\x{1F90}",
+'1F99' => "\x{1F91}",
+'1F9A' => "\x{1F92}",
+'1F9B' => "\x{1F93}",
+'1F9C' => "\x{1F94}",
+'1F9D' => "\x{1F95}",
+'1F9E' => "\x{1F96}",
+'1F9F' => "\x{1F97}",
+'1FA0' => "\x{1FA0}",
+'1FA1' => "\x{1FA1}",
+'1FA2' => "\x{1FA2}",
+'1FA3' => "\x{1FA3}",
+'1FA4' => "\x{1FA4}",
+'1FA5' => "\x{1FA5}",
+'1FA6' => "\x{1FA6}",
+'1FA7' => "\x{1FA7}",
+'1FA8' => "\x{1FA0}",
+'1FA9' => "\x{1FA1}",
+'1FAA' => "\x{1FA2}",
+'1FAB' => "\x{1FA3}",
+'1FAC' => "\x{1FA4}",
+'1FAD' => "\x{1FA5}",
+'1FAE' => "\x{1FA6}",
+'1FAF' => "\x{1FA7}",
+'1FB2' => "\x{1FB2}",
+'1FB3' => "\x{1FB3}",
+'1FB4' => "\x{1FB4}",
+'1FB6' => "\x{1FB6}",
+'1FB7' => "\x{1FB7}",
+'1FBC' => "\x{1FB3}",
+'1FC2' => "\x{1FC2}",
+'1FC3' => "\x{1FC3}",
+'1FC4' => "\x{1FC4}",
+'1FC6' => "\x{1FC6}",
+'1FC7' => "\x{1FC7}",
+'1FCC' => "\x{1FC3}",
+'1FD2' => "\x{1FD2}",
+'1FD3' => "\x{1FD3}",
+'1FD6' => "\x{1FD6}",
+'1FD7' => "\x{1FD7}",
+'1FE2' => "\x{1FE2}",
+'1FE3' => "\x{1FE3}",
+'1FE4' => "\x{1FE4}",
+'1FE6' => "\x{1FE6}",
+'1FE7' => "\x{1FE7}",
+'1FF2' => "\x{1FF2}",
+'1FF3' => "\x{1FF3}",
+'1FF4' => "\x{1FF4}",
+'1FF6' => "\x{1FF6}",
+'1FF7' => "\x{1FF7}",
+'1FFC' => "\x{1FF3}",
+'FB00' => "\x{FB00}",
+'FB01' => "\x{FB01}",
+'FB02' => "\x{FB02}",
+'FB03' => "\x{FB03}",
+'FB04' => "\x{FB04}",
+'FB05' => "\x{FB05}",
+'FB06' => "\x{FB06}",
+'FB13' => "\x{FB13}",
+'FB14' => "\x{FB14}",
+'FB15' => "\x{FB15}",
+'FB16' => "\x{FB16}",
+'FB17' => "\x{FB17}",
 );
 
 return <<'END';
index 3da9ca9..5a43c63 100644 (file)
 # Any changes made here will be lost!
 
 %utf8::ToSpecTitle = (
-'223' => "\x{0053}\x{0073}",
-'329' => "\x{02BC}\x{004E}",
-'496' => "\x{004A}\x{030C}",
-'912' => "\x{0399}\x{0308}\x{0301}",
-'944' => "\x{03A5}\x{0308}\x{0301}",
-'1415' => "\x{0535}\x{0582}",
-'7830' => "\x{0048}\x{0331}",
-'7831' => "\x{0054}\x{0308}",
-'7832' => "\x{0057}\x{030A}",
-'7833' => "\x{0059}\x{030A}",
-'7834' => "\x{0041}\x{02BE}",
-'8016' => "\x{03A5}\x{0313}",
-'8018' => "\x{03A5}\x{0313}\x{0300}",
-'8020' => "\x{03A5}\x{0313}\x{0301}",
-'8022' => "\x{03A5}\x{0313}\x{0342}",
-'8064' => "\x{1F88}",
-'8065' => "\x{1F89}",
-'8066' => "\x{1F8A}",
-'8067' => "\x{1F8B}",
-'8068' => "\x{1F8C}",
-'8069' => "\x{1F8D}",
-'8070' => "\x{1F8E}",
-'8071' => "\x{1F8F}",
-'8072' => "\x{1F88}",
-'8073' => "\x{1F89}",
-'8074' => "\x{1F8A}",
-'8075' => "\x{1F8B}",
-'8076' => "\x{1F8C}",
-'8077' => "\x{1F8D}",
-'8078' => "\x{1F8E}",
-'8079' => "\x{1F8F}",
-'8080' => "\x{1F98}",
-'8081' => "\x{1F99}",
-'8082' => "\x{1F9A}",
-'8083' => "\x{1F9B}",
-'8084' => "\x{1F9C}",
-'8085' => "\x{1F9D}",
-'8086' => "\x{1F9E}",
-'8087' => "\x{1F9F}",
-'8088' => "\x{1F98}",
-'8089' => "\x{1F99}",
-'8090' => "\x{1F9A}",
-'8091' => "\x{1F9B}",
-'8092' => "\x{1F9C}",
-'8093' => "\x{1F9D}",
-'8094' => "\x{1F9E}",
-'8095' => "\x{1F9F}",
-'8096' => "\x{1FA8}",
-'8097' => "\x{1FA9}",
-'8098' => "\x{1FAA}",
-'8099' => "\x{1FAB}",
-'8100' => "\x{1FAC}",
-'8101' => "\x{1FAD}",
-'8102' => "\x{1FAE}",
-'8103' => "\x{1FAF}",
-'8104' => "\x{1FA8}",
-'8105' => "\x{1FA9}",
-'8106' => "\x{1FAA}",
-'8107' => "\x{1FAB}",
-'8108' => "\x{1FAC}",
-'8109' => "\x{1FAD}",
-'8110' => "\x{1FAE}",
-'8111' => "\x{1FAF}",
-'8114' => "\x{1FBA}\x{0345}",
-'8115' => "\x{1FBC}",
-'8116' => "\x{0386}\x{0345}",
-'8118' => "\x{0391}\x{0342}",
-'8119' => "\x{0391}\x{0342}\x{0345}",
-'8124' => "\x{1FBC}",
-'8130' => "\x{1FCA}\x{0345}",
-'8131' => "\x{1FCC}",
-'8132' => "\x{0389}\x{0345}",
-'8134' => "\x{0397}\x{0342}",
-'8135' => "\x{0397}\x{0342}\x{0345}",
-'8140' => "\x{1FCC}",
-'8146' => "\x{0399}\x{0308}\x{0300}",
-'8147' => "\x{0399}\x{0308}\x{0301}",
-'8150' => "\x{0399}\x{0342}",
-'8151' => "\x{0399}\x{0308}\x{0342}",
-'8162' => "\x{03A5}\x{0308}\x{0300}",
-'8163' => "\x{03A5}\x{0308}\x{0301}",
-'8164' => "\x{03A1}\x{0313}",
-'8166' => "\x{03A5}\x{0342}",
-'8167' => "\x{03A5}\x{0308}\x{0342}",
-'8178' => "\x{1FFA}\x{0345}",
-'8179' => "\x{1FFC}",
-'8180' => "\x{038F}\x{0345}",
-'8182' => "\x{03A9}\x{0342}",
-'8183' => "\x{03A9}\x{0342}\x{0345}",
-'8188' => "\x{1FFC}",
-'64256' => "\x{0046}\x{0066}",
-'64257' => "\x{0046}\x{0069}",
-'64258' => "\x{0046}\x{006C}",
-'64259' => "\x{0046}\x{0066}\x{0069}",
-'64260' => "\x{0046}\x{0066}\x{006C}",
-'64261' => "\x{0053}\x{0074}",
-'64262' => "\x{0053}\x{0074}",
-'64275' => "\x{0544}\x{0576}",
-'64276' => "\x{0544}\x{0565}",
-'64277' => "\x{0544}\x{056B}",
-'64278' => "\x{054E}\x{0576}",
-'64279' => "\x{0544}\x{056D}",
+'00DF' => "\x{0053}\x{0073}",
+'0149' => "\x{02BC}\x{004E}",
+'01F0' => "\x{004A}\x{030C}",
+'0390' => "\x{0399}\x{0308}\x{0301}",
+'03B0' => "\x{03A5}\x{0308}\x{0301}",
+'0587' => "\x{0535}\x{0582}",
+'1E96' => "\x{0048}\x{0331}",
+'1E97' => "\x{0054}\x{0308}",
+'1E98' => "\x{0057}\x{030A}",
+'1E99' => "\x{0059}\x{030A}",
+'1E9A' => "\x{0041}\x{02BE}",
+'1F50' => "\x{03A5}\x{0313}",
+'1F52' => "\x{03A5}\x{0313}\x{0300}",
+'1F54' => "\x{03A5}\x{0313}\x{0301}",
+'1F56' => "\x{03A5}\x{0313}\x{0342}",
+'1F80' => "\x{1F88}",
+'1F81' => "\x{1F89}",
+'1F82' => "\x{1F8A}",
+'1F83' => "\x{1F8B}",
+'1F84' => "\x{1F8C}",
+'1F85' => "\x{1F8D}",
+'1F86' => "\x{1F8E}",
+'1F87' => "\x{1F8F}",
+'1F88' => "\x{1F88}",
+'1F89' => "\x{1F89}",
+'1F8A' => "\x{1F8A}",
+'1F8B' => "\x{1F8B}",
+'1F8C' => "\x{1F8C}",
+'1F8D' => "\x{1F8D}",
+'1F8E' => "\x{1F8E}",
+'1F8F' => "\x{1F8F}",
+'1F90' => "\x{1F98}",
+'1F91' => "\x{1F99}",
+'1F92' => "\x{1F9A}",
+'1F93' => "\x{1F9B}",
+'1F94' => "\x{1F9C}",
+'1F95' => "\x{1F9D}",
+'1F96' => "\x{1F9E}",
+'1F97' => "\x{1F9F}",
+'1F98' => "\x{1F98}",
+'1F99' => "\x{1F99}",
+'1F9A' => "\x{1F9A}",
+'1F9B' => "\x{1F9B}",
+'1F9C' => "\x{1F9C}",
+'1F9D' => "\x{1F9D}",
+'1F9E' => "\x{1F9E}",
+'1F9F' => "\x{1F9F}",
+'1FA0' => "\x{1FA8}",
+'1FA1' => "\x{1FA9}",
+'1FA2' => "\x{1FAA}",
+'1FA3' => "\x{1FAB}",
+'1FA4' => "\x{1FAC}",
+'1FA5' => "\x{1FAD}",
+'1FA6' => "\x{1FAE}",
+'1FA7' => "\x{1FAF}",
+'1FA8' => "\x{1FA8}",
+'1FA9' => "\x{1FA9}",
+'1FAA' => "\x{1FAA}",
+'1FAB' => "\x{1FAB}",
+'1FAC' => "\x{1FAC}",
+'1FAD' => "\x{1FAD}",
+'1FAE' => "\x{1FAE}",
+'1FAF' => "\x{1FAF}",
+'1FB2' => "\x{1FBA}\x{0345}",
+'1FB3' => "\x{1FBC}",
+'1FB4' => "\x{0386}\x{0345}",
+'1FB6' => "\x{0391}\x{0342}",
+'1FB7' => "\x{0391}\x{0342}\x{0345}",
+'1FBC' => "\x{1FBC}",
+'1FC2' => "\x{1FCA}\x{0345}",
+'1FC3' => "\x{1FCC}",
+'1FC4' => "\x{0389}\x{0345}",
+'1FC6' => "\x{0397}\x{0342}",
+'1FC7' => "\x{0397}\x{0342}\x{0345}",
+'1FCC' => "\x{1FCC}",
+'1FD2' => "\x{0399}\x{0308}\x{0300}",
+'1FD3' => "\x{0399}\x{0308}\x{0301}",
+'1FD6' => "\x{0399}\x{0342}",
+'1FD7' => "\x{0399}\x{0308}\x{0342}",
+'1FE2' => "\x{03A5}\x{0308}\x{0300}",
+'1FE3' => "\x{03A5}\x{0308}\x{0301}",
+'1FE4' => "\x{03A1}\x{0313}",
+'1FE6' => "\x{03A5}\x{0342}",
+'1FE7' => "\x{03A5}\x{0308}\x{0342}",
+'1FF2' => "\x{1FFA}\x{0345}",
+'1FF3' => "\x{1FFC}",
+'1FF4' => "\x{038F}\x{0345}",
+'1FF6' => "\x{03A9}\x{0342}",
+'1FF7' => "\x{03A9}\x{0342}\x{0345}",
+'1FFC' => "\x{1FFC}",
+'FB00' => "\x{0046}\x{0066}",
+'FB01' => "\x{0046}\x{0069}",
+'FB02' => "\x{0046}\x{006C}",
+'FB03' => "\x{0046}\x{0066}\x{0069}",
+'FB04' => "\x{0046}\x{0066}\x{006C}",
+'FB05' => "\x{0053}\x{0074}",
+'FB06' => "\x{0053}\x{0074}",
+'FB13' => "\x{0544}\x{0576}",
+'FB14' => "\x{0544}\x{0565}",
+'FB15' => "\x{0544}\x{056B}",
+'FB16' => "\x{054E}\x{0576}",
+'FB17' => "\x{0544}\x{056D}",
 );
 
 return <<'END';
index a9c7a9f..3794290 100644 (file)
 # Any changes made here will be lost!
 
 %utf8::ToSpecUpper = (
-'223' => "\x{0053}\x{0053}",
-'329' => "\x{02BC}\x{004E}",
-'496' => "\x{004A}\x{030C}",
-'912' => "\x{0399}\x{0308}\x{0301}",
-'944' => "\x{03A5}\x{0308}\x{0301}",
-'1415' => "\x{0535}\x{0552}",
-'7830' => "\x{0048}\x{0331}",
-'7831' => "\x{0054}\x{0308}",
-'7832' => "\x{0057}\x{030A}",
-'7833' => "\x{0059}\x{030A}",
-'7834' => "\x{0041}\x{02BE}",
-'8016' => "\x{03A5}\x{0313}",
-'8018' => "\x{03A5}\x{0313}\x{0300}",
-'8020' => "\x{03A5}\x{0313}\x{0301}",
-'8022' => "\x{03A5}\x{0313}\x{0342}",
-'8064' => "\x{1F08}\x{0399}",
-'8065' => "\x{1F09}\x{0399}",
-'8066' => "\x{1F0A}\x{0399}",
-'8067' => "\x{1F0B}\x{0399}",
-'8068' => "\x{1F0C}\x{0399}",
-'8069' => "\x{1F0D}\x{0399}",
-'8070' => "\x{1F0E}\x{0399}",
-'8071' => "\x{1F0F}\x{0399}",
-'8072' => "\x{1F08}\x{0399}",
-'8073' => "\x{1F09}\x{0399}",
-'8074' => "\x{1F0A}\x{0399}",
-'8075' => "\x{1F0B}\x{0399}",
-'8076' => "\x{1F0C}\x{0399}",
-'8077' => "\x{1F0D}\x{0399}",
-'8078' => "\x{1F0E}\x{0399}",
-'8079' => "\x{1F0F}\x{0399}",
-'8080' => "\x{1F28}\x{0399}",
-'8081' => "\x{1F29}\x{0399}",
-'8082' => "\x{1F2A}\x{0399}",
-'8083' => "\x{1F2B}\x{0399}",
-'8084' => "\x{1F2C}\x{0399}",
-'8085' => "\x{1F2D}\x{0399}",
-'8086' => "\x{1F2E}\x{0399}",
-'8087' => "\x{1F2F}\x{0399}",
-'8088' => "\x{1F28}\x{0399}",
-'8089' => "\x{1F29}\x{0399}",
-'8090' => "\x{1F2A}\x{0399}",
-'8091' => "\x{1F2B}\x{0399}",
-'8092' => "\x{1F2C}\x{0399}",
-'8093' => "\x{1F2D}\x{0399}",
-'8094' => "\x{1F2E}\x{0399}",
-'8095' => "\x{1F2F}\x{0399}",
-'8096' => "\x{1F68}\x{0399}",
-'8097' => "\x{1F69}\x{0399}",
-'8098' => "\x{1F6A}\x{0399}",
-'8099' => "\x{1F6B}\x{0399}",
-'8100' => "\x{1F6C}\x{0399}",
-'8101' => "\x{1F6D}\x{0399}",
-'8102' => "\x{1F6E}\x{0399}",
-'8103' => "\x{1F6F}\x{0399}",
-'8104' => "\x{1F68}\x{0399}",
-'8105' => "\x{1F69}\x{0399}",
-'8106' => "\x{1F6A}\x{0399}",
-'8107' => "\x{1F6B}\x{0399}",
-'8108' => "\x{1F6C}\x{0399}",
-'8109' => "\x{1F6D}\x{0399}",
-'8110' => "\x{1F6E}\x{0399}",
-'8111' => "\x{1F6F}\x{0399}",
-'8114' => "\x{1FBA}\x{0399}",
-'8115' => "\x{0391}\x{0399}",
-'8116' => "\x{0386}\x{0399}",
-'8118' => "\x{0391}\x{0342}",
-'8119' => "\x{0391}\x{0342}\x{0399}",
-'8124' => "\x{0391}\x{0399}",
-'8130' => "\x{1FCA}\x{0399}",
-'8131' => "\x{0397}\x{0399}",
-'8132' => "\x{0389}\x{0399}",
-'8134' => "\x{0397}\x{0342}",
-'8135' => "\x{0397}\x{0342}\x{0399}",
-'8140' => "\x{0397}\x{0399}",
-'8146' => "\x{0399}\x{0308}\x{0300}",
-'8147' => "\x{0399}\x{0308}\x{0301}",
-'8150' => "\x{0399}\x{0342}",
-'8151' => "\x{0399}\x{0308}\x{0342}",
-'8162' => "\x{03A5}\x{0308}\x{0300}",
-'8163' => "\x{03A5}\x{0308}\x{0301}",
-'8164' => "\x{03A1}\x{0313}",
-'8166' => "\x{03A5}\x{0342}",
-'8167' => "\x{03A5}\x{0308}\x{0342}",
-'8178' => "\x{1FFA}\x{0399}",
-'8179' => "\x{03A9}\x{0399}",
-'8180' => "\x{038F}\x{0399}",
-'8182' => "\x{03A9}\x{0342}",
-'8183' => "\x{03A9}\x{0342}\x{0399}",
-'8188' => "\x{03A9}\x{0399}",
-'64256' => "\x{0046}\x{0046}",
-'64257' => "\x{0046}\x{0049}",
-'64258' => "\x{0046}\x{004C}",
-'64259' => "\x{0046}\x{0046}\x{0049}",
-'64260' => "\x{0046}\x{0046}\x{004C}",
-'64261' => "\x{0053}\x{0054}",
-'64262' => "\x{0053}\x{0054}",
-'64275' => "\x{0544}\x{0546}",
-'64276' => "\x{0544}\x{0535}",
-'64277' => "\x{0544}\x{053B}",
-'64278' => "\x{054E}\x{0546}",
-'64279' => "\x{0544}\x{053D}",
+'00DF' => "\x{0053}\x{0053}",
+'0149' => "\x{02BC}\x{004E}",
+'01F0' => "\x{004A}\x{030C}",
+'0390' => "\x{0399}\x{0308}\x{0301}",
+'03B0' => "\x{03A5}\x{0308}\x{0301}",
+'0587' => "\x{0535}\x{0552}",
+'1E96' => "\x{0048}\x{0331}",
+'1E97' => "\x{0054}\x{0308}",
+'1E98' => "\x{0057}\x{030A}",
+'1E99' => "\x{0059}\x{030A}",
+'1E9A' => "\x{0041}\x{02BE}",
+'1F50' => "\x{03A5}\x{0313}",
+'1F52' => "\x{03A5}\x{0313}\x{0300}",
+'1F54' => "\x{03A5}\x{0313}\x{0301}",
+'1F56' => "\x{03A5}\x{0313}\x{0342}",
+'1F80' => "\x{1F08}\x{0399}",
+'1F81' => "\x{1F09}\x{0399}",
+'1F82' => "\x{1F0A}\x{0399}",
+'1F83' => "\x{1F0B}\x{0399}",
+'1F84' => "\x{1F0C}\x{0399}",
+'1F85' => "\x{1F0D}\x{0399}",
+'1F86' => "\x{1F0E}\x{0399}",
+'1F87' => "\x{1F0F}\x{0399}",
+'1F88' => "\x{1F08}\x{0399}",
+'1F89' => "\x{1F09}\x{0399}",
+'1F8A' => "\x{1F0A}\x{0399}",
+'1F8B' => "\x{1F0B}\x{0399}",
+'1F8C' => "\x{1F0C}\x{0399}",
+'1F8D' => "\x{1F0D}\x{0399}",
+'1F8E' => "\x{1F0E}\x{0399}",
+'1F8F' => "\x{1F0F}\x{0399}",
+'1F90' => "\x{1F28}\x{0399}",
+'1F91' => "\x{1F29}\x{0399}",
+'1F92' => "\x{1F2A}\x{0399}",
+'1F93' => "\x{1F2B}\x{0399}",
+'1F94' => "\x{1F2C}\x{0399}",
+'1F95' => "\x{1F2D}\x{0399}",
+'1F96' => "\x{1F2E}\x{0399}",
+'1F97' => "\x{1F2F}\x{0399}",
+'1F98' => "\x{1F28}\x{0399}",
+'1F99' => "\x{1F29}\x{0399}",
+'1F9A' => "\x{1F2A}\x{0399}",
+'1F9B' => "\x{1F2B}\x{0399}",
+'1F9C' => "\x{1F2C}\x{0399}",
+'1F9D' => "\x{1F2D}\x{0399}",
+'1F9E' => "\x{1F2E}\x{0399}",
+'1F9F' => "\x{1F2F}\x{0399}",
+'1FA0' => "\x{1F68}\x{0399}",
+'1FA1' => "\x{1F69}\x{0399}",
+'1FA2' => "\x{1F6A}\x{0399}",
+'1FA3' => "\x{1F6B}\x{0399}",
+'1FA4' => "\x{1F6C}\x{0399}",
+'1FA5' => "\x{1F6D}\x{0399}",
+'1FA6' => "\x{1F6E}\x{0399}",
+'1FA7' => "\x{1F6F}\x{0399}",
+'1FA8' => "\x{1F68}\x{0399}",
+'1FA9' => "\x{1F69}\x{0399}",
+'1FAA' => "\x{1F6A}\x{0399}",
+'1FAB' => "\x{1F6B}\x{0399}",
+'1FAC' => "\x{1F6C}\x{0399}",
+'1FAD' => "\x{1F6D}\x{0399}",
+'1FAE' => "\x{1F6E}\x{0399}",
+'1FAF' => "\x{1F6F}\x{0399}",
+'1FB2' => "\x{1FBA}\x{0399}",
+'1FB3' => "\x{0391}\x{0399}",
+'1FB4' => "\x{0386}\x{0399}",
+'1FB6' => "\x{0391}\x{0342}",
+'1FB7' => "\x{0391}\x{0342}\x{0399}",
+'1FBC' => "\x{0391}\x{0399}",
+'1FC2' => "\x{1FCA}\x{0399}",
+'1FC3' => "\x{0397}\x{0399}",
+'1FC4' => "\x{0389}\x{0399}",
+'1FC6' => "\x{0397}\x{0342}",
+'1FC7' => "\x{0397}\x{0342}\x{0399}",
+'1FCC' => "\x{0397}\x{0399}",
+'1FD2' => "\x{0399}\x{0308}\x{0300}",
+'1FD3' => "\x{0399}\x{0308}\x{0301}",
+'1FD6' => "\x{0399}\x{0342}",
+'1FD7' => "\x{0399}\x{0308}\x{0342}",
+'1FE2' => "\x{03A5}\x{0308}\x{0300}",
+'1FE3' => "\x{03A5}\x{0308}\x{0301}",
+'1FE4' => "\x{03A1}\x{0313}",
+'1FE6' => "\x{03A5}\x{0342}",
+'1FE7' => "\x{03A5}\x{0308}\x{0342}",
+'1FF2' => "\x{1FFA}\x{0399}",
+'1FF3' => "\x{03A9}\x{0399}",
+'1FF4' => "\x{038F}\x{0399}",
+'1FF6' => "\x{03A9}\x{0342}",
+'1FF7' => "\x{03A9}\x{0342}\x{0399}",
+'1FFC' => "\x{03A9}\x{0399}",
+'FB00' => "\x{0046}\x{0046}",
+'FB01' => "\x{0046}\x{0049}",
+'FB02' => "\x{0046}\x{004C}",
+'FB03' => "\x{0046}\x{0046}\x{0049}",
+'FB04' => "\x{0046}\x{0046}\x{004C}",
+'FB05' => "\x{0053}\x{0054}",
+'FB06' => "\x{0053}\x{0054}",
+'FB13' => "\x{0544}\x{0546}",
+'FB14' => "\x{0544}\x{0535}",
+'FB15' => "\x{0544}\x{053B}",
+'FB16' => "\x{054E}\x{0546}",
+'FB17' => "\x{0544}\x{053D}",
 );
 
 return <<'END';
index ea04974..66027a5 100644 (file)
@@ -759,7 +759,7 @@ EOT
            my ($ix, $code, $to) = @$prop;
            my $tostr =
                join "", map { sprintf "\\x{%s}", $_ } split ' ', $to;
-           print $Case qq['$ix' => "$tostr",\n];
+           printf $Case qq['%04X' => "$tostr",\n], $ix;
        }
        print $Case <<EOT;
 );
@@ -811,7 +811,7 @@ EOT
         for my $code (sort { $a <=> $b } keys %Fold) {
            my $foldstr =
                join "", map { sprintf "\\x{%s}", $_ } split ' ', $Fold{$code};
-           print $Fold qq['$code' => "$foldstr",\n];
+           printf $Fold qq['%04X' => "$foldstr",\n], $code;
        }
        print $Fold <<EOT;
 );
diff --git a/utf8.c b/utf8.c
index 4a3fe1d..ac90a38 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -1198,7 +1198,7 @@ Perl_to_utf8_case(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp,char *normal
         uv = utf8_to_uvchr(p, 0);
 
         if ((hv    = get_hv(special, FALSE)) &&
-            (keysv = sv_2mortal(Perl_newSVpvf(aTHX_ "%"UVuf, uv))) &&
+            (keysv = sv_2mortal(Perl_newSVpvf(aTHX_ "%04"UVXf, uv))) &&
             (he    = hv_fetch_ent(hv, keysv, FALSE, 0))) {
              SV *val = HeVAL(he);
              char *s = SvPV(val, *lenp);