summaryrefslogtreecommitdiff
path: root/cpan/Unicode-Collate
diff options
context:
space:
mode:
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>2017-11-13 13:45:36 +0000
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>2017-11-13 15:16:12 +0000
commiteaecde9a0a4918a42c66b153f8da8230a67b3ae5 (patch)
tree4042a66a8778b1ccc2a1495d9ae5fb03df254561 /cpan/Unicode-Collate
parenta6509d2bd0745438635bad41675dbe33268ebf4f (diff)
downloadperl-eaecde9a0a4918a42c66b153f8da8230a67b3ae5.tar.gz
Update Unicode-Collate to CPAN version 1.23
[DELTA] 1.23 Mon Nov 13 19:10:28 2017 - Now UCA_Version 36 (for Unicode 10.0.0) is supported. * But the default UCA_Version is still 34. - added nushu.t in t. 1.22 Sat Nov 11 10:53:35 2017 - internal: someone suggests using 'exists' for checking the truth of $collator->{mapping}{$variable} and $collator->{maxlength}{$variable}, where $variable may stand for codepoints whose mapping is not defined; though such a problem was not reproduced on my environment.
Diffstat (limited to 'cpan/Unicode-Collate')
-rw-r--r--cpan/Unicode-Collate/Collate.pm43
-rw-r--r--cpan/Unicode-Collate/Collate.xs62
-rw-r--r--cpan/Unicode-Collate/Collate/CJK/Big5.pm2
-rw-r--r--cpan/Unicode-Collate/Collate/CJK/GB2312.pm2
-rw-r--r--cpan/Unicode-Collate/Collate/CJK/JISX0208.pm2
-rw-r--r--cpan/Unicode-Collate/Collate/CJK/Korean.pm2
-rw-r--r--cpan/Unicode-Collate/Collate/CJK/Pinyin.pm2
-rw-r--r--cpan/Unicode-Collate/Collate/CJK/Stroke.pm2
-rw-r--r--cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale.pm2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/af.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ar.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/as.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/az.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/be.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/bn.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ca.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/cs.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/cy.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/da.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/de_at_ph.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/de_phone.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/dsb.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ee.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/eo.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/es.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/es_trad.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/et.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/fa.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/fi.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/fi_phone.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/fil.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/fo.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/fr_ca.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/gu.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ha.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/haw.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/he.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/hi.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/hr.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/hu.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/hy.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ig.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/is.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ja.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/kk.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/kl.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/kn.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ko.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/kok.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/lkt.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ln.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/lt.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/lv.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/mk.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ml.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/mr.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/mt.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/nb.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/nn.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/nso.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/om.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/or.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/pa.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/pl.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ro.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/sa.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/se.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/si.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/si_dict.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/sk.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/sl.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/sq.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/sr.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/sv.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/sv_refo.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ta.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/te.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/th.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/tn.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/to.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/tr.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ug_cyrl.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/uk.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ur.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/vi.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/vo.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/wae.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/wo.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/yo.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/zh.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/zh_big5.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/zh_gb.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/zh_pin.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/zh_strk.pl2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl2
-rw-r--r--cpan/Unicode-Collate/t/cjkrange.t23
-rw-r--r--cpan/Unicode-Collate/t/compatui.t4
-rw-r--r--cpan/Unicode-Collate/t/hangtype.t4
-rw-r--r--cpan/Unicode-Collate/t/illegal.t4
-rw-r--r--cpan/Unicode-Collate/t/loc_es.t2
-rw-r--r--cpan/Unicode-Collate/t/loc_estr.t2
-rw-r--r--cpan/Unicode-Collate/t/nushu.t73
-rw-r--r--cpan/Unicode-Collate/t/overcjk0.t19
-rw-r--r--cpan/Unicode-Collate/t/overcjk1.t14
-rw-r--r--cpan/Unicode-Collate/t/tangut.t4
-rw-r--r--cpan/Unicode-Collate/t/view.t13
107 files changed, 303 insertions, 152 deletions
diff --git a/cpan/Unicode-Collate/Collate.pm b/cpan/Unicode-Collate/Collate.pm
index e61ffccbf7..e572e7cb22 100644
--- a/cpan/Unicode-Collate/Collate.pm
+++ b/cpan/Unicode-Collate/Collate.pm
@@ -17,7 +17,7 @@ use File::Spec;
no warnings 'utf8';
-our $VERSION = '1.21';
+our $VERSION = '1.23';
our $PACKAGE = __PACKAGE__;
### begin XS only ###
@@ -191,6 +191,7 @@ my %DerivCode = (
30 => \&_derivCE_24, # 30 == 24
32 => \&_derivCE_32,
34 => \&_derivCE_34,
+ 36 => \&_derivCE_36,
);
sub checkCollator {
@@ -440,13 +441,17 @@ sub parseEntry
# if and only if "all" CEs are [.0000.0000.0000].
}
+ # mapping: be an array ref or not exists (any false value is disallowed)
$self->{mapping}{$entry} = $is_L3_ignorable ? [] : \@key;
+ # maxlength: be more than 1 or not exists (any false value is disallowed)
if (@uv > 1) {
if (!$self->{maxlength}{$uv[0]} || $self->{maxlength}{$uv[0]} < @uv) {
$self->{maxlength}{$uv[0]} = @uv;
}
}
+
+ # contraction: be 1 or not exists (any false value is disallowed)
while (@uv > 2) {
pop @uv;
my $fake_entry = join(CODE_SEP, @uv); # in JCPS
@@ -515,7 +520,7 @@ sub splitEnt
if ($vers <= 20 && _isIllegal($src[$i])) {
$src[$i] = undef;
} elsif ($ver9) {
- $src[$i] = undef if $map->{ $src[$i] }
+ $src[$i] = undef if exists $map->{ $src[$i] }
? @{ $map->{ $src[$i] } } == 0
: $uXS && _ignorable_simple($src[$i]); ### XS only
}
@@ -535,7 +540,7 @@ sub splitEnt
my $i_orig = $i;
# find contraction
- if ($max->{$jcps}) {
+ if (exists $max->{$jcps}) {
my $temp_jcps = $jcps;
my $jcpsLen = 1;
my $maxLen = $max->{$jcps};
@@ -544,7 +549,7 @@ sub splitEnt
next if ! defined $src[$p];
$temp_jcps .= CODE_SEP . $src[$p];
$jcpsLen++;
- if ($map->{$temp_jcps}) {
+ if (exists $map->{$temp_jcps}) {
$jcps = $temp_jcps;
$i = $p;
}
@@ -571,7 +576,7 @@ sub splitEnt
last unless $curCC;
my $tail = CODE_SEP . $src[$p];
- if ($preCC != $curCC && $map->{$jcps.$tail}) {
+ if ($preCC != $curCC && exists $map->{$jcps.$tail}) {
$jcps .= $tail;
push @out, $p;
} else {
@@ -580,8 +585,9 @@ sub splitEnt
next if !$long;
- if ($preCC_uc != $curCC && ($map->{$jcps_uc.$tail} ||
- $cont->{$jcps_uc.$tail})) {
+ if ($preCC_uc != $curCC &&
+ (exists $map->{$jcps_uc.$tail} ||
+ exists $cont->{$jcps_uc.$tail})) {
$jcps_uc .= $tail;
push @out_uc, $p;
} else {
@@ -589,7 +595,7 @@ sub splitEnt
}
}
- if (@out_uc && $map->{$jcps_uc}) {
+ if (@out_uc && exists $map->{$jcps_uc}) {
$jcps = $jcps_uc;
$src[$_] = undef for @out_uc;
} else {
@@ -599,7 +605,7 @@ sub splitEnt
}
# skip completely ignorable
- if ($map->{$jcps} ? @{ $map->{$jcps} } == 0 :
+ if (exists $map->{$jcps} ? @{ $map->{$jcps} } == 0 :
$uXS && $jcps !~ /;/ && _ignorable_simple($jcps)) { ### XS only
if ($wLen && @buf) {
$buf[-1][2] = $i + 1;
@@ -648,7 +654,7 @@ sub getWt
$u = 0xFFFD if $u !~ /;/ && 0x10FFFF < $u && !$out;
my @ce;
- if ($map->{$u}) {
+ if (exists $map->{$u}) {
@ce = @{ $map->{$u} }; # $u may be a contraction
### begin XS only ###
} elsif ($uXS && _exists_simple($u)) {
@@ -666,27 +672,27 @@ sub getWt
if (@decH == 2) {
my $contract = join(CODE_SEP, @decH);
- @decH = ($contract) if $map->{$contract};
+ @decH = ($contract) if exists $map->{$contract};
} else { # must be <@decH == 3>
- if ($max->{$decH[0]}) {
+ if (exists $max->{$decH[0]}) {
my $contract = join(CODE_SEP, @decH);
- if ($map->{$contract}) {
+ if (exists $map->{$contract}) {
@decH = ($contract);
} else {
$contract = join(CODE_SEP, @decH[0,1]);
- $map->{$contract} and @decH = ($contract, $decH[2]);
+ exists $map->{$contract} and @decH = ($contract, $decH[2]);
}
# even if V's ignorable, LT contraction is not supported.
# If such a situation were required, NFD should be used.
}
- if (@decH == 3 && $max->{$decH[1]}) {
+ if (@decH == 3 && exists $max->{$decH[1]}) {
my $contract = join(CODE_SEP, @decH[1,2]);
- $map->{$contract} and @decH = ($decH[0], $contract);
+ exists $map->{$contract} and @decH = ($decH[0], $contract);
}
}
@ce = map({
- $map->{$_} ? @{ $map->{$_} } :
+ exists $map->{$_} ? @{ $map->{$_} } :
$uXS && _exists_simple($_) ? _fetch_simple($_) : ### XS only
$der->($_);
} @decH);
@@ -1117,6 +1123,7 @@ The following revisions are supported. The default is 34.
30 7.0.0 7.0.0 (7.0.0)
32 8.0.0 8.0.0 (8.0.0)
34 9.0.0 9.0.0 (9.0.0)
+ 36 10.0.0 10.0.0(10.0.0)
* See below for C<long_contraction> with C<UCA_Version> 22 and 24.
@@ -1457,12 +1464,14 @@ those in the CJK Unified Ideographs Extension A etc.
U+4E00..U+9FCB if UCA_Version is 20 or 22.
U+4E00..U+9FCC if UCA_Version is 24 to 30.
U+4E00..U+9FD5 if UCA_Version is 32 or 34.
+ U+4E00..U+9FEA if UCA_Version is 36.
In the CJK Unified Ideographs Extension blocks:
Ext.A (U+3400..U+4DB5) and Ext.B (U+20000..U+2A6D6) in any UCA_Version.
Ext.C (U+2A700..U+2B734) if UCA_Version is 20 or later.
Ext.D (U+2B740..U+2B81D) if UCA_Version is 22 or later.
Ext.E (U+2B820..U+2CEA1) if UCA_Version is 32 or later.
+ Ext.F (U+2CEB0..U+2EBE0) if UCA_Version is 36.
Through C<overrideCJK>, ordering of CJK unified ideographs (including
extensions) can be overridden.
diff --git a/cpan/Unicode-Collate/Collate.xs b/cpan/Unicode-Collate/Collate.xs
index 0838f45dc8..ac57b47971 100644
--- a/cpan/Unicode-Collate/Collate.xs
+++ b/cpan/Unicode-Collate/Collate.xs
@@ -52,11 +52,13 @@
#define CJK_UidIni (0x4E00)
#define CJK_UidFin (0x9FA5)
-#define CJK_UidF41 (0x9FBB)
-#define CJK_UidF51 (0x9FC3)
-#define CJK_UidF52 (0x9FCB)
-#define CJK_UidF61 (0x9FCC)
-#define CJK_UidF80 (0x9FD5)
+#define CJK_UidF41 (0x9FBB) /* Unicode 4.1 */
+#define CJK_UidF51 (0x9FC3) /* Unicode 5.1 */
+#define CJK_UidF52 (0x9FCB) /* Unicode 5.2 */
+#define CJK_UidF61 (0x9FCC) /* Unicode 6.1 */
+#define CJK_UidF80 (0x9FD5) /* Unicode 8.0 */
+#define CJK_UidF100 (0x9FEA) /* Unicode 10.0 */
+
#define CJK_ExtAIni (0x3400) /* Unicode 3.0 */
#define CJK_ExtAFin (0x4DB5) /* Unicode 3.0 */
#define CJK_ExtBIni (0x20000) /* Unicode 3.1 */
@@ -67,6 +69,8 @@
#define CJK_ExtDFin (0x2B81D) /* Unicode 6.0 */
#define CJK_ExtEIni (0x2B820) /* Unicode 8.0 */
#define CJK_ExtEFin (0x2CEA1) /* Unicode 8.0 */
+#define CJK_ExtFIni (0x2CEB0) /* Unicode 10.0 */
+#define CJK_ExtFFin (0x2EBE0) /* Unicode 10.0 */
#define CJK_CompIni (0xFA0E)
#define CJK_CompFin (0xFA29)
@@ -78,6 +82,8 @@ static const STDCHAR UnifiedCompat[] = {
#define TangIdeoFin (0x187EC) /* Unicode 9.0 */
#define TangCompIni (0x18800) /* Unicode 9.0 */
#define TangCompFin (0x18AF2) /* Unicode 9.0 */
+#define NushuIni (0x1B170) /* Unicode 10.0 */
+#define NushuFin (0x1B2FB) /* Unicode 10.0 */
#define codeRange(bcode, ecode) ((bcode) <= code && code <= (ecode))
@@ -276,28 +282,35 @@ _derivCE_9 (code)
_derivCE_24 = 5
_derivCE_32 = 6
_derivCE_34 = 7
+ _derivCE_36 = 8
PREINIT:
UV base, aaaa, bbbb;
U8 a[VCE_Length + 1] = "\x00\x00\x00\x00\x00\x00\x00\x00\x00";
U8 b[VCE_Length + 1] = "\x00\x00\x00\x00\x00\x00\x00\x00\x00";
- bool basic_unified = 0, tangut = 0;
+ bool basic_unified = 0, tangut = 0, nushu = 0;
PPCODE:
if (codeRange(CJK_UidIni, CJK_CompFin)) {
if (codeRange(CJK_CompIni, CJK_CompFin))
basic_unified = (bool)UnifiedCompat[code - CJK_CompIni];
else
- basic_unified = (ix >= 6 ? (code <= CJK_UidF80) :
+ basic_unified = (ix >= 8 ? (code <= CJK_UidF100) :
+ ix >= 6 ? (code <= CJK_UidF80) :
ix == 5 ? (code <= CJK_UidF61) :
ix >= 3 ? (code <= CJK_UidF52) :
ix == 2 ? (code <= CJK_UidF51) :
ix == 1 ? (code <= CJK_UidF41) :
(code <= CJK_UidFin));
- } else if (ix >= 7) {
- tangut = (codeRange(TangIdeoIni, TangIdeoFin) ||
- codeRange(TangCompIni, TangCompFin));
+ } else {
+ if (ix >= 7)
+ tangut = (codeRange(TangIdeoIni, TangIdeoFin) ||
+ codeRange(TangCompIni, TangCompFin));
+ if (ix >= 8)
+ nushu = (codeRange(NushuIni, NushuFin));
}
base = tangut
? 0xFB00 :
+ nushu
+ ? 0xFB01 :
basic_unified
? 0xFB40 : /* CJK */
((codeRange(CJK_ExtAIni, CJK_ExtAFin))
@@ -308,11 +321,14 @@ _derivCE_9 (code)
||
(ix >= 4 && codeRange(CJK_ExtDIni, CJK_ExtDFin))
||
- (ix >= 6 && codeRange(CJK_ExtEIni, CJK_ExtEFin)))
+ (ix >= 6 && codeRange(CJK_ExtEIni, CJK_ExtEFin))
+ ||
+ (ix >= 8 && codeRange(CJK_ExtFIni, CJK_ExtFFin)))
? 0xFB80 /* CJK ext. */
: 0xFBC0; /* others */
- aaaa = tangut ? base : base + (code >> 15);
- bbbb = (tangut ? (code - TangIdeoIni) : (code & 0x7FFF)) | 0x8000;
+ aaaa = tangut || nushu ? base : base + (code >> 15);
+ bbbb = (tangut ? (code - TangIdeoIni) :
+ nushu ? (code - NushuIni) : (code & 0x7FFF)) | 0x8000;
a[1] = (U8)(aaaa >> 8);
a[2] = (U8)(aaaa & 0xFF);
b[1] = (U8)(bbbb >> 8);
@@ -373,7 +389,8 @@ _isUIdeo (code, uca_vers)
if (codeRange(CJK_CompIni, CJK_CompFin))
basic_unified = (bool)UnifiedCompat[code - CJK_CompIni];
else
- basic_unified = (uca_vers >= 32 ? (code <= CJK_UidF80) :
+ basic_unified = (uca_vers >= 36 ? (code <= CJK_UidF100) :
+ uca_vers >= 32 ? (code <= CJK_UidF80) :
uca_vers >= 24 ? (code <= CJK_UidF61) :
uca_vers >= 20 ? (code <= CJK_UidF52) :
uca_vers >= 18 ? (code <= CJK_UidF51) :
@@ -392,6 +409,8 @@ _isUIdeo (code, uca_vers)
(uca_vers >= 22 && codeRange(CJK_ExtDIni, CJK_ExtDFin))
||
(uca_vers >= 32 && codeRange(CJK_ExtEIni, CJK_ExtEFin))
+ ||
+ (uca_vers >= 36 && codeRange(CJK_ExtFIni, CJK_ExtFFin))
);
OUTPUT:
RETVAL
@@ -560,6 +579,7 @@ varCE (self, vce)
U8 *a, *v, *d;
STRLEN alen, vlen;
bool ig_l2;
+ IV uca_vers;
UV totwt;
CODE:
if (SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV)
@@ -604,8 +624,18 @@ varCE (self, vce)
d[7] = d[1]; /* wt level 1 to 4 */
d[8] = d[2];
} else {
- d[7] = (U8)(Shift4Wt >> 8);
- d[8] = (U8)(Shift4Wt & 0xFF);
+ svp = hv_fetch(selfHV, "UCA_Version", 11, FALSE);
+ if (!svp)
+ croak("Panic: no $self->{UCA_Version} in varCE");
+ uca_vers = SvIV(*svp);
+
+ /* completely ignorable or the second derived CE */
+ if (uca_vers >= 36 && d[3] + d[4] + d[5] + d[6] == 0) {
+ d[7] = d[8] = '\0';
+ } else {
+ d[7] = (U8)(Shift4Wt >> 8);
+ d[8] = (U8)(Shift4Wt & 0xFF);
+ }
}
} else { /* shift-trimmed or completely ignorable */
d[7] = d[8] = '\0';
diff --git a/cpan/Unicode-Collate/Collate/CJK/Big5.pm b/cpan/Unicode-Collate/Collate/CJK/Big5.pm
index e430dbac3e..2fd7ac16c1 100644
--- a/cpan/Unicode-Collate/Collate/CJK/Big5.pm
+++ b/cpan/Unicode-Collate/Collate/CJK/Big5.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.21';
+our $VERSION = '1.23';
my %u2p;
my $wt = 0x8000;
diff --git a/cpan/Unicode-Collate/Collate/CJK/GB2312.pm b/cpan/Unicode-Collate/Collate/CJK/GB2312.pm
index 094bb550ee..6b593c1d41 100644
--- a/cpan/Unicode-Collate/Collate/CJK/GB2312.pm
+++ b/cpan/Unicode-Collate/Collate/CJK/GB2312.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.21';
+our $VERSION = '1.23';
my %u2p;
my $wt = 0x8000;
diff --git a/cpan/Unicode-Collate/Collate/CJK/JISX0208.pm b/cpan/Unicode-Collate/Collate/CJK/JISX0208.pm
index d4624bdeea..df9c38cd38 100644
--- a/cpan/Unicode-Collate/Collate/CJK/JISX0208.pm
+++ b/cpan/Unicode-Collate/Collate/CJK/JISX0208.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.21';
+our $VERSION = '1.23';
my %u2p;
my $wt = 0x8000;
diff --git a/cpan/Unicode-Collate/Collate/CJK/Korean.pm b/cpan/Unicode-Collate/Collate/CJK/Korean.pm
index 7d2d52affe..7e69d0cd83 100644
--- a/cpan/Unicode-Collate/Collate/CJK/Korean.pm
+++ b/cpan/Unicode-Collate/Collate/CJK/Korean.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.21';
+our $VERSION = '1.23';
my %jamo2prim = (
'1100', 0x3BF5, '1101', 0x3BF6, '1102', 0x3BF7, '1103', 0x3BF8,
diff --git a/cpan/Unicode-Collate/Collate/CJK/Pinyin.pm b/cpan/Unicode-Collate/Collate/CJK/Pinyin.pm
index 4f3a5db01b..75524af7d0 100644
--- a/cpan/Unicode-Collate/Collate/CJK/Pinyin.pm
+++ b/cpan/Unicode-Collate/Collate/CJK/Pinyin.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.21';
+our $VERSION = '1.23';
my %u2p;
my $wt = 0x8000;
diff --git a/cpan/Unicode-Collate/Collate/CJK/Stroke.pm b/cpan/Unicode-Collate/Collate/CJK/Stroke.pm
index e6ba88788e..ac74667369 100644
--- a/cpan/Unicode-Collate/Collate/CJK/Stroke.pm
+++ b/cpan/Unicode-Collate/Collate/CJK/Stroke.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.21';
+our $VERSION = '1.23';
my %u2p;
my $wt = 0x8000;
diff --git a/cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm b/cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm
index 2dbd97a560..e82b234c6e 100644
--- a/cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm
+++ b/cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.21';
+our $VERSION = '1.23';
my %u2p;
my $wt = 0x8000;
diff --git a/cpan/Unicode-Collate/Collate/Locale.pm b/cpan/Unicode-Collate/Collate/Locale.pm
index 3de45c3b49..0bde742b16 100644
--- a/cpan/Unicode-Collate/Collate/Locale.pm
+++ b/cpan/Unicode-Collate/Collate/Locale.pm
@@ -5,7 +5,7 @@ use warnings;
use Carp;
use base qw(Unicode::Collate);
-our $VERSION = '1.21';
+our $VERSION = '1.23';
my $PL_EXT = '.pl';
diff --git a/cpan/Unicode-Collate/Collate/Locale/af.pl b/cpan/Unicode-Collate/Collate/Locale/af.pl
index 7713a25201..88da28a952 100644
--- a/cpan/Unicode-Collate/Collate/Locale/af.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/af.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0149 ; [.1DB9.0020.0009] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
ENTRY
diff --git a/cpan/Unicode-Collate/Collate/Locale/ar.pl b/cpan/Unicode-Collate/Collate/Locale/ar.pl
index 6cf9e189e2..31bb2e574d 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ar.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ar.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0629 ; [.231D.0021.0002] # ARABIC LETTER TEH MARBUTA
FE94 ; [.231D.0021.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
diff --git a/cpan/Unicode-Collate/Collate/Locale/as.pl b/cpan/Unicode-Collate/Collate/Locale/as.pl
index 768779747a..ffcb2dc848 100644
--- a/cpan/Unicode-Collate/Collate/Locale/as.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/as.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0982 ; [.26CD.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
0981 ; [.26CD.0020.0002][.FFF2.0000.0000] # BENGALI SIGN CANDRABINDU
diff --git a/cpan/Unicode-Collate/Collate/Locale/az.pl b/cpan/Unicode-Collate/Collate/Locale/az.pl
index d8fecacf1e..ec68857993 100644
--- a/cpan/Unicode-Collate/Collate/Locale/az.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/az.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
# schwa doesn't require tailoring
entry => <<'ENTRY', # for DUCET v9.0.0
00E7 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
diff --git a/cpan/Unicode-Collate/Collate/Locale/be.pl b/cpan/Unicode-Collate/Collate/Locale/be.pl
index a64ba84ad9..872fa0047d 100644
--- a/cpan/Unicode-Collate/Collate/Locale/be.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/be.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0451 ; [.205B.0020.0002] # CYRILLIC SMALL LETTER IO
0435 0308 ; [.205B.0020.0002] # CYRILLIC SMALL LETTER IO
diff --git a/cpan/Unicode-Collate/Collate/Locale/bn.pl b/cpan/Unicode-Collate/Collate/Locale/bn.pl
index 51299688d0..2fd8eba702 100644
--- a/cpan/Unicode-Collate/Collate/Locale/bn.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/bn.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0982 ; [.26CD.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
0983 ; [.26CD.0020.0002][.FFF2.0000.0000] # BENGALI SIGN VISARGA
diff --git a/cpan/Unicode-Collate/Collate/Locale/ca.pl b/cpan/Unicode-Collate/Collate/Locale/ca.pl
index e5b69290c7..defe6b9ae4 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ca.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ca.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0063 0068 ; [.1C7B.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
0063 0048 ; [.1C7B.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
diff --git a/cpan/Unicode-Collate/Collate/Locale/cs.pl b/cpan/Unicode-Collate/Collate/Locale/cs.pl
index 04e6d20f29..17f4cc8b1c 100644
--- a/cpan/Unicode-Collate/Collate/Locale/cs.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/cs.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
010D ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/cpan/Unicode-Collate/Collate/Locale/cy.pl b/cpan/Unicode-Collate/Collate/Locale/cy.pl
index 0d36a63a40..67b4998cf5 100644
--- a/cpan/Unicode-Collate/Collate/Locale/cy.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/cy.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0063 0068 ; [.1C7B.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
0043 0068 ; [.1C7B.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
diff --git a/cpan/Unicode-Collate/Collate/Locale/da.pl b/cpan/Unicode-Collate/Collate/Locale/da.pl
index 028655871a..34f6cec6d0 100644
--- a/cpan/Unicode-Collate/Collate/Locale/da.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/da.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
upper_before_lower => 1,
entry => <<'ENTRY', # for DUCET v9.0.0
0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/cpan/Unicode-Collate/Collate/Locale/de_at_ph.pl b/cpan/Unicode-Collate/Collate/Locale/de_at_ph.pl
index f3fefdfd62..ccb7daa92e 100644
--- a/cpan/Unicode-Collate/Collate/Locale/de_at_ph.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/de_at_ph.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
00E4 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
0061 0308 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
diff --git a/cpan/Unicode-Collate/Collate/Locale/de_phone.pl b/cpan/Unicode-Collate/Collate/Locale/de_phone.pl
index 1e085dac6e..e3357d38e0 100644
--- a/cpan/Unicode-Collate/Collate/Locale/de_phone.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/de_phone.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
00E4 ; [.1C47.0021.0002][.1CAA.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
0061 0308 ; [.1C47.0021.0002][.1CAA.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
diff --git a/cpan/Unicode-Collate/Collate/Locale/dsb.pl b/cpan/Unicode-Collate/Collate/Locale/dsb.pl
index 7ee380f692..f6d3fbd0e0 100644
--- a/cpan/Unicode-Collate/Collate/Locale/dsb.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/dsb.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
010D ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/cpan/Unicode-Collate/Collate/Locale/ee.pl b/cpan/Unicode-Collate/Collate/Locale/ee.pl
index b701bce57a..a1b5401e0c 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ee.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ee.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
# d-tail, open-e, f-hook, gamma, eng, open-o, v-hook don't require tailoring
entry => <<'ENTRY', # for DUCET v9.0.0
0302 ; [.0000.0029.0002] # COMBINING CIRCUMFLEX ACCENT
diff --git a/cpan/Unicode-Collate/Collate/Locale/eo.pl b/cpan/Unicode-Collate/Collate/Locale/eo.pl
index 05786c89a1..19236515b9 100644
--- a/cpan/Unicode-Collate/Collate/Locale/eo.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/eo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0109 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
0063 0302 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
diff --git a/cpan/Unicode-Collate/Collate/Locale/es.pl b/cpan/Unicode-Collate/Collate/Locale/es.pl
index 3c04f6e7ec..3d2a947f92 100644
--- a/cpan/Unicode-Collate/Collate/Locale/es.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/es.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
00F1 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
006E 0303 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
diff --git a/cpan/Unicode-Collate/Collate/Locale/es_trad.pl b/cpan/Unicode-Collate/Collate/Locale/es_trad.pl
index 5c72166f65..42add428cf 100644
--- a/cpan/Unicode-Collate/Collate/Locale/es_trad.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/es_trad.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0063 0068 ; [.1C7B.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
0043 0068 ; [.1C7B.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
diff --git a/cpan/Unicode-Collate/Collate/Locale/et.pl b/cpan/Unicode-Collate/Collate/Locale/et.pl
index 03fd7fa29a..2f300ff5c1 100644
--- a/cpan/Unicode-Collate/Collate/Locale/et.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/et.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0161 ; [.1E92.0020.0002] # LATIN SMALL LETTER S WITH CARON
0073 030C ; [.1E92.0020.0002] # LATIN SMALL LETTER S WITH CARON
diff --git a/cpan/Unicode-Collate/Collate/Locale/fa.pl b/cpan/Unicode-Collate/Collate/Locale/fa.pl
index 765e289338..23ea1b2999 100644
--- a/cpan/Unicode-Collate/Collate/Locale/fa.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/fa.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0650 ; [.0000.0077.0002] # ARABIC KASRA
064B ; [.0000.007B.0002] # ARABIC FATHATAN
diff --git a/cpan/Unicode-Collate/Collate/Locale/fi.pl b/cpan/Unicode-Collate/Collate/Locale/fi.pl
index de271b4ef3..ef14df5c55 100644
--- a/cpan/Unicode-Collate/Collate/Locale/fi.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/fi.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
# in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
entry => <<'ENTRY', # for DUCET v9.0.0
0111 ; [.1C8F.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/cpan/Unicode-Collate/Collate/Locale/fi_phone.pl b/cpan/Unicode-Collate/Collate/Locale/fi_phone.pl
index fbd5ab58eb..45d4fbcbf3 100644
--- a/cpan/Unicode-Collate/Collate/Locale/fi_phone.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/fi_phone.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
# in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
entry => <<'ENTRY', # for DUCET v9.0.0
0111 ; [.1C8F.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/cpan/Unicode-Collate/Collate/Locale/fil.pl b/cpan/Unicode-Collate/Collate/Locale/fil.pl
index 249e596ae3..ac0ace0e1b 100644
--- a/cpan/Unicode-Collate/Collate/Locale/fil.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/fil.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
00F1 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
006E 0303 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
diff --git a/cpan/Unicode-Collate/Collate/Locale/fo.pl b/cpan/Unicode-Collate/Collate/Locale/fo.pl
index 6abbe9f8d5..c11be2c66e 100644
--- a/cpan/Unicode-Collate/Collate/Locale/fo.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/fo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/cpan/Unicode-Collate/Collate/Locale/fr_ca.pl b/cpan/Unicode-Collate/Collate/Locale/fr_ca.pl
index 97e08dafe3..f2633d012d 100644
--- a/cpan/Unicode-Collate/Collate/Locale/fr_ca.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/fr_ca.pl
@@ -1,4 +1,4 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
backwards => 2,
};
diff --git a/cpan/Unicode-Collate/Collate/Locale/gu.pl b/cpan/Unicode-Collate/Collate/Locale/gu.pl
index 1917b4ea70..b83b98a331 100644
--- a/cpan/Unicode-Collate/Collate/Locale/gu.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/gu.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0A82 ; [.2739.0020.0002][.FFF1.0000.0000] # GUJARATI SIGN ANUSVARA
0A81 ; [.2739.0021.0002][.FFF1.0000.0000] # GUJARATI SIGN CANDRABINDU
diff --git a/cpan/Unicode-Collate/Collate/Locale/ha.pl b/cpan/Unicode-Collate/Collate/Locale/ha.pl
index 41dfc512f8..74791959d8 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ha.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ha.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
# b-hook, d-hook, k-hook, y-hook don't require tailoring
entry => <<'ENTRY', # for DUCET v9.0.0
0073 0068 ; [.1E72.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
diff --git a/cpan/Unicode-Collate/Collate/Locale/haw.pl b/cpan/Unicode-Collate/Collate/Locale/haw.pl
index 0910e0045b..db912174f6 100644
--- a/cpan/Unicode-Collate/Collate/Locale/haw.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/haw.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0065 ; [.1C48.0020.0002][.FFF1.0000.0000] # LATIN SMALL LETTER E
0045 ; [.1C48.0020.0008][.FFF1.0000.0000] # LATIN CAPITAL LETTER E
diff --git a/cpan/Unicode-Collate/Collate/Locale/he.pl b/cpan/Unicode-Collate/Collate/Locale/he.pl
index 44a38341f7..a1acd0ac72 100644
--- a/cpan/Unicode-Collate/Collate/Locale/he.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/he.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
05F3 ; [*0305.001F.0002] # HEBREW PUNCTUATION GERESH
05F4 ; [*030C.001F.0002] # HEBREW PUNCTUATION GERSHAYIM
diff --git a/cpan/Unicode-Collate/Collate/Locale/hi.pl b/cpan/Unicode-Collate/Collate/Locale/hi.pl
index bc6f1bf1f8..ae935fe22e 100644
--- a/cpan/Unicode-Collate/Collate/Locale/hi.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/hi.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0902 ; [.265B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
0901 ; [.265B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
diff --git a/cpan/Unicode-Collate/Collate/Locale/hr.pl b/cpan/Unicode-Collate/Collate/Locale/hr.pl
index 53314281e9..28c0b231e8 100644
--- a/cpan/Unicode-Collate/Collate/Locale/hr.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/hr.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
010D ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/cpan/Unicode-Collate/Collate/Locale/hu.pl b/cpan/Unicode-Collate/Collate/Locale/hu.pl
index 7027ab9ab6..c2686f8ff5 100644
--- a/cpan/Unicode-Collate/Collate/Locale/hu.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/hu.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0063 0073 ; [.1C7B.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER S>
0063 0053 ; [.1C7B.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
diff --git a/cpan/Unicode-Collate/Collate/Locale/hy.pl b/cpan/Unicode-Collate/Collate/Locale/hy.pl
index 552c7fb149..2edd8cc988 100644
--- a/cpan/Unicode-Collate/Collate/Locale/hy.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/hy.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0587 ; [.22B3.0020.0002][.FFF1.0000.0000] # ARMENIAN SMALL LIGATURE ECH YIWN
0584 ; [.22B3.0020.0002][.FFF0.0000.0000] # ARMENIAN SMALL LETTER KEH
diff --git a/cpan/Unicode-Collate/Collate/Locale/ig.pl b/cpan/Unicode-Collate/Collate/Locale/ig.pl
index c6f252bb9d..47528ccf98 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ig.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ig.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0063 0068 ; [.1C61.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
0043 0068 ; [.1C61.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
diff --git a/cpan/Unicode-Collate/Collate/Locale/is.pl b/cpan/Unicode-Collate/Collate/Locale/is.pl
index faa588b932..3df7aa4534 100644
--- a/cpan/Unicode-Collate/Collate/Locale/is.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/is.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
00E1 ; [.1C5F.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
0061 0301 ; [.1C5F.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
diff --git a/cpan/Unicode-Collate/Collate/Locale/ja.pl b/cpan/Unicode-Collate/Collate/Locale/ja.pl
index 5ea4730ad6..26550c402b 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ja.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ja.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::JISX0208;
+{
- locale_version => 1.21,
+ locale_version => 1.23,
overrideCJK => \&Unicode::Collate::CJK::JISX0208::weightJISX0208,
entry => <<'ENTRY', # for DUCET v9.0.0
30A1 ; [.3D5A.0020.000F.0002] # KATAKANA LETTER SMALL A
diff --git a/cpan/Unicode-Collate/Collate/Locale/kk.pl b/cpan/Unicode-Collate/Collate/Locale/kk.pl
index 5fb33a11a0..8cea65ca53 100644
--- a/cpan/Unicode-Collate/Collate/Locale/kk.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/kk.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0451 ; [.205B.0020.0002] # CYRILLIC SMALL LETTER IO
0435 0308 ; [.205B.0020.0002] # CYRILLIC SMALL LETTER IO
diff --git a/cpan/Unicode-Collate/Collate/Locale/kl.pl b/cpan/Unicode-Collate/Collate/Locale/kl.pl
index 43c7be2dad..92e547010d 100644
--- a/cpan/Unicode-Collate/Collate/Locale/kl.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/kl.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/cpan/Unicode-Collate/Collate/Locale/kn.pl b/cpan/Unicode-Collate/Collate/Locale/kn.pl
index a43fa85390..d1969d5094 100644
--- a/cpan/Unicode-Collate/Collate/Locale/kn.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/kn.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0C82 ; [.284C.0020.0002][.FFF1.0000.0000] # KANNADA SIGN ANUSVARA
0C83 ; [.284C.0020.0002][.FFF2.0000.0000] # KANNADA SIGN VISARGA
diff --git a/cpan/Unicode-Collate/Collate/Locale/ko.pl b/cpan/Unicode-Collate/Collate/Locale/ko.pl
index a11a4cb61c..407dea5ffd 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ko.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ko.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::Korean;
+{
- locale_version => 1.21,
+ locale_version => 1.23,
overrideCJK => \&Unicode::Collate::CJK::Korean::weightKorean,
entry => <<'ENTRY', # for DUCET v9.0.0
F967 ; [.3BFC.0021.0002.4E0D][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
diff --git a/cpan/Unicode-Collate/Collate/Locale/kok.pl b/cpan/Unicode-Collate/Collate/Locale/kok.pl
index 9cd5b1fd64..b4b87b6282 100644
--- a/cpan/Unicode-Collate/Collate/Locale/kok.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/kok.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0902 ; [.265B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
0901 ; [.265B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
diff --git a/cpan/Unicode-Collate/Collate/Locale/lkt.pl b/cpan/Unicode-Collate/Collate/Locale/lkt.pl
index 496655273f..7c066dea72 100644
--- a/cpan/Unicode-Collate/Collate/Locale/lkt.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/lkt.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
010D ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/cpan/Unicode-Collate/Collate/Locale/ln.pl b/cpan/Unicode-Collate/Collate/Locale/ln.pl
index 441c4a0356..f1e01cc722 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ln.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ln.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
025B ; [.1CAB.0020.0002] # LATIN SMALL LETTER OPEN E
0190 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER OPEN E
diff --git a/cpan/Unicode-Collate/Collate/Locale/lt.pl b/cpan/Unicode-Collate/Collate/Locale/lt.pl
index 83c346b709..b5881a2c86 100644
--- a/cpan/Unicode-Collate/Collate/Locale/lt.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/lt.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
# in cldr test/lt.xml why I-dot-acute > I-dot though i-dot-acute < i-dot ?
entry => <<'ENTRY', # for DUCET v9.0.0
0049 0307 ; [.1D32.0020.0008][.0000.002E.0002] # <LATIN CAPITAL LETTER I, COMBINING DOT ABOVE>
diff --git a/cpan/Unicode-Collate/Collate/Locale/lv.pl b/cpan/Unicode-Collate/Collate/Locale/lv.pl
index 4cd2f257bd..ffe9cdf69c 100644
--- a/cpan/Unicode-Collate/Collate/Locale/lv.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/lv.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
010D ; [.1C8E.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1C8E.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/cpan/Unicode-Collate/Collate/Locale/mk.pl b/cpan/Unicode-Collate/Collate/Locale/mk.pl
index 8e9c9543df..95c35f3c8b 100644
--- a/cpan/Unicode-Collate/Collate/Locale/mk.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/mk.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
suppress => [0x0418, 0x0438],
entry => <<'ENTRY', # for DUCET v9.0.0
0453 ; [.2056.0020.0002] # CYRILLIC SMALL LETTER GJE
diff --git a/cpan/Unicode-Collate/Collate/Locale/ml.pl b/cpan/Unicode-Collate/Collate/Locale/ml.pl
index cebee507b8..59a6fc1572 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ml.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ml.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0D3D ; [.0000.00C6.0002] # MALAYALAM SIGN AVAGRAHA
0D57 ; [.28CD.0020.0002] # MALAYALAM AU LENGTH MARK
diff --git a/cpan/Unicode-Collate/Collate/Locale/mr.pl b/cpan/Unicode-Collate/Collate/Locale/mr.pl
index 4a88db46ed..ccd4540b42 100644
--- a/cpan/Unicode-Collate/Collate/Locale/mr.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/mr.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0902 ; [.265B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
0901 ; [.265B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
diff --git a/cpan/Unicode-Collate/Collate/Locale/mt.pl b/cpan/Unicode-Collate/Collate/Locale/mt.pl
index e1edfb5337..752dff175d 100644
--- a/cpan/Unicode-Collate/Collate/Locale/mt.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/mt.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
upper_before_lower => 1,
entry => <<'ENTRY', # for DUCET v9.0.0
010B ; [.1C79.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
diff --git a/cpan/Unicode-Collate/Collate/Locale/nb.pl b/cpan/Unicode-Collate/Collate/Locale/nb.pl
index f7170c7e77..9e104eb13c 100644
--- a/cpan/Unicode-Collate/Collate/Locale/nb.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/nb.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/cpan/Unicode-Collate/Collate/Locale/nn.pl b/cpan/Unicode-Collate/Collate/Locale/nn.pl
index f7170c7e77..9e104eb13c 100644
--- a/cpan/Unicode-Collate/Collate/Locale/nn.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/nn.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/cpan/Unicode-Collate/Collate/Locale/nso.pl b/cpan/Unicode-Collate/Collate/Locale/nso.pl
index db1915b5b3..69c02112a7 100644
--- a/cpan/Unicode-Collate/Collate/Locale/nso.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/nso.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
00EA ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
0065 0302 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
diff --git a/cpan/Unicode-Collate/Collate/Locale/om.pl b/cpan/Unicode-Collate/Collate/Locale/om.pl
index c3a1aac219..60e06b4ef3 100644
--- a/cpan/Unicode-Collate/Collate/Locale/om.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/om.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0063 0068 ; [.1F22.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
0043 0068 ; [.1F22.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
diff --git a/cpan/Unicode-Collate/Collate/Locale/or.pl b/cpan/Unicode-Collate/Collate/Locale/or.pl
index a3926ad638..909cf0fd2d 100644
--- a/cpan/Unicode-Collate/Collate/Locale/or.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/or.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0B01 ; [.278B.0020.0002][.FFF1.0000.0000] # ORIYA SIGN CANDRABINDU
0B02 ; [.278B.0020.0002][.FFF2.0000.0000] # ORIYA SIGN ANUSVARA
diff --git a/cpan/Unicode-Collate/Collate/Locale/pa.pl b/cpan/Unicode-Collate/Collate/Locale/pa.pl
index 4d6d7a4c61..a7963cc3dd 100644
--- a/cpan/Unicode-Collate/Collate/Locale/pa.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/pa.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0A71 ; [.0000.00C3.0002] # GURMUKHI ADDAK
0A03 ; [.0000.00C2.0002] # GURMUKHI SIGN VISARGA
diff --git a/cpan/Unicode-Collate/Collate/Locale/pl.pl b/cpan/Unicode-Collate/Collate/Locale/pl.pl
index b12bb78ad4..c2880dc752 100644
--- a/cpan/Unicode-Collate/Collate/Locale/pl.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/pl.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0105 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
0061 0328 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
diff --git a/cpan/Unicode-Collate/Collate/Locale/ro.pl b/cpan/Unicode-Collate/Collate/Locale/ro.pl
index eebf0df435..be2a882421 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ro.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ro.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0103 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH BREVE
0061 0306 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH BREVE
diff --git a/cpan/Unicode-Collate/Collate/Locale/sa.pl b/cpan/Unicode-Collate/Collate/Locale/sa.pl
index 4a88db46ed..ccd4540b42 100644
--- a/cpan/Unicode-Collate/Collate/Locale/sa.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/sa.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0902 ; [.265B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
0901 ; [.265B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
diff --git a/cpan/Unicode-Collate/Collate/Locale/se.pl b/cpan/Unicode-Collate/Collate/Locale/se.pl
index f3966e13a7..d8bfcd76ef 100644
--- a/cpan/Unicode-Collate/Collate/Locale/se.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/se.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
# eng, g-stroke, t-stroke don't require tailoring
entry => <<'ENTRY', # for DUCET v9.0.0
00E1 ; [.1C5F.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
diff --git a/cpan/Unicode-Collate/Collate/Locale/si.pl b/cpan/Unicode-Collate/Collate/Locale/si.pl
index bbb1742276..e89c65cb01 100644
--- a/cpan/Unicode-Collate/Collate/Locale/si.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/si.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0D82 ; [.28E1.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
0D83 ; [.28E1.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
diff --git a/cpan/Unicode-Collate/Collate/Locale/si_dict.pl b/cpan/Unicode-Collate/Collate/Locale/si_dict.pl
index a63379e8c6..236512b249 100644
--- a/cpan/Unicode-Collate/Collate/Locale/si_dict.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/si_dict.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0D82 ; [.28E1.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
0D83 ; [.28E1.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
diff --git a/cpan/Unicode-Collate/Collate/Locale/sk.pl b/cpan/Unicode-Collate/Collate/Locale/sk.pl
index 06da36e62f..3875670bb5 100644
--- a/cpan/Unicode-Collate/Collate/Locale/sk.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/sk.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
00E4 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
0061 0308 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
diff --git a/cpan/Unicode-Collate/Collate/Locale/sl.pl b/cpan/Unicode-Collate/Collate/Locale/sl.pl
index 9631acf8d9..d7d1bd3e33 100644
--- a/cpan/Unicode-Collate/Collate/Locale/sl.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/sl.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
010D ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
0063 030C ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
diff --git a/cpan/Unicode-Collate/Collate/Locale/sq.pl b/cpan/Unicode-Collate/Collate/Locale/sq.pl
index 5f70b1b3a8..7fa8224251 100644
--- a/cpan/Unicode-Collate/Collate/Locale/sq.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/sq.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
00E7 ; [.1C8E.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
0063 0327 ; [.1C8E.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
diff --git a/cpan/Unicode-Collate/Collate/Locale/sr.pl b/cpan/Unicode-Collate/Collate/Locale/sr.pl
index 559ccf6d2c..ab970974ee 100644
--- a/cpan/Unicode-Collate/Collate/Locale/sr.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/sr.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
suppress => [0x0418, 0x0438],
entry => <<'ENTRY', # for DUCET v9.0.0
0439 ; [.2080.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
diff --git a/cpan/Unicode-Collate/Collate/Locale/sv.pl b/cpan/Unicode-Collate/Collate/Locale/sv.pl
index 605656f4fa..b9d563010d 100644
--- a/cpan/Unicode-Collate/Collate/Locale/sv.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/sv.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/cpan/Unicode-Collate/Collate/Locale/sv_refo.pl b/cpan/Unicode-Collate/Collate/Locale/sv_refo.pl
index 6325de0012..496e7544ad 100644
--- a/cpan/Unicode-Collate/Collate/Locale/sv_refo.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/sv_refo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
diff --git a/cpan/Unicode-Collate/Collate/Locale/ta.pl b/cpan/Unicode-Collate/Collate/Locale/ta.pl
index c3b3136d54..6f977b0006 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ta.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ta.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0B82 ; [.27CE.0020.0002][.FFF0.0000.0000] # TAMIL SIGN ANUSVARA
0B83 ; [.27CE.0020.0002][.FFF1.0000.0000] # TAMIL SIGN VISARGA
diff --git a/cpan/Unicode-Collate/Collate/Locale/te.pl b/cpan/Unicode-Collate/Collate/Locale/te.pl
index cfd9e0c656..d1d95fdc72 100644
--- a/cpan/Unicode-Collate/Collate/Locale/te.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/te.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0C01 ; [.2802.0020.0002][.FFF1.0000.0000] # TELUGU SIGN CANDRABINDU
0C02 ; [.2802.0020.0002][.FFF2.0000.0000] # TELUGU SIGN ANUSVARA
diff --git a/cpan/Unicode-Collate/Collate/Locale/th.pl b/cpan/Unicode-Collate/Collate/Locale/th.pl
index f433e203e9..6885adf89d 100644
--- a/cpan/Unicode-Collate/Collate/Locale/th.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/th.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
variable => 'shifted',
alternate => 'shifted',
entry => <<'ENTRY', # for DUCET v9.0.0
diff --git a/cpan/Unicode-Collate/Collate/Locale/tn.pl b/cpan/Unicode-Collate/Collate/Locale/tn.pl
index db1915b5b3..69c02112a7 100644
--- a/cpan/Unicode-Collate/Collate/Locale/tn.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/tn.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
00EA ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
0065 0302 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
diff --git a/cpan/Unicode-Collate/Collate/Locale/to.pl b/cpan/Unicode-Collate/Collate/Locale/to.pl
index a1a4fafef9..92d65db1c2 100644
--- a/cpan/Unicode-Collate/Collate/Locale/to.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/to.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
006E 0067 ; [.1DBA.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
004E 0067 ; [.1DBA.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
diff --git a/cpan/Unicode-Collate/Collate/Locale/tr.pl b/cpan/Unicode-Collate/Collate/Locale/tr.pl
index 742464d725..ecdd5ea4a5 100644
--- a/cpan/Unicode-Collate/Collate/Locale/tr.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/tr.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
00E7 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
0063 0327 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
diff --git a/cpan/Unicode-Collate/Collate/Locale/ug_cyrl.pl b/cpan/Unicode-Collate/Collate/Locale/ug_cyrl.pl
index 356fa987d0..1760e1d9d2 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ug_cyrl.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ug_cyrl.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
04D9 ; [.205B.0020.0002] # CYRILLIC SMALL LETTER SCHWA
04D8 ; [.205B.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA
diff --git a/cpan/Unicode-Collate/Collate/Locale/uk.pl b/cpan/Unicode-Collate/Collate/Locale/uk.pl
index 956fd9721d..4327023706 100644
--- a/cpan/Unicode-Collate/Collate/Locale/uk.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/uk.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0491 ; [.2037.0020.0002] # CYRILLIC SMALL LETTER GHE WITH UPTURN
0490 ; [.2037.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
diff --git a/cpan/Unicode-Collate/Collate/Locale/ur.pl b/cpan/Unicode-Collate/Collate/Locale/ur.pl
index c7a8e4ae49..6c076427de 100644
--- a/cpan/Unicode-Collate/Collate/Locale/ur.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/ur.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0623 ; [.230B.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
0627 0654 ; [.230B.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
diff --git a/cpan/Unicode-Collate/Collate/Locale/vi.pl b/cpan/Unicode-Collate/Collate/Locale/vi.pl
index 2fc4cd7ea4..66713ac877 100644
--- a/cpan/Unicode-Collate/Collate/Locale/vi.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/vi.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
# 0306 is not a Vietnamese tone, just to avoid \x{306} eq. to something.
entry => <<'ENTRY', # for DUCET v9.0.0
0309 ; [.0000.0026.0002][.0000.00F0.0000] # COMBINING HOOK ABOVE
diff --git a/cpan/Unicode-Collate/Collate/Locale/vo.pl b/cpan/Unicode-Collate/Collate/Locale/vo.pl
index 2a2ff1e070..5f40776d70 100644
--- a/cpan/Unicode-Collate/Collate/Locale/vo.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/vo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
00E4 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
0061 0308 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
diff --git a/cpan/Unicode-Collate/Collate/Locale/wae.pl b/cpan/Unicode-Collate/Collate/Locale/wae.pl
index 075e169f72..2edbc2b17d 100644
--- a/cpan/Unicode-Collate/Collate/Locale/wae.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/wae.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0061 0061 ; [.1C47.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
00E4 00E4 ; [.1C47.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
diff --git a/cpan/Unicode-Collate/Collate/Locale/wo.pl b/cpan/Unicode-Collate/Collate/Locale/wo.pl
index 1272e3f10c..4e640d895d 100644
--- a/cpan/Unicode-Collate/Collate/Locale/wo.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/wo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
# eng doesn't require tailoring
entry => <<'ENTRY', # for DUCET v9.0.0
00E0 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
diff --git a/cpan/Unicode-Collate/Collate/Locale/yo.pl b/cpan/Unicode-Collate/Collate/Locale/yo.pl
index 0fdb943336..63f39dc622 100644
--- a/cpan/Unicode-Collate/Collate/Locale/yo.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/yo.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
1EB9 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
0065 0323 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
diff --git a/cpan/Unicode-Collate/Collate/Locale/zh.pl b/cpan/Unicode-Collate/Collate/Locale/zh.pl
index 46b6028bd7..c18914460c 100644
--- a/cpan/Unicode-Collate/Collate/Locale/zh.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/zh.pl
@@ -1,5 +1,5 @@
+{
- locale_version => 1.21,
+ locale_version => 1.23,
entry => <<'ENTRY', # for DUCET v9.0.0
0101 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
0061 0304 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
diff --git a/cpan/Unicode-Collate/Collate/Locale/zh_big5.pl b/cpan/Unicode-Collate/Collate/Locale/zh_big5.pl
index ede0ca8330..5d7f0af83a 100644
--- a/cpan/Unicode-Collate/Collate/Locale/zh_big5.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/zh_big5.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::Big5;
+{
- locale_version => 1.21,
+ locale_version => 1.23,
overrideCJK => \&Unicode::Collate::CJK::Big5::weightBig5,
entry => <<'ENTRY', # for DUCET v9.0.0
0101 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
diff --git a/cpan/Unicode-Collate/Collate/Locale/zh_gb.pl b/cpan/Unicode-Collate/Collate/Locale/zh_gb.pl
index 14f572226b..0f6868cfd1 100644
--- a/cpan/Unicode-Collate/Collate/Locale/zh_gb.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/zh_gb.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::GB2312;
+{
- locale_version => 1.21,
+ locale_version => 1.23,
overrideCJK => \&Unicode::Collate::CJK::GB2312::weightGB2312,
entry => <<'ENTRY', # for DUCET v9.0.0
0101 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
diff --git a/cpan/Unicode-Collate/Collate/Locale/zh_pin.pl b/cpan/Unicode-Collate/Collate/Locale/zh_pin.pl
index fc866216b2..5403f77172 100644
--- a/cpan/Unicode-Collate/Collate/Locale/zh_pin.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/zh_pin.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::Pinyin;
+{
- locale_version => 1.21,
+ locale_version => 1.23,
overrideCJK => \&Unicode::Collate::CJK::Pinyin::weightPinyin,
entry => <<'ENTRY', # for DUCET v9.0.0
0101 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
diff --git a/cpan/Unicode-Collate/Collate/Locale/zh_strk.pl b/cpan/Unicode-Collate/Collate/Locale/zh_strk.pl
index 2b2aefb167..2fcf337d2c 100644
--- a/cpan/Unicode-Collate/Collate/Locale/zh_strk.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/zh_strk.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::Stroke;
+{
- locale_version => 1.21,
+ locale_version => 1.23,
overrideCJK => \&Unicode::Collate::CJK::Stroke::weightStroke,
entry => <<'ENTRY', # for DUCET v9.0.0
0101 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
diff --git a/cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl b/cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl
index 74918f6390..e1204b8edc 100644
--- a/cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl
+++ b/cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl
@@ -1,6 +1,6 @@
use Unicode::Collate::CJK::Zhuyin;
+{
- locale_version => 1.21,
+ locale_version => 1.23,
overrideCJK => \&Unicode::Collate::CJK::Zhuyin::weightZhuyin,
entry => <<'ENTRY', # for DUCET v9.0.0
02C9 ; [.0000.0199.0002] # MODIFIER LETTER MACRON
diff --git a/cpan/Unicode-Collate/t/cjkrange.t b/cpan/Unicode-Collate/t/cjkrange.t
index 2c1ace7c22..4ed8710a9d 100644
--- a/cpan/Unicode-Collate/t/cjkrange.t
+++ b/cpan/Unicode-Collate/t/cjkrange.t
@@ -16,7 +16,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..715\n"; } # 1 + 51 x @Versions
+BEGIN { $| = 1; print "1..901\n"; } # 1 + 60 x @Versions
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -47,14 +47,16 @@ my $coll = Unicode::Collate->new(
# 9FC4..9FCB are CJK UI since UCA_Version 20 (Unicode 5.2).
# 9FCC is CJK UI since UCA_Version 24 (Unicode 6.1).
# 9FCD..9FD5 are CJK UI since UCA_Version 32 (Unicode 8.0).
+# 9FD6..9FEA are CJK UI since UCA_Version 36 (Unicode 10.0).
# 3400..4DB5 are CJK UI Ext.A since UCA_Version 8 (Unicode 3.0).
# 20000..2A6D6 are CJK UI Ext.B since UCA_Version 8 (Unicode 3.1).
# 2A700..2B734 are CJK UI Ext.C since UCA_Version 20 (Unicode 5.2).
# 2B740..2B81D are CJK UI Ext.D since UCA_Version 22 (Unicode 6.0).
# 2B820..2CEA1 are CJK UI Ext.E since UCA_Version 32 (Unicode 8.0).
+# 2CEB0..2EBE0 are CJK UI Ext.F since UCA_Version 36 (Unicode 10.0).
-my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34);
+my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36);
for my $v (@Versions) {
$coll->change(UCA_Version => $v);
@@ -71,7 +73,9 @@ for my $v (@Versions) {
ok($coll->cmp("\x{3400}", "\x{9FCC}") == ($v >= 24 ? 1 : -1)); # new
ok($coll->cmp("\x{3400}", "\x{9FCD}") == ($v >= 32 ? 1 : -1)); # new
ok($coll->cmp("\x{3400}", "\x{9FD5}") == ($v >= 32 ? 1 : -1)); # new
- ok($coll->cmp("\x{3400}", "\x{9FD6}") == -1); # na
+ ok($coll->cmp("\x{3400}", "\x{9FD6}") == ($v >= 36 ? 1 : -1)); # new
+ ok($coll->cmp("\x{3400}", "\x{9FEA}") == ($v >= 36 ? 1 : -1)); # new
+ ok($coll->cmp("\x{3400}", "\x{9FEB}") == -1); # na
ok($coll->cmp("\x{3400}", "\x{9FFF}") == -1); # na
# UI < UI
@@ -85,8 +89,10 @@ for my $v (@Versions) {
ok($coll->cmp("\x{9FCB}", "\x{9FCC}") == -1); # new < new
ok($coll->cmp("\x{9FCC}", "\x{9FCD}") == -1); # new < new
ok($coll->cmp("\x{9FCD}", "\x{9FD5}") == -1); # new < new
- ok($coll->cmp("\x{9FD5}", "\x{9FD6}") == -1); # new < na
- ok($coll->cmp("\x{9FD6}", "\x{9FFF}") == -1); # na < na
+ ok($coll->cmp("\x{9FD5}", "\x{9FD6}") == -1); # new < new
+ ok($coll->cmp("\x{9FD6}", "\x{9FEA}") == -1); # new < new
+ ok($coll->cmp("\x{9FEA}", "\x{9FEB}") == -1); # new < na
+ ok($coll->cmp("\x{9FEB}", "\x{9FFF}") == -1); # na < na
# Ext.A < Ext.B
ok($coll->cmp("\x{3400}", "\x{20000}") == -1);
@@ -125,5 +131,12 @@ for my $v (@Versions) {
ok($coll->cmp("\x{2FFF}", "\x{2CEA1}") == ($v >= 32 ? 1 : -1)); # na > E
ok($coll->cmp("\x{2FFF}", "\x{2CEA2}") == -1); # na < na
ok($coll->cmp("\x{2FFF}", "\x{2CEAF}") == -1); # na < na
+
+ # Ext.F
+ ok($coll->cmp("\x{2CEB0}","\x{2EBE0}") == -1); # F < F
+ ok($coll->cmp("\x{2FFF}", "\x{2CEB0}") == ($v >= 36 ? 1 : -1)); # na > F
+ ok($coll->cmp("\x{2FFF}", "\x{2EBE0}") == ($v >= 36 ? 1 : -1)); # na > F
+ ok($coll->cmp("\x{2FFF}", "\x{2EBE1}") == -1); # na < na
+ ok($coll->cmp("\x{2FFF}", "\x{2EBEF}") == -1); # na < na
}
diff --git a/cpan/Unicode-Collate/t/compatui.t b/cpan/Unicode-Collate/t/compatui.t
index 9c51afe375..96dffd4091 100644
--- a/cpan/Unicode-Collate/t/compatui.t
+++ b/cpan/Unicode-Collate/t/compatui.t
@@ -16,7 +16,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..981\n"; } # 1 + 70 x @Versions
+BEGIN { $| = 1; print "1..1051\n"; } # 1 + 70 x @Versions
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -33,7 +33,7 @@ ok(1);
#########################
-my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34);
+my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36);
# 12 compatibility ideographs are treated as unified ideographs:
# FA0E, FA0F, FA11, FA13, FA14, FA1F, FA21, FA23, FA24, FA27, FA28, FA29.
diff --git a/cpan/Unicode-Collate/t/hangtype.t b/cpan/Unicode-Collate/t/hangtype.t
index 3427a8a39f..42d0c61a50 100644
--- a/cpan/Unicode-Collate/t/hangtype.t
+++ b/cpan/Unicode-Collate/t/hangtype.t
@@ -16,7 +16,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..701\n"; } # 1 + 50 x @Versions
+BEGIN { $| = 1; print "1..751\n"; } # 1 + 50 x @Versions
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -33,7 +33,7 @@ ok(1);
#########################
-my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34);
+my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36);
for my $v (@Versions) {
ok(Unicode::Collate::getHST(0x0000, $v), '');
diff --git a/cpan/Unicode-Collate/t/illegal.t b/cpan/Unicode-Collate/t/illegal.t
index e901402a2a..c9ac787016 100644
--- a/cpan/Unicode-Collate/t/illegal.t
+++ b/cpan/Unicode-Collate/t/illegal.t
@@ -30,7 +30,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..151\n"; } # 81 + 5 x @Versions
+BEGIN { $| = 1; print "1..156\n"; } # 81 + 5 x @Versions
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -192,7 +192,7 @@ my $out = Unicode::Collate->new(
overrideOut => sub { 0xFFFD },
);
-my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34);
+my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36);
for my $v (@Versions) {
$out->change(UCA_Version => $v);
diff --git a/cpan/Unicode-Collate/t/loc_es.t b/cpan/Unicode-Collate/t/loc_es.t
index 3e685a8cec..cd482fea29 100644
--- a/cpan/Unicode-Collate/t/loc_es.t
+++ b/cpan/Unicode-Collate/t/loc_es.t
@@ -37,7 +37,7 @@ my $objEs = Unicode::Collate::Locale->
new(locale => 'ES', normalization => undef);
ok($objEs->getlocale, 'es');
-ok($objEs->locale_version, 1.21);
+ok($objEs->locale_version, 1.23);
$objEs->change(level => 1);
diff --git a/cpan/Unicode-Collate/t/loc_estr.t b/cpan/Unicode-Collate/t/loc_estr.t
index b8470cb4ea..cc02ad9260 100644
--- a/cpan/Unicode-Collate/t/loc_estr.t
+++ b/cpan/Unicode-Collate/t/loc_estr.t
@@ -37,7 +37,7 @@ my $objEsTrad = Unicode::Collate::Locale->
new(locale => 'ES-trad', normalization => undef);
ok($objEsTrad->getlocale, 'es__traditional');
-ok($objEsTrad->locale_version, 1.21);
+ok($objEsTrad->locale_version, 1.23);
$objEsTrad->change(level => 1);
diff --git a/cpan/Unicode-Collate/t/nushu.t b/cpan/Unicode-Collate/t/nushu.t
new file mode 100644
index 0000000000..4293a9af5d
--- /dev/null
+++ b/cpan/Unicode-Collate/t/nushu.t
@@ -0,0 +1,73 @@
+
+BEGIN {
+ unless ('A' eq pack('U', 0x41)) {
+ print "1..0 # Unicode::Collate cannot pack a Unicode code point\n";
+ exit 0;
+ }
+ unless (0x41 == unpack('U', 'A')) {
+ print "1..0 # Unicode::Collate cannot get a Unicode code point\n";
+ exit 0;
+ }
+ if ($ENV{PERL_CORE}) {
+ chdir('t') if -d 't';
+ @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+ }
+}
+
+use strict;
+use warnings;
+BEGIN { $| = 1; print "1..185\n"; } # 5 + 12 x @Versions
+my $count = 0;
+sub ok ($;$) {
+ my $p = my $r = shift;
+ if (@_) {
+ my $x = shift;
+ $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
+ }
+ print $p ? "ok" : "not ok", ' ', ++$count, "\n";
+}
+
+use Unicode::Collate;
+
+ok(1);
+
+#########################
+
+my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36);
+
+my $Collator = Unicode::Collate->new(
+ table => 'keys.txt',
+ normalization => undef,
+ UCA_Version => 36,
+);
+
+ok($Collator->viewSortKey("\x{1B170}"),
+ '[FB01 8000 | 0020 | 0002 | FFFF |]');
+ok($Collator->viewSortKey("\x{1B171}"),
+ '[FB01 8001 | 0020 | 0002 | FFFF |]');
+ok($Collator->viewSortKey("\x{1B200}"),
+ '[FB01 8090 | 0020 | 0002 | FFFF |]');
+ok($Collator->viewSortKey("\x{1B2FB}"),
+ '[FB01 818B | 0020 | 0002 | FFFF |]');
+
+# Nushu < CJK UI (4E00) < Unassigned.
+
+# 1B170..1B2FB are Nushu Characters since UCA_Version 36 (Unicode 10.0).
+
+for my $v (@Versions) {
+ $Collator->change(UCA_Version => $v);
+
+ ok($Collator->cmp("\x{1B16F}", "\x{4E00}") == 1);
+ ok($Collator->cmp("\x{1B170}", "\x{4E00}") == ($v >= 36 ? -1 : 1));
+ ok($Collator->cmp("\x{1B171}", "\x{4E00}") == ($v >= 36 ? -1 : 1));
+ ok($Collator->cmp("\x{1B1FF}", "\x{4E00}") == ($v >= 36 ? -1 : 1));
+ ok($Collator->cmp("\x{1B200}", "\x{4E00}") == ($v >= 36 ? -1 : 1));
+ ok($Collator->cmp("\x{1B2FB}", "\x{4E00}") == ($v >= 36 ? -1 : 1));
+ ok($Collator->cmp("\x{1B2FC}", "\x{4E00}") == 1);
+ ok($Collator->cmp("\x{1B2FF}", "\x{4E00}") == 1);
+
+ ok($Collator->lt("\x{1B170}", "\x{1B171}"));
+ ok($Collator->lt("\x{1B171}", "\x{1B1FF}"));
+ ok($Collator->lt("\x{1B1FF}", "\x{1B200}"));
+ ok($Collator->lt("\x{1B200}", "\x{1B2FB}"));
+}
diff --git a/cpan/Unicode-Collate/t/overcjk0.t b/cpan/Unicode-Collate/t/overcjk0.t
index c2d80dc96e..12e599de58 100644
--- a/cpan/Unicode-Collate/t/overcjk0.t
+++ b/cpan/Unicode-Collate/t/overcjk0.t
@@ -16,7 +16,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..552\n"; } # 6 + 39 x @Versions
+BEGIN { $| = 1; print "1..696\n"; } # 6 + 46 x @Versions
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -60,14 +60,16 @@ ok($ignoreCJK->lt("Pe\x{5B57}rl", "Perl")); # 'r' is unassigned.
# 9FC4..9FCB are CJK UI since UCA_Version 20 (Unicode 5.2).
# 9FCC is CJK UI since UCA_Version 24 (Unicode 6.1).
# 9FCD..9FD5 are CJK UI since UCA_Version 32 (Unicode 8.0).
+# 9FD6..9FEA are CJK UI since UCA_Version 36 (Unicode 10.0).
# 3400..4DB5 are CJK UI Ext.A since UCA_Version 8 (Unicode 3.0).
# 20000..2A6D6 are CJK UI Ext.B since UCA_Version 8 (Unicode 3.1).
# 2A700..2B734 are CJK UI Ext.C since UCA_Version 20 (Unicode 5.2).
# 2B740..2B81D are CJK UI Ext.D since UCA_Version 22 (Unicode 6.0).
# 2B820..2CEA1 are CJK UI Ext.E since UCA_Version 32 (Unicode 8.0).
+# 2CEB0..2EBE0 are CJK UI Ext.F since UCA_Version 36 (Unicode 10.0).
-my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34);
+my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36);
for my $v (@Versions) {
$ignoreCJK->change(UCA_Version => $v);
@@ -90,8 +92,11 @@ for my $v (@Versions) {
ok($ignoreCJK->cmp("\x{9FCF}", "") == ($v >= 32 ? 0 : 1));
ok($ignoreCJK->cmp("\x{9FD0}", "") == ($v >= 32 ? 0 : 1));
ok($ignoreCJK->cmp("\x{9FD5}", "") == ($v >= 32 ? 0 : 1));
- ok($ignoreCJK->cmp("\x{9FD6}", "") == 1);
- ok($ignoreCJK->cmp("\x{9FDF}", "") == 1);
+ ok($ignoreCJK->cmp("\x{9FD6}", "") == ($v >= 36 ? 0 : 1));
+ ok($ignoreCJK->cmp("\x{9FDF}", "") == ($v >= 36 ? 0 : 1));
+ ok($ignoreCJK->cmp("\x{9FEA}", "") == ($v >= 36 ? 0 : 1));
+ ok($ignoreCJK->cmp("\x{9FEB}", "") == 1);
+ ok($ignoreCJK->cmp("\x{9FFF}", "") == 1);
# Ext.A
ok($ignoreCJK->cmp("\x{3400}", "") == 0);
@@ -122,5 +127,11 @@ for my $v (@Versions) {
ok($ignoreCJK->cmp("\x{2CEA1}","") == ($v >= 32 ? 0 : 1));
ok($ignoreCJK->cmp("\x{2CEA2}","") == 1);
ok($ignoreCJK->cmp("\x{2CEAF}","") == 1);
+
+ # Ext.F
+ ok($ignoreCJK->cmp("\x{2CEB0}","") == ($v >= 36 ? 0 : 1));
+ ok($ignoreCJK->cmp("\x{2EBE0}","") == ($v >= 36 ? 0 : 1));
+ ok($ignoreCJK->cmp("\x{2EBE1}","") == 1);
+ ok($ignoreCJK->cmp("\x{2EBEF}","") == 1);
}
diff --git a/cpan/Unicode-Collate/t/overcjk1.t b/cpan/Unicode-Collate/t/overcjk1.t
index cf80786e24..8441979425 100644
--- a/cpan/Unicode-Collate/t/overcjk1.t
+++ b/cpan/Unicode-Collate/t/overcjk1.t
@@ -16,7 +16,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..277\n"; } # 11 + 19 x @Versions
+BEGIN { $| = 1; print "1..356\n"; } # 11 + 23 x @Versions
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -60,13 +60,15 @@ ok($overCJK->lt("a\x{4E03}", "A\x{4E01}"));
#####
+# 4E00..9FA5 are CJK UI.
# 9FA6..9FBB are CJK UI since UCA_Version 14 (Unicode 4.1).
# 9FBC..9FC3 are CJK UI since UCA_Version 18 (Unicode 5.1).
# 9FC4..9FCB are CJK UI since UCA_Version 20 (Unicode 5.2).
# 9FCC is CJK UI since UCA_Version 24 (Unicode 6.1).
# 9FCD..9FD5 are CJK UI since UCA_Version 32 (Unicode 8.0).
+# 9FD6..9FEA are CJK UI since UCA_Version 36 (Unicode 10.0).
-my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34);
+my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36);
for my $v (@Versions) {
$overCJK->change(UCA_Version => $v);
@@ -87,7 +89,11 @@ for my $v (@Versions) {
ok($overCJK->cmp("a\x{9FCC}", "A\x{9FCD}") == ($v >= 32 ? 1 : -1));
ok($overCJK->cmp("a\x{9FCD}", "A\x{9FCF}") == ($v >= 32 ? 1 : -1));
ok($overCJK->cmp("a\x{9FCF}", "A\x{9FD5}") == ($v >= 32 ? 1 : -1));
- ok($overCJK->cmp("a\x{9FD5}", "A\x{9FD6}") == -1);
- ok($overCJK->cmp("a\x{9FD6}", "A\x{9FDF}") == -1);
+ ok($overCJK->cmp("a\x{9FD5}", "A\x{9FD6}") == ($v >= 36 ? 1 : -1));
+ ok($overCJK->cmp("a\x{9FD6}", "A\x{9FDF}") == ($v >= 36 ? 1 : -1));
+ ok($overCJK->cmp("a\x{9FDF}", "A\x{9FEA}") == ($v >= 36 ? 1 : -1));
+ ok($overCJK->cmp("a\x{9FEA}", "A\x{9FEB}") == -1);
+ ok($overCJK->cmp("a\x{9FEB}", "A\x{9FEF}") == -1);
+ ok($overCJK->cmp("a\x{9FEF}", "A\x{9FFF}") == -1);
}
diff --git a/cpan/Unicode-Collate/t/tangut.t b/cpan/Unicode-Collate/t/tangut.t
index 76ff22da7f..171a205661 100644
--- a/cpan/Unicode-Collate/t/tangut.t
+++ b/cpan/Unicode-Collate/t/tangut.t
@@ -16,7 +16,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..355\n"; } # 5 + 25 x @Versions
+BEGIN { $| = 1; print "1..380\n"; } # 5 + 25 x @Versions
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -33,7 +33,7 @@ ok(1);
#########################
-my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34);
+my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36);
my $Collator = Unicode::Collate->new(
table => 'keys.txt',
diff --git a/cpan/Unicode-Collate/t/view.t b/cpan/Unicode-Collate/t/view.t
index f3472e1073..63a0e922be 100644
--- a/cpan/Unicode-Collate/t/view.t
+++ b/cpan/Unicode-Collate/t/view.t
@@ -16,7 +16,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..114\n"; } # 62 + 4 x @Versions
+BEGIN { $| = 1; print "1..174\n"; } # 62 + 8 x @Versions
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -268,26 +268,35 @@ ok($el->viewSortKey("L\x{FF2C}\x{216C}\x{2112}\x{24C1}"),
##### 62
-my @Versions = (9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34);
+my @Versions = (9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36);
for my $v (@Versions) {
$Collator->change(UCA_Version => $v);
my $app = $v >= 26 ? ' |]' : ']';
+ my $sec = $v >= 36 ? '' : ' FFFF';
$Collator->change(variable => 'Shifted', level => 4);
ok($Collator->viewSortKey("1+2"),
'[0A0C 0A0D | 0020 0020 | 0002 0002 | FFFF 039F FFFF'.$app);
+ ok($Collator->viewSortKey("\x{4E02}"),
+ '[FB40 CE02 | 0020 | 0002 | FFFF'.$sec.$app);
$Collator->change(variable => 'Shift-Trimmed');
ok($Collator->viewSortKey("1+2"),
'[0A0C 0A0D | 0020 0020 | 0002 0002 | 039F'.$app);
+ ok($Collator->viewSortKey("\x{4E02}"),
+ '[FB40 CE02 | 0020 | 0002 |'.$app);
$Collator->change(variable => 'Non-ignorable', level => 3);
ok($Collator->viewSortKey("1+2"),
'[0A0C 039F 0A0D | 0020 0020 0020 | 0002 0002 0002 |]');
+ ok($Collator->viewSortKey("\x{4E02}"),
+ '[FB40 CE02 | 0020 | 0002 |]');
$Collator->change(variable => 'Blanked');
ok($Collator->viewSortKey("1+2"),
'[0A0C 0A0D | 0020 0020 | 0002 0002 |]');
+ ok($Collator->viewSortKey("\x{4E02}"),
+ '[FB40 CE02 | 0020 | 0002 |]');
}