diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Unicode/Collate.pm | 26 | ||||
-rw-r--r-- | lib/charnames.t | 8 |
2 files changed, 21 insertions, 13 deletions
diff --git a/lib/Unicode/Collate.pm b/lib/Unicode/Collate.pm index 8522a79f2c..43446162a9 100644 --- a/lib/Unicode/Collate.pm +++ b/lib/Unicode/Collate.pm @@ -137,24 +137,26 @@ sub parseEntry # get element my($e, $k) = split /;/, $line; my @e = _getHexArray($e); - $ele = pack('U*', @e); + { no warnings 'utf8'; $ele = pack('U*', @e); } return if defined $self->{undefChar} && $ele =~ /$self->{undefChar}/; # get sort key - if( + { no warnings 'utf8'; + if( defined $self->{ignoreName} && $name =~ /$self->{ignoreName}/ || defined $self->{ignoreChar} && $ele =~ /$self->{ignoreChar}/ - ) - { - $self->{entries}{$ele} = $self->{ignored}{$ele} = 1; - } - else - { - foreach my $arr ($k =~ /\[(\S+)\]/g) { - my $var = $arr =~ /\*/; - push @key, $self->altCE( $var, _getHexArray($arr) ); + ) + { + $self->{entries}{$ele} = $self->{ignored}{$ele} = 1; + } + else + { + foreach my $arr ($k =~ /\[(\S+)\]/g) { + my $var = $arr =~ /\*/; + push @key, $self->altCE( $var, _getHexArray($arr) ); + } + $self->{entries}{$ele} = \@key; } - $self->{entries}{$ele} = \@key; } $self->{maxlength}{ord $ele} = scalar @e if @e > 1; } diff --git a/lib/charnames.t b/lib/charnames.t index 1beecf3f71..31231270a6 100644 --- a/lib/charnames.t +++ b/lib/charnames.t @@ -12,7 +12,7 @@ BEGIN { $| = 1; -print "1..38\n"; +print "1..39\n"; use charnames ':full'; @@ -220,3 +220,9 @@ print "ok 33\n"; print "not " unless charnames::viacode(0xFEFF) eq "ZERO WIDTH NO-BREAK SPACE"; print "ok 38\n"; +{ + use warnings; + print "not " unless ord("\N{BOM}") == 0xFEFF; + print "ok 39\n"; +} + |