| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | ## ---------------------------------------------------------------------------- | 
| 2 |  |  |  |  |  |  | #  Encode::Unicode::Japanese | 
| 3 |  |  |  |  |  |  | # ----------------------------------------------------------------------------- | 
| 4 |  |  |  |  |  |  | # Mastering programmed by YAMASHINA Hio | 
| 5 |  |  |  |  |  |  | # | 
| 6 |  |  |  |  |  |  | # Copyright 2006 YAMASHINA Hio | 
| 7 |  |  |  |  |  |  | # ----------------------------------------------------------------------------- | 
| 8 |  |  |  |  |  |  | # $Id: Japanese.pm 4 2006-06-15 15:49:18Z hio $ | 
| 9 |  |  |  |  |  |  | # ----------------------------------------------------------------------------- | 
| 10 |  |  |  |  |  |  | package Encode::Unicode::Japanese; | 
| 11 | 3 |  |  | 3 |  | 88164 | use warnings; | 
|  | 3 |  |  |  |  | 7 |  | 
|  | 3 |  |  |  |  | 89 |  | 
| 12 | 3 |  |  | 3 |  | 18 | use strict; | 
|  | 3 |  |  |  |  | 6 |  | 
|  | 3 |  |  |  |  | 213 |  | 
| 13 |  |  |  |  |  |  | our $VERSION = '0.02'; | 
| 14 |  |  |  |  |  |  |  | 
| 15 | 3 |  |  | 3 |  | 14 | use base qw(Encode::Encoding); | 
|  | 3 |  |  |  |  | 17 |  | 
|  | 3 |  |  |  |  | 3370 |  | 
| 16 | 3 |  |  | 3 |  | 51039 | use Unicode::Japanese; | 
|  | 3 |  |  |  |  | 15236 |  | 
|  | 3 |  |  |  |  | 18 |  | 
| 17 |  |  |  |  |  |  |  | 
| 18 |  |  |  |  |  |  | &_register_encodings; | 
| 19 |  |  |  |  |  |  |  | 
| 20 |  |  |  |  |  |  | 1; | 
| 21 |  |  |  |  |  |  |  | 
| 22 |  |  |  |  |  |  | # ----------------------------------------------------------------------------- | 
| 23 |  |  |  |  |  |  | # Methods. | 
| 24 |  |  |  |  |  |  | # ----------------------------------------------------------------------------- | 
| 25 |  |  |  |  |  |  |  | 
| 26 |  |  |  |  |  |  | sub new($ $) | 
| 27 |  |  |  |  |  |  | { | 
| 28 | 36 |  |  | 36 | 1 | 49 | my $pkg = shift; | 
| 29 | 36 |  |  |  |  | 161 | my $code = shift; | 
| 30 | 36 |  |  |  |  | 255 | bless \$code, $pkg; | 
| 31 |  |  |  |  |  |  | } | 
| 32 |  |  |  |  |  |  |  | 
| 33 |  |  |  |  |  |  | sub encode($$;$) | 
| 34 |  |  |  |  |  |  | { | 
| 35 | 9 |  |  | 9 | 1 | 8019 | my ($obj, $str, $chk) = @_; | 
| 36 | 9 |  |  |  |  | 31 | my $code = $$obj; | 
| 37 | 9 |  |  |  |  | 323 | $str = Unicode::Japanese->new($str)->conv($code); | 
| 38 | 9 | 50 |  |  |  | 32020 | $_[1] = '' if $chk; # this is what in-place edit means | 
| 39 | 9 |  |  |  |  | 35 | return $str; | 
| 40 |  |  |  |  |  |  | } | 
| 41 |  |  |  |  |  |  |  | 
| 42 |  |  |  |  |  |  | sub decode($$;$) | 
| 43 |  |  |  |  |  |  | { | 
| 44 | 6 |  |  | 6 | 1 | 4648 | my ($obj, $buf, $chk) = @_; | 
| 45 | 6 |  |  |  |  | 12 | my $code = $$obj; | 
| 46 | 6 |  |  |  |  | 28 | $buf = Unicode::Japanese->new($buf, $code)->getu; | 
| 47 | 6 | 50 |  |  |  | 2048 | $_[1] = '' if $chk; # this is what in-place edit means | 
| 48 | 6 |  |  |  |  | 294 | return $buf; | 
| 49 |  |  |  |  |  |  | } | 
| 50 |  |  |  |  |  |  |  | 
| 51 |  |  |  |  |  |  | sub _register_encodings | 
| 52 |  |  |  |  |  |  | { | 
| 53 |  |  |  |  |  |  | # triple Japanese encodings. | 
| 54 |  |  |  |  |  |  | # | 
| 55 | 3 |  |  | 3 |  | 19 | __PACKAGE__->new("sjis")->Define('unijp-sjis'); | 
| 56 | 3 |  |  |  |  | 65 | __PACKAGE__->new("euc" )->Define('unijp-euc'); | 
| 57 | 3 |  |  |  |  | 52 | __PACKAGE__->new("jis" )->Define('unijp-jis'); | 
| 58 |  |  |  |  |  |  |  | 
| 59 |  |  |  |  |  |  | # emoji, and variation. | 
| 60 |  |  |  |  |  |  | #  ex. imode, imode1, imode2 | 
| 61 | 3 |  |  |  |  | 38 | __PACKAGE__->new("sjis-imode" )->Define("unijp-sjis-imode"); | 
| 62 | 3 |  |  |  |  | 40 | __PACKAGE__->new("sjis-imode1")->Define("unijp-sjis-imode1"); | 
| 63 | 3 |  |  |  |  | 38 | __PACKAGE__->new("sjis-imode2")->Define("unijp-sjis-imode2"); | 
| 64 | 3 |  |  |  |  | 41 | __PACKAGE__->new("sjis-jsky" )->Define("unijp-sjis-jsky"); | 
| 65 | 3 |  |  |  |  | 37 | __PACKAGE__->new("sjis-jsky1")->Define("unijp-sjis-jsky1"); | 
| 66 | 3 |  |  |  |  | 38 | __PACKAGE__->new("sjis-jsky2")->Define("unijp-sjis-jsky2"); | 
| 67 |  |  |  |  |  |  |  | 
| 68 |  |  |  |  |  |  | # unicode variation. | 
| 69 | 3 |  |  |  |  | 46 | __PACKAGE__->new('utf8' )->Define("unijp-utf8"); | 
| 70 | 3 |  |  |  |  | 56 | __PACKAGE__->new('ucs2' )->Define("unijp-ucs2"); | 
| 71 | 3 |  |  |  |  | 38 | __PACKAGE__->new('utf16')->Define("unijp-utf16"); | 
| 72 |  |  |  |  |  |  | } | 
| 73 |  |  |  |  |  |  |  | 
| 74 |  |  |  |  |  |  | __END__ |