File Coverage

blib/lib/String/Multibyte/EUC.pm
Criterion Covered Total %
statement 6 6 100.0
branch n/a
condition n/a
subroutine 2 2 100.0
pod n/a
total 8 8 100.0


line stmt bran cond sub pod time code
1             package String::Multibyte::EUC;
2              
3 13     13   90 use vars qw($VERSION);
  13     1   23  
  13         3110  
  1         7  
  1         2  
  1         241  
4             $VERSION = '1.12';
5              
6             +{
7             charset => 'EUC',
8              
9             regexp => '(?:[\x00-\x7F]|[\xA1-\xFE][\xA1-\xFE])',
10              
11             cmpchar => sub { $_[0] cmp $_[1] },
12              
13             nextchar => sub {
14             my $ch = shift;
15             my $len = length $ch;
16             if ($len < 1 || 2 < $len) {
17             return undef;
18             }
19             elsif ($len == 1) {
20             return $ch eq "\x7F"
21             ? "\xA1\xA1"
22             : chr(ord($ch)+1);
23             }
24             else {
25             my($c, $d) = unpack('CC', $ch);
26             return $ch eq "\xFE\xFE"
27             ? undef
28             : $d == 0xFE
29             ? chr($c+1)."\xA1"
30             : pack('CC', $c, $d+1);
31             }
32             },
33             };
34              
35             __END__