Upgrade to Encode 1.00, from Dan Kogai.
[p5sagit/p5-mst-13.2.git] / ext / Encode / lib / Encode / ucs2_le.pm
CommitLineData
df1df145 1package Encode::ucs_2le;
2use strict;
67d7b5ef 3our $VERSION = do { my @r = (q$Revision: 1.0 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
ee981de6 4
df1df145 5use base 'Encode::Encoding';
6
7__PACKAGE__->Define(qw(UCS-2le UCS-2LE ucs-2le));
8
9sub decode
10{
11 my ($obj,$str,$chk) = @_;
12 my $uni = '';
13 while (length($str))
14 {
15 my $code = unpack('v',substr($str,0,2,'')) & 0xffff;
16 $uni .= chr($code);
17 }
18 $_[1] = $str if $chk;
19 utf8::upgrade($uni);
20 return $uni;
21}
22
23sub encode
24{
25 my ($obj,$uni,$chk) = @_;
26 my $str = '';
27 while (length($uni))
28 {
29 my $ch = substr($uni,0,1,'');
30 my $x = ord($ch);
31 unless ($x < 32768)
32 {
33 last if ($chk);
34 $x = 0;
35 }
36 $str .= pack('v',$x);
37 }
38 $_[1] = $uni if $chk;
39 return $str;
40}
411;
42__END__
67d7b5ef 43
44=head1 NAME
45
46Encode::ucs2_le -- for internal use only
47
48=cut