summaryrefslogtreecommitdiff
path: root/cpan
diff options
context:
space:
mode:
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>2010-08-23 17:07:51 +0100
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>2010-08-23 17:08:30 +0100
commit64dc7822f60bee2c3c7ba145a3ed170e6ec9ab34 (patch)
treeb8d4febea0b0028705f0bc224c06a863eade806e /cpan
parent829cd18aa7f45221b0c0a3d4893cb4377bef2063 (diff)
downloadperl-64dc7822f60bee2c3c7ba145a3ed170e6ec9ab34.tar.gz
Update Unicode-Collate to CPAN version 0.57
[DELTA] 0.57 Sun Aug 22 22:39:58 2010 - Unicode::Collate::Locale newly supports locales: ca, et, fi, lv, sk, sl.
Diffstat (limited to 'cpan')
-rw-r--r--cpan/Unicode-Collate/Changes3
-rw-r--r--cpan/Unicode-Collate/Collate.pm2
-rw-r--r--cpan/Unicode-Collate/Collate/Locale.pm38
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/ca.pl17
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/et.pl32
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/fi.pl51
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/lv.pl37
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/sk.pl28
-rw-r--r--cpan/Unicode-Collate/Collate/Locale/sl.pl17
-rw-r--r--cpan/Unicode-Collate/README2
-rw-r--r--cpan/Unicode-Collate/t/loc_ca.t72
-rw-r--r--cpan/Unicode-Collate/t/loc_es.t14
-rw-r--r--cpan/Unicode-Collate/t/loc_estr.t14
-rw-r--r--cpan/Unicode-Collate/t/loc_et.t70
-rw-r--r--cpan/Unicode-Collate/t/loc_fi.t118
-rw-r--r--cpan/Unicode-Collate/t/loc_lv.t79
-rw-r--r--cpan/Unicode-Collate/t/loc_sk.t69
-rw-r--r--cpan/Unicode-Collate/t/loc_sl.t49
18 files changed, 691 insertions, 21 deletions
diff --git a/cpan/Unicode-Collate/Changes b/cpan/Unicode-Collate/Changes
index 6028db66b3..62fa837977 100644
--- a/cpan/Unicode-Collate/Changes
+++ b/cpan/Unicode-Collate/Changes
@@ -1,5 +1,8 @@
Revision history for Perl module Unicode::Collate.
+0.57 Sun Aug 22 22:39:58 2010
+ - Unicode::Collate::Locale newly supports locales: ca, et, fi, lv, sk, sl.
+
0.56 Sun Aug 8 20:24:03 2010
- Unicode::Collate::Locale newly supports locales: eo, nb, ro, sv.
! renamed t/locale_{xy}.t to t/loc_{xy}.t (for safer 8.3 names)
diff --git a/cpan/Unicode-Collate/Collate.pm b/cpan/Unicode-Collate/Collate.pm
index 80f1850194..a1da1c9568 100644
--- a/cpan/Unicode-Collate/Collate.pm
+++ b/cpan/Unicode-Collate/Collate.pm
@@ -14,7 +14,7 @@ use File::Spec;
no warnings 'utf8';
-our $VERSION = '0.56';
+our $VERSION = '0.57';
our $PACKAGE = __PACKAGE__;
my @Path = qw(Unicode Collate);
diff --git a/cpan/Unicode-Collate/Collate/Locale.pm b/cpan/Unicode-Collate/Collate/Locale.pm
index 955c81a6ac..204b8c3b17 100644
--- a/cpan/Unicode-Collate/Collate/Locale.pm
+++ b/cpan/Unicode-Collate/Collate/Locale.pm
@@ -4,7 +4,7 @@ use strict;
use Carp;
use base qw(Unicode::Collate);
-our $VERSION = '0.56';
+our $VERSION = '0.57';
use File::Spec;
@@ -12,7 +12,9 @@ use File::Spec;
my $KeyPath = File::Spec->catfile('allkeys.txt');
my $PL_EXT = '.pl';
-my %LocaleFile = map { ($_, $_) } qw(cs eo es fr nn pl ro sv);
+my %LocaleFile = map { ($_, $_) } qw(
+ ca cs eo es et fi fr lv nn pl ro sk sl sv
+);
$LocaleFile{'default'} = '';
$LocaleFile{'es__traditional'} = 'es_trad';
$LocaleFile{'nb'} = 'nn';
@@ -48,6 +50,10 @@ sub new {
my $filepath = File::Spec->catfile($ModPath, $file.$PL_EXT);
$href = do $filepath;
}
+
+ if (exists $hash{table}) {
+ croak "your table can't be used with Unicode::Collate::Locale";
+ }
$href->{table} = $KeyPath;
while (my($k,$v) = each %$href) {
@@ -98,11 +104,11 @@ C<es_ES_traditional> for Spanish in Spain (Traditional),
If C<$localename> is not defined,
fallback is selected in the following order:
- 1. language_territory_variant
- 2. language_territory
- 3. language__variant
- 4. language
- 5. default
+ 1. language_territory_variant
+ 2. language_territory
+ 3. language__variant
+ 4. language
+ 5. default
Tailoring tags provided by C<Unicode::Collate> are allowed
as long as they are not used for C<'locale'> support.
@@ -113,10 +119,10 @@ E.g. a collator for French, which ignores diacritics and case difference
(i.e. level 1), with reversed case ordering and no normalization.
Unicode::Collate::Locale->new(
- level => 1,
- locale => 'fr',
- upper_before_lower => 1,
- normalization => undef
+ level => 1,
+ locale => 'fr',
+ upper_before_lower => 1,
+ normalization => undef
)
=head2 Methods
@@ -139,17 +145,23 @@ this method returns a string C<'default'> meaning no special tailoring.
=head2 A list of tailorable locales
- locale name description
-
+ locale name description
+ ----------------------------------------------------------
+ ca Catalan
cs Czech
eo Esperanto
es Spanish
es__traditional Spanish ('ch' and 'll' as a grapheme)
+ et Estonian
+ fi Finnish
fr French
+ lv Latvian
nb Norwegian Bokmal
nn Norwegian Nynorsk
pl Polish
ro Romanian
+ sk Slovak
+ sl Slovenian
sv Swedish
=head1 AUTHOR
diff --git a/cpan/Unicode-Collate/Collate/Locale/ca.pl b/cpan/Unicode-Collate/Collate/Locale/ca.pl
new file mode 100644
index 0000000000..692ec50ea6
--- /dev/null
+++ b/cpan/Unicode-Collate/Collate/Locale/ca.pl
@@ -0,0 +1,17 @@
++{
+ backwards => 2,
+ entry => <<'ENTRY', # for DUCET v5.2.0
+0063 0068 ; [.123E.0020.0002.0063] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0063 0048 ; [.123E.0020.0007.0063][.0.0.2.0] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
+0043 0068 ; [.123E.0020.0007.0043][.0.0.8.0] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.123E.0020.0008.0043] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+006C 006C ; [.1331.0020.0002.006C][.0.0.1.0] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
+006C 00B7 006C ; [.1331.0020.0002.006C][.0.0.7.0] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
+006C 004C ; [.1331.0020.0007.006C][.0.0.2.0][.0.0.1.0] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L>
+006C 00B7 004C ; [.1331.0020.0007.006C][.0.0.2.0][.0.0.7.0] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
+004C 006C ; [.1331.0020.0007.004C][.0.0.8.0][.0.0.1.0] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
+004C 00B7 006C ; [.1331.0020.0007.004C][.0.0.8.0][.0.0.7.0] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
+004C 004C ; [.1331.0020.0008.004C][.0.0.1.0] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
+004C 00B7 004C ; [.1331.0020.0008.004C][.0.0.7.0] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
+ENTRY
+};
diff --git a/cpan/Unicode-Collate/Collate/Locale/et.pl b/cpan/Unicode-Collate/Collate/Locale/et.pl
new file mode 100644
index 0000000000..15a24198d0
--- /dev/null
+++ b/cpan/Unicode-Collate/Collate/Locale/et.pl
@@ -0,0 +1,32 @@
++{
+ entry => <<'ENTRY', # for DUCET v5.2.0
+0161 ; [.1430.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1430.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1430.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1430.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
+007A ; [.1431.0020.0002.007A] # LATIN SMALL LETTER Z
+005A ; [.1431.0020.0008.005A] # LATIN CAPITAL LETTER Z
+017E ; [.1432.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1432.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1432.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1432.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
+0077 ; [.147B.0021.0002.0077] # LATIN SMALL LETTER W
+0057 ; [.147B.0021.0008.0057] # LATIN CAPITAL LETTER W
+00F5 ; [.1493.0020.0002.00F5] # LATIN SMALL LETTER O WITH TILDE
+006F 0303 ; [.1493.0020.0002.00F5] # LATIN SMALL LETTER O WITH TILDE
+00D5 ; [.1493.0020.0008.00D5] # LATIN CAPITAL LETTER O WITH TILDE
+004F 0303 ; [.1493.0020.0008.00D5] # LATIN CAPITAL LETTER O WITH TILDE
+00E4 ; [.1494.0020.0002.00E4] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1494.0020.0002.00E4] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1494.0020.0008.00C4] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1494.0020.0008.00C4] # LATIN CAPITAL LETTER A WITH DIAERESIS
+00F6 ; [.1495.0020.0002.00F6] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1495.0020.0002.00F6] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1495.0020.0008.00D6] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1495.0020.0008.00D6] # LATIN CAPITAL LETTER O WITH DIAERESIS
+00FC ; [.1496.0020.0002.00FC] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1496.0020.0002.00FC] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1496.0020.0008.00DC] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1496.0020.0008.00DC] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ENTRY
+};
diff --git a/cpan/Unicode-Collate/Collate/Locale/fi.pl b/cpan/Unicode-Collate/Collate/Locale/fi.pl
new file mode 100644
index 0000000000..96e3491db1
--- /dev/null
+++ b/cpan/Unicode-Collate/Collate/Locale/fi.pl
@@ -0,0 +1,51 @@
++{
+# in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
+ entry => <<'ENTRY', # for DUCET v5.2.0
+0111 ; [.1250.0021.0002.0111][.0000.007D.0002.0335] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1250.0021.0008.0110][.0000.007D.0002.0335] # LATIN CAPITAL LETTER D WITH STROKE
+01E5 ; [.12B0.0021.0002.01E5][.0000.007D.0002.0335] # LATIN SMALL LETTER G WITH STROKE
+01E4 ; [.12B0.0021.0008.01E4][.0000.007D.0002.0335] # LATIN CAPITAL LETTER G WITH STROKE
+014B ; [.136D.0021.0002.014B][.0000.007D.0002.0335] # LATIN SMALL LETTER ENG
+014A ; [.136D.0021.0008.014A][.0000.007D.0002.0335] # LATIN CAPITAL LETTER ENG
+0167 ; [.1433.0021.0002.0167][.0000.007D.0002.0335] # LATIN SMALL LETTER T WITH STROKE
+0166 ; [.1433.0021.0008.0166][.0000.007D.0002.0335] # LATIN CAPITAL LETTER T WITH STROKE
+0077 ; [.147B.0021.0002.0077] # LATIN SMALL LETTER W
+0057 ; [.147B.0021.0008.0057] # LATIN CAPITAL LETTER W
+00FC ; [.149C.0021.0002.00FC] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.149C.0021.0002.00FC] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.149C.0021.0008.00DC] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.149C.0021.0008.00DC] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0292 ; [.14AD.0021.0002.0292][.0000.007D.0002.0335] # LATIN SMALL LETTER EZH
+01B7 ; [.14AD.0021.0008.01B7][.0000.007D.0002.0335] # LATIN CAPITAL LETTER EZH
+01EF ; [.14AD.0021.0002.0292][.0000.007D.0002.0335][.0000.0041.0002.030C] # LATIN SMALL LETTER EZH WITH CARON
+01EE ; [.14AD.0021.0008.01B7][.0000.007D.0002.0335][.0000.0041.0002.030C] # LATIN CAPITAL LETTER EZH WITH CARON
+00E5 ; [.14AE.0020.0002.00E5] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.14AE.0020.0002.00E5] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.14AE.0020.0008.00C5] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.14AE.0020.0008.00C5] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.14AE.0020.0008.00C5] # ANGSTROM SIGN
+01FB ; [.14AE.0020.0002.00E5][.0000.0032.0002.0301] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.14AE.0020.0008.00C5][.0000.0032.0002.0301] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+00E4 ; [.14AF.0020.0002.00E4] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.14AF.0020.0002.00E4] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.14AF.0020.0008.00C4] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.14AF.0020.0008.00C4] # LATIN CAPITAL LETTER A WITH DIAERESIS
+00E6 ; [.14AF.0021.0002.00E6] # LATIN SMALL LETTER AE
+00C6 ; [.14AF.0021.0008.00C6] # LATIN CAPITAL LETTER AE
+1D2D ; [.14AF.0021.0014.1D2D] # MODIFIER LETTER CAPITAL AE
+01FD ; [.14AF.0021.0002.00E6][.0000.0032.0002.0301] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.14AF.0021.0008.00C6][.0000.0032.0002.0301] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.14AF.0021.0002.00E6][.0000.005B.0002.0304] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.14AF.0021.0008.00C6][.0000.005B.0002.0304] # LATIN CAPITAL LETTER AE WITH MACRON
+00F6 ; [.14B0.0020.0002.00F6] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.14B0.0020.0002.00F6] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.14B0.0020.0008.00D6] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.14B0.0020.0008.00D6] # LATIN CAPITAL LETTER O WITH DIAERESIS
+00F8 ; [.14B0.0021.0002.00F8] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.14B0.0021.0002.00F8] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.14B0.0021.0008.00D8] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.14B0.0021.0008.00D8] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.14B0.0021.0002.00F8][.0000.0032.0002.0301] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.14B0.0021.0008.00D8][.0000.0032.0002.0301] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+ENTRY
+};
diff --git a/cpan/Unicode-Collate/Collate/Locale/lv.pl b/cpan/Unicode-Collate/Collate/Locale/lv.pl
new file mode 100644
index 0000000000..15ab6e91b6
--- /dev/null
+++ b/cpan/Unicode-Collate/Collate/Locale/lv.pl
@@ -0,0 +1,37 @@
++{
+# ignored: Y < J
+ entry => <<'ENTRY', # for DUCET v5.2.0
+010D ; [.124F.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.124F.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
+010C ; [.124F.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.124F.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON
+0123 ; [.12D2.0020.0002.0123] # LATIN SMALL LETTER G WITH CEDILLA
+0067 0327 ; [.12D2.0020.0002.0123] # LATIN SMALL LETTER G WITH CEDILLA
+0122 ; [.12D2.0020.0008.0122] # LATIN CAPITAL LETTER G WITH CEDILLA
+0047 0327 ; [.12D2.0020.0008.0122] # LATIN CAPITAL LETTER G WITH CEDILLA
+0137 ; [.132F.0020.0002.0137] # LATIN SMALL LETTER K WITH CEDILLA
+006B 0327 ; [.132F.0020.0002.0137] # LATIN SMALL LETTER K WITH CEDILLA
+0136 ; [.132F.0020.0008.0136] # LATIN CAPITAL LETTER K WITH CEDILLA
+004B 0327 ; [.132F.0020.0008.0136] # LATIN CAPITAL LETTER K WITH CEDILLA
+013C ; [.135E.0020.0002.013C] # LATIN SMALL LETTER L WITH CEDILLA
+006C 0327 ; [.135E.0020.0002.013C] # LATIN SMALL LETTER L WITH CEDILLA
+013B ; [.135E.0020.0008.013B] # LATIN CAPITAL LETTER L WITH CEDILLA
+004C 0327 ; [.135E.0020.0008.013B] # LATIN CAPITAL LETTER L WITH CEDILLA
+0146 ; [.138D.0020.0002.0146] # LATIN SMALL LETTER N WITH CEDILLA
+006E 0327 ; [.138D.0020.0002.0146] # LATIN SMALL LETTER N WITH CEDILLA
+0145 ; [.138D.0020.0008.0145] # LATIN CAPITAL LETTER N WITH CEDILLA
+004E 0327 ; [.138D.0020.0008.0145] # LATIN CAPITAL LETTER N WITH CEDILLA
+0157 ; [.140F.0020.0002.0157] # LATIN SMALL LETTER R WITH CEDILLA
+0072 0327 ; [.140F.0020.0002.0157] # LATIN SMALL LETTER R WITH CEDILLA
+0156 ; [.140F.0020.0008.0156] # LATIN CAPITAL LETTER R WITH CEDILLA
+0052 0327 ; [.140F.0020.0008.0156] # LATIN CAPITAL LETTER R WITH CEDILLA
+0161 ; [.1432.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1432.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1432.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1432.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.14C9.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.14C9.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.14C9.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.14C9.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
+ENTRY
+};
diff --git a/cpan/Unicode-Collate/Collate/Locale/sk.pl b/cpan/Unicode-Collate/Collate/Locale/sk.pl
new file mode 100644
index 0000000000..f248d1b20c
--- /dev/null
+++ b/cpan/Unicode-Collate/Collate/Locale/sk.pl
@@ -0,0 +1,28 @@
++{
+ entry => <<'ENTRY', # for DUCET v5.2.0
+00E4 ; [.1210.0020.0002.00E4] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1210.0020.0002.00E4] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1210.0020.0008.00C4] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1210.0020.0008.00C4] # LATIN CAPITAL LETTER A WITH DIAERESIS
+010D ; [.123E.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.123E.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
+010C ; [.123E.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.123E.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON
+0063 0068 ; [.12D4.0020.0002.0063] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0063 0048 ; [.12D4.0020.0007.0063][.0.0.2.0] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
+0043 0068 ; [.12D4.0020.0007.0043][.0.0.8.0] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.12D4.0020.0008.0043] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+00F4 ; [.138F.0020.0002.00F4] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.138F.0020.0002.00F4] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.138F.0020.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.138F.0020.0008.00D4] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0161 ; [.1411.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1411.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1411.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1411.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.14AE.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.14AE.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.14AE.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.14AE.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
+ENTRY
+};
diff --git a/cpan/Unicode-Collate/Collate/Locale/sl.pl b/cpan/Unicode-Collate/Collate/Locale/sl.pl
new file mode 100644
index 0000000000..37d891d4c9
--- /dev/null
+++ b/cpan/Unicode-Collate/Collate/Locale/sl.pl
@@ -0,0 +1,17 @@
++{
+# c-acute not included
+ entry => <<'ENTRY', # for DUCET v5.2.0
+010D ; [.123E.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.123E.0020.0002.010D] # LATIN SMALL LETTER C WITH CARON
+010C ; [.123E.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.123E.0020.0008.010C] # LATIN CAPITAL LETTER C WITH CARON
+0161 ; [.1411.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1411.0020.0002.0161] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1411.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1411.0020.0008.0160] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.14AE.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.14AE.0020.0002.017E] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.14AE.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.14AE.0020.0008.017D] # LATIN CAPITAL LETTER Z WITH CARON
+ENTRY
+};
diff --git a/cpan/Unicode-Collate/README b/cpan/Unicode-Collate/README
index 06f6d003e7..4d8f05e359 100644
--- a/cpan/Unicode-Collate/README
+++ b/cpan/Unicode-Collate/README
@@ -1,4 +1,4 @@
-Unicode/Collate version 0.56
+Unicode/Collate version 0.57
===============================
NAME
diff --git a/cpan/Unicode-Collate/t/loc_ca.t b/cpan/Unicode-Collate/t/loc_ca.t
new file mode 100644
index 0000000000..2149194b34
--- /dev/null
+++ b/cpan/Unicode-Collate/t/loc_ca.t
@@ -0,0 +1,72 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 38;
+
+my $dot = pack 'U', 0xB7;
+
+my $objCa = Unicode::Collate::Locale->
+ new(locale => 'CA', normalization => undef);
+
+ok(1);
+ok($objCa->getlocale, 'ca');
+
+$objCa->change(level => 1);
+
+ok($objCa->lt("c", "ch"));
+ok($objCa->lt("cz", "ch"));
+ok($objCa->gt("d", "ch"));
+ok($objCa->lt("l", "ll"));
+ok($objCa->lt("lz", "ll"));
+ok($objCa->gt("m", "ll"));
+
+# 8
+
+ok($objCa->eq("a\x{300}a", "aa\x{300}"));
+
+$objCa->change(level => 2);
+
+ok($objCa->lt("a\x{300}a", "aa\x{300}"));
+ok($objCa->gt("Ca\x{300}ca\x{302}", "ca\x{302}ca\x{300}"));
+ok($objCa->gt("ca\x{300}ca\x{302}", "Ca\x{302}ca\x{300}"));
+
+# 12
+
+ok($objCa->eq("ch", "cH"));
+ok($objCa->eq("cH", "Ch"));
+ok($objCa->eq("Ch", "CH"));
+
+ok($objCa->eq("ll", "lL"));
+ok($objCa->eq("lL", "Ll"));
+ok($objCa->eq("Ll", "LL"));
+ok($objCa->eq("l${dot}l", "lL"));
+ok($objCa->eq("l${dot}L", "Ll"));
+ok($objCa->eq("L${dot}l", "LL"));
+ok($objCa->eq("ll","l${dot}l"));
+ok($objCa->eq("lL","l${dot}L"));
+ok($objCa->eq("Ll","L${dot}l"));
+ok($objCa->eq("LL","L${dot}L"));
+
+# 25
+
+$objCa->change(level => 3);
+
+ok($objCa->lt("ch", "cH"));
+ok($objCa->lt("cH", "Ch"));
+ok($objCa->lt("Ch", "CH"));
+
+ok($objCa->lt("ll", "lL"));
+ok($objCa->lt("lL", "Ll"));
+ok($objCa->lt("Ll", "LL"));
+ok($objCa->lt("l${dot}l", "lL"));
+ok($objCa->lt("l${dot}L", "Ll"));
+ok($objCa->lt("L${dot}l", "LL"));
+ok($objCa->lt("ll","l${dot}l"));
+ok($objCa->lt("lL","l${dot}L"));
+ok($objCa->lt("Ll","L${dot}l"));
+ok($objCa->lt("LL","L${dot}L"));
+
+# 38
diff --git a/cpan/Unicode-Collate/t/loc_es.t b/cpan/Unicode-Collate/t/loc_es.t
index 228a58cbda..54ac671350 100644
--- a/cpan/Unicode-Collate/t/loc_es.t
+++ b/cpan/Unicode-Collate/t/loc_es.t
@@ -4,7 +4,7 @@ use warnings;
use Unicode::Collate::Locale;
use Test;
-plan tests => 22;
+plan tests => 26;
my $objEs = Unicode::Collate::Locale->
new(locale => 'ES', normalization => undef);
@@ -25,15 +25,23 @@ ok($objEs->gt("o", "n\x{303}"));
# 10
+ok($objEs->eq("a\x{300}a", "aa\x{300}"));
+
$objEs->change(level => 2);
+ok($objEs->gt("a\x{300}a", "aa\x{300}"));
+ok($objEs->lt("Ca\x{300}ca\x{302}", "ca\x{302}ca\x{300}"));
+ok($objEs->lt("ca\x{300}ca\x{302}", "Ca\x{302}ca\x{300}"));
+
+# 14
+
ok($objEs->eq("ch", "Ch"));
ok($objEs->eq("Ch", "CH"));
ok($objEs->eq("ll", "Ll"));
ok($objEs->eq("Ll", "LL"));
ok($objEs->eq("n\x{303}", "N\x{303}"));
-# 15
+# 19
$objEs->change(level => 3);
@@ -45,4 +53,4 @@ ok($objEs->lt("n\x{303}", "N\x{303}"));
ok($objEs->eq("n\x{303}", pack('U', 0xF1)));
ok($objEs->eq("N\x{303}", pack('U', 0xD1)));
-# 22
+# 26
diff --git a/cpan/Unicode-Collate/t/loc_estr.t b/cpan/Unicode-Collate/t/loc_estr.t
index b938b49fe5..963c3569d5 100644
--- a/cpan/Unicode-Collate/t/loc_estr.t
+++ b/cpan/Unicode-Collate/t/loc_estr.t
@@ -4,7 +4,7 @@ use warnings;
use Unicode::Collate::Locale;
use Test;
-plan tests => 22;
+plan tests => 26;
my $objEsTrad = Unicode::Collate::Locale->
new(locale => 'ES-trad', normalization => undef);
@@ -25,15 +25,23 @@ ok($objEsTrad->gt("o", "n\x{303}"));
# 10
+ok($objEsTrad->eq("a\x{300}a", "aa\x{300}"));
+
$objEsTrad->change(level => 2);
+ok($objEsTrad->gt("a\x{300}a", "aa\x{300}"));
+ok($objEsTrad->lt("Ca\x{300}ca\x{302}", "ca\x{302}ca\x{300}"));
+ok($objEsTrad->lt("ca\x{300}ca\x{302}", "Ca\x{302}ca\x{300}"));
+
+# 14
+
ok($objEsTrad->eq("ch", "Ch"));
ok($objEsTrad->eq("Ch", "CH"));
ok($objEsTrad->eq("ll", "Ll"));
ok($objEsTrad->eq("Ll", "LL"));
ok($objEsTrad->eq("n\x{303}", "N\x{303}"));
-# 15
+# 19
$objEsTrad->change(level => 3);
@@ -45,4 +53,4 @@ ok($objEsTrad->lt("n\x{303}", "N\x{303}"));
ok($objEsTrad->eq("n\x{303}", pack('U', 0xF1)));
ok($objEsTrad->eq("N\x{303}", pack('U', 0xD1)));
-# 22
+# 26
diff --git a/cpan/Unicode-Collate/t/loc_et.t b/cpan/Unicode-Collate/t/loc_et.t
new file mode 100644
index 0000000000..d1526bfb1c
--- /dev/null
+++ b/cpan/Unicode-Collate/t/loc_et.t
@@ -0,0 +1,70 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 41;
+
+my $objEt = Unicode::Collate::Locale->
+ new(locale => 'ET', normalization => undef);
+
+ok(1);
+ok($objEt->getlocale, 'et');
+
+$objEt->change(level => 1);
+
+ok($objEt->lt("s", "s\x{30C}"));
+ok($objEt->gt("z", "s\x{30C}"));
+ok($objEt->lt("z", "z\x{30C}"));
+ok($objEt->gt("t", "z\x{30C}"));
+ok($objEt->eq("v", "w"));
+ok($objEt->lt("w", "o\x{303}"));
+ok($objEt->lt("o\x{303}", "a\x{308}"));
+ok($objEt->lt("a\x{308}", "o\x{308}"));
+ok($objEt->lt("o\x{308}", "u\x{308}"));
+ok($objEt->lt("u\x{308}", "x"));
+
+# 12
+
+$objEt->change(level => 2);
+
+ok($objEt->lt("v", "w"));
+ok($objEt->eq("s\x{30C}", "S\x{30C}"));
+ok($objEt->eq("z", "Z"));
+ok($objEt->eq("z\x{30C}", "Z\x{30C}"));
+ok($objEt->eq("w", "W"));
+ok($objEt->eq("o\x{303}", "O\x{303}"));
+ok($objEt->eq("a\x{308}", "A\x{308}"));
+ok($objEt->eq("o\x{308}", "O\x{308}"));
+ok($objEt->eq("u\x{308}", "U\x{308}"));
+
+# 21
+
+$objEt->change(level => 3);
+
+ok($objEt->lt("s\x{30C}", "S\x{30C}"));
+ok($objEt->lt("z", "Z"));
+ok($objEt->lt("z\x{30C}", "Z\x{30C}"));
+ok($objEt->lt("w", "W"));
+ok($objEt->lt("o\x{303}", "O\x{303}"));
+ok($objEt->lt("a\x{308}", "A\x{308}"));
+ok($objEt->lt("o\x{308}", "O\x{308}"));
+ok($objEt->lt("u\x{308}", "U\x{308}"));
+
+# 29
+
+ok($objEt->eq("s\x{30C}", "\x{161}"));
+ok($objEt->eq("S\x{30C}", "\x{160}"));
+ok($objEt->eq("z\x{30C}", "\x{17E}"));
+ok($objEt->eq("Z\x{30C}", "\x{17D}"));
+ok($objEt->eq("o\x{303}", pack('U', 0xF5)));
+ok($objEt->eq("O\x{303}", pack('U', 0xD5)));
+ok($objEt->eq("a\x{308}", pack('U', 0xE4)));
+ok($objEt->eq("A\x{308}", pack('U', 0xC4)));
+ok($objEt->eq("o\x{308}", pack('U', 0xF6)));
+ok($objEt->eq("O\x{308}", pack('U', 0xD6)));
+ok($objEt->eq("u\x{308}", pack('U', 0xFC)));
+ok($objEt->eq("U\x{308}", pack('U', 0xDC)));
+
+# 41
diff --git a/cpan/Unicode-Collate/t/loc_fi.t b/cpan/Unicode-Collate/t/loc_fi.t
new file mode 100644
index 0000000000..bbddc08c02
--- /dev/null
+++ b/cpan/Unicode-Collate/t/loc_fi.t
@@ -0,0 +1,118 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 70;
+
+my $uuml = pack 'U', 0xFC;
+my $Uuml = pack 'U', 0xDC;
+my $arng = pack 'U', 0xE5;
+my $Arng = pack 'U', 0xC5;
+my $auml = pack 'U', 0xE4;
+my $Auml = pack 'U', 0xC4;
+my $ae = pack 'U', 0xE6;
+my $AE = pack 'U', 0xC6;
+my $ouml = pack 'U', 0xF6;
+my $Ouml = pack 'U', 0xD6;
+my $ostk = pack 'U', 0xF8;
+my $Ostk = pack 'U', 0xD8;
+
+my $objFi = Unicode::Collate::Locale->
+ new(locale => 'FI', normalization => undef);
+
+ok(1);
+ok($objFi->getlocale, 'fi');
+
+$objFi->change(level => 1);
+
+ok($objFi->lt('z', $arng));
+ok($objFi->lt($arng, $auml));
+ok($objFi->lt($auml, $ouml));
+
+# 5
+
+ok($objFi->eq("d\x{335}", "\x{111}"));
+ok($objFi->eq("g\x{335}", "\x{1E5}"));
+ok($objFi->eq("n\x{335}", "\x{14B}"));
+ok($objFi->eq("t\x{335}", "\x{167}"));
+ok($objFi->eq("z\x{335}", "\x{292}"));
+ok($objFi->eq('v', 'w'));
+ok($objFi->eq('y', $uuml));
+ok($objFi->eq($auml, $ae));
+ok($objFi->eq($ouml, $ostk));
+
+# 14
+
+$objFi->change(level => 2);
+
+ok($objFi->lt("d\x{335}", "\x{111}"));
+ok($objFi->lt("g\x{335}", "\x{1E5}"));
+ok($objFi->lt("n\x{335}", "\x{14B}"));
+ok($objFi->lt("t\x{335}", "\x{167}"));
+ok($objFi->lt("z\x{335}", "\x{292}"));
+ok($objFi->lt('v', 'w'));
+ok($objFi->lt('y', $uuml));
+ok($objFi->lt($auml, $ae));
+ok($objFi->lt($ouml, $ostk));
+
+# 23
+
+ok($objFi->eq("\x{111}", "\x{110}"));
+ok($objFi->eq("\x{1E5}", "\x{1E4}"));
+ok($objFi->eq("\x{14B}", "\x{14A}"));
+ok($objFi->eq("\x{167}", "\x{166}"));
+ok($objFi->eq("\x{292}", "\x{1B7}"));
+ok($objFi->eq('w', 'W'));
+ok($objFi->eq($uuml, $Uuml));
+ok($objFi->eq($arng, $Arng));
+ok($objFi->eq($auml, $Auml));
+ok($objFi->eq($ae, $AE));
+ok($objFi->eq($AE, "\x{1D2D}"));
+ok($objFi->eq($ouml, $Ouml));
+ok($objFi->eq($ostk, $Ostk));
+
+# 36
+
+$objFi->change(level => 3);
+
+ok($objFi->lt("\x{111}", "\x{110}"));
+ok($objFi->lt("\x{1E5}", "\x{1E4}"));
+ok($objFi->lt("\x{14B}", "\x{14A}"));
+ok($objFi->lt("\x{167}", "\x{166}"));
+ok($objFi->lt("\x{292}", "\x{1B7}"));
+ok($objFi->lt('w', 'W'));
+ok($objFi->lt($uuml, $Uuml));
+ok($objFi->lt($arng, $Arng));
+ok($objFi->lt($auml, $Auml));
+ok($objFi->lt($ae, $AE));
+ok($objFi->lt($AE, "\x{1D2D}"));
+ok($objFi->lt($ouml, $Ouml));
+ok($objFi->lt($ostk, $Ostk));
+
+# 49
+
+ok($objFi->eq("u\x{308}", $uuml));
+ok($objFi->eq("U\x{308}", $Uuml));
+ok($objFi->eq("\x{1EF}", "\x{292}\x{30C}"));
+ok($objFi->eq("\x{1EE}", "\x{1B7}\x{30C}"));
+ok($objFi->eq("a\x{30A}", $arng));
+ok($objFi->eq("A\x{30A}", $Arng));
+ok($objFi->eq("A\x{30A}", "\x{212B}"));
+ok($objFi->eq("a\x{30A}\x{301}", "\x{1FB}"));
+ok($objFi->eq("A\x{30A}\x{301}", "\x{1FA}"));
+ok($objFi->eq("a\x{308}", $auml));
+ok($objFi->eq("A\x{308}", $Auml));
+ok($objFi->eq("\x{1FD}", "$ae\x{301}"));
+ok($objFi->eq("\x{1FC}", "$AE\x{301}"));
+ok($objFi->eq("\x{1E3}", "$ae\x{304}"));
+ok($objFi->eq("\x{1E2}", "$AE\x{304}"));
+ok($objFi->eq("o\x{308}", $ouml));
+ok($objFi->eq("O\x{308}", $Ouml));
+ok($objFi->eq("o\x{338}", $ostk));
+ok($objFi->eq("O\x{338}", $Ostk));
+ok($objFi->eq("o\x{338}\x{301}", "\x{1FF}"));
+ok($objFi->eq("O\x{338}\x{301}", "\x{1FE}"));
+
+# 70
diff --git a/cpan/Unicode-Collate/t/loc_lv.t b/cpan/Unicode-Collate/t/loc_lv.t
new file mode 100644
index 0000000000..6f411663fb
--- /dev/null
+++ b/cpan/Unicode-Collate/t/loc_lv.t
@@ -0,0 +1,79 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 50;
+
+my $objLv = Unicode::Collate::Locale->
+ new(locale => 'LV', normalization => undef);
+
+ok(1);
+ok($objLv->getlocale, 'lv');
+
+$objLv->change(level => 1);
+
+ok($objLv->lt("c", "c\x{30C}"));
+ok($objLv->gt("d", "c\x{30C}"));
+ok($objLv->lt("g", "g\x{327}"));
+ok($objLv->gt("h", "g\x{327}"));
+ok($objLv->lt("k", "k\x{327}"));
+ok($objLv->gt("l", "k\x{327}"));
+ok($objLv->lt("l", "l\x{327}"));
+ok($objLv->gt("m", "l\x{327}"));
+ok($objLv->lt("n", "n\x{327}"));
+ok($objLv->gt("o", "n\x{327}"));
+ok($objLv->lt("r", "r\x{327}"));
+ok($objLv->gt("s", "r\x{327}"));
+ok($objLv->lt("s", "s\x{30C}"));
+ok($objLv->gt("t", "s\x{30C}"));
+ok($objLv->lt("z", "z\x{30C}"));
+ok($objLv->lt("z\x{30C}", "\x{292}"));
+
+# 18
+
+$objLv->change(level => 2);
+
+ok($objLv->eq("c\x{30C}", "C\x{30C}"));
+ok($objLv->eq("g\x{327}", "G\x{327}"));
+ok($objLv->eq("k\x{327}", "K\x{327}"));
+ok($objLv->eq("l\x{327}", "L\x{327}"));
+ok($objLv->eq("n\x{327}", "N\x{327}"));
+ok($objLv->eq("r\x{327}", "R\x{327}"));
+ok($objLv->eq("s\x{30C}", "S\x{30C}"));
+ok($objLv->eq("z\x{30C}", "Z\x{30C}"));
+
+# 26
+
+$objLv->change(level => 3);
+
+ok($objLv->lt("c\x{30C}", "C\x{30C}"));
+ok($objLv->lt("g\x{327}", "G\x{327}"));
+ok($objLv->lt("k\x{327}", "K\x{327}"));
+ok($objLv->lt("l\x{327}", "L\x{327}"));
+ok($objLv->lt("n\x{327}", "N\x{327}"));
+ok($objLv->lt("r\x{327}", "R\x{327}"));
+ok($objLv->lt("s\x{30C}", "S\x{30C}"));
+ok($objLv->lt("z\x{30C}", "Z\x{30C}"));
+
+# 34
+
+ok($objLv->eq("c\x{30C}", "\x{10D}"));
+ok($objLv->eq("C\x{30C}", "\x{10C}"));
+ok($objLv->eq("g\x{327}", "\x{123}"));
+ok($objLv->eq("G\x{327}", "\x{122}"));
+ok($objLv->eq("k\x{327}", "\x{137}"));
+ok($objLv->eq("K\x{327}", "\x{136}"));
+ok($objLv->eq("l\x{327}", "\x{13C}"));
+ok($objLv->eq("L\x{327}", "\x{13B}"));
+ok($objLv->eq("n\x{327}", "\x{146}"));
+ok($objLv->eq("N\x{327}", "\x{145}"));
+ok($objLv->eq("r\x{327}", "\x{157}"));
+ok($objLv->eq("R\x{327}", "\x{156}"));
+ok($objLv->eq("s\x{30C}", "\x{161}"));
+ok($objLv->eq("S\x{30C}", "\x{160}"));
+ok($objLv->eq("z\x{30C}", "\x{17E}"));
+ok($objLv->eq("Z\x{30C}", "\x{17D}"));
+
+# 50
diff --git a/cpan/Unicode-Collate/t/loc_sk.t b/cpan/Unicode-Collate/t/loc_sk.t
new file mode 100644
index 0000000000..cf762f7bce
--- /dev/null
+++ b/cpan/Unicode-Collate/t/loc_sk.t
@@ -0,0 +1,69 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 40;
+
+my $objSk = Unicode::Collate::Locale->
+ new(locale => 'SK', normalization => undef);
+
+ok(1);
+ok($objSk->getlocale, 'sk');
+
+$objSk->change(level => 1);
+
+ok($objSk->lt("a", "a\x{308}"));
+ok($objSk->gt("b", "a\x{308}"));
+ok($objSk->lt("c", "c\x{30C}"));
+ok($objSk->gt("d", "c\x{30C}"));
+ok($objSk->lt("h", "ch"));
+ok($objSk->gt("i", "ch"));
+ok($objSk->lt("o", "o\x{302}"));
+ok($objSk->gt("p", "o\x{302}"));
+ok($objSk->lt("s", "s\x{30C}"));
+ok($objSk->gt("t", "s\x{30C}"));
+ok($objSk->lt("z", "z\x{30C}"));
+ok($objSk->lt("z\x{30C}", "\x{292}")); # U+0292 EZH
+
+# 14
+
+$objSk->change(level => 2);
+
+ok($objSk->eq("a\x{308}", "A\x{308}"));
+ok($objSk->eq("c\x{30C}", "C\x{30C}"));
+ok($objSk->eq("o\x{302}", "O\x{302}"));
+ok($objSk->eq("s\x{30C}", "S\x{30C}"));
+ok($objSk->eq("z\x{30C}", "Z\x{30C}"));
+ok($objSk->eq("ch", "cH"));
+ok($objSk->eq("cH", "Ch"));
+ok($objSk->eq("Ch", "CH"));
+
+# 22
+
+$objSk->change(level => 3);
+
+ok($objSk->lt("a\x{308}", "A\x{308}"));
+ok($objSk->lt("c\x{30C}", "C\x{30C}"));
+ok($objSk->lt("o\x{302}", "O\x{302}"));
+ok($objSk->lt("s\x{30C}", "S\x{30C}"));
+ok($objSk->lt("z\x{30C}", "Z\x{30C}"));
+ok($objSk->lt("ch", "cH"));
+ok($objSk->lt("cH", "Ch"));
+ok($objSk->lt("Ch", "CH"));
+
+# 30
+
+ok($objSk->eq("a\x{308}", pack('U', 0xE4)));
+ok($objSk->eq("A\x{308}", pack('U', 0xC4)));
+ok($objSk->eq("c\x{30C}", "\x{10D}"));
+ok($objSk->eq("C\x{30C}", "\x{10C}"));
+ok($objSk->eq("o\x{302}", pack('U', 0xF4)));
+ok($objSk->eq("O\x{302}", pack('U', 0xD4)));
+ok($objSk->eq("s\x{30C}", "\x{161}"));
+ok($objSk->eq("S\x{30C}", "\x{160}"));
+ok($objSk->eq("z\x{30C}", "\x{17E}"));
+ok($objSk->eq("Z\x{30C}", "\x{17D}"));
+
+# 40
diff --git a/cpan/Unicode-Collate/t/loc_sl.t b/cpan/Unicode-Collate/t/loc_sl.t
new file mode 100644
index 0000000000..0c5ddbbec5
--- /dev/null
+++ b/cpan/Unicode-Collate/t/loc_sl.t
@@ -0,0 +1,49 @@
+#!perl
+use strict;
+use warnings;
+use Unicode::Collate::Locale;
+
+use Test;
+plan tests => 20;
+
+my $objSl = Unicode::Collate::Locale->
+ new(locale => 'SL', normalization => undef);
+
+ok(1);
+ok($objSl->getlocale, 'sl');
+
+$objSl->change(level => 1);
+
+ok($objSl->lt("c", "c\x{30C}"));
+ok($objSl->gt("d", "c\x{30C}"));
+ok($objSl->lt("s", "s\x{30C}"));
+ok($objSl->gt("t", "s\x{30C}"));
+ok($objSl->lt("z", "z\x{30C}"));
+ok($objSl->lt("z\x{30C}", "\x{292}")); # U+0292 EZH
+
+# 8
+
+$objSl->change(level => 2);
+
+ok($objSl->eq("c\x{30C}", "C\x{30C}"));
+ok($objSl->eq("s\x{30C}", "S\x{30C}"));
+ok($objSl->eq("z\x{30C}", "Z\x{30C}"));
+
+# 11
+
+$objSl->change(level => 3);
+
+ok($objSl->lt("c\x{30C}", "C\x{30C}"));
+ok($objSl->lt("s\x{30C}", "S\x{30C}"));
+ok($objSl->lt("z\x{30C}", "Z\x{30C}"));
+
+# 14
+
+ok($objSl->eq("c\x{30C}", "\x{10D}"));
+ok($objSl->eq("C\x{30C}", "\x{10C}"));
+ok($objSl->eq("s\x{30C}", "\x{161}"));
+ok($objSl->eq("S\x{30C}", "\x{160}"));
+ok($objSl->eq("z\x{30C}", "\x{17E}"));
+ok($objSl->eq("Z\x{30C}", "\x{17D}"));
+
+# 20