File Coverage

blib/lib/Encode/JP/Mobile.pm
Criterion Covered Total %
statement 53 53 100.0
branch n/a
condition n/a
subroutine 23 23 100.0
pod 8 8 100.0
total 84 84 100.0


line stmt bran cond sub pod time code
1             package Encode::JP::Mobile;
2 24     24   793633 use strict;
  24         66  
  24         1171  
3             our $VERSION = "0.30";
4              
5 24     24   135 use Carp;
  24         54  
  24         2241  
6 24     24   3463 use Encode;
  24         114841  
  24         2490  
7 24     24   152 use XSLoader;
  24         57  
  24         963  
8             XSLoader::load(__PACKAGE__, $VERSION);
9              
10 24     24   127 use base qw( Exporter );
  24         44  
  24         4269  
11             our @EXPORT_OK = qw( InDoCoMoPictograms InKDDIPictograms InSoftBankPictograms InAirEdgePictograms InMobileJPPictograms InKDDISoftBankConflicts InKDDICP932Pictograms InKDDIAutoPictograms);
12             our %EXPORT_TAGS = ( props => [@EXPORT_OK] );
13              
14 24     24   143 use Encode::Alias;
  24         44  
  24         3664  
15              
16             # sjis-raw
17             define_alias( 'x-sjis-imode-raw' => 'x-sjis-docomo-raw' );
18             define_alias( 'x-sjis-airedge-raw' => 'x-sjis-airh-raw' );
19             define_alias( 'x-sjis-vodafone-auto-raw' => 'x-sjis-softbank-auto-raw' );
20              
21             define_alias( 'x-sjis-kddi' => 'x-sjis-kddi-cp932-raw' );
22             define_alias( 'x-sjis-ezweb' => 'x-sjis-kddi-cp932-raw' );
23             define_alias( 'x-sjis-ezweb-cp932-raw' => 'x-sjis-kddi-cp932-raw' );
24             define_alias( 'x-sjis-ezweb-auto-raw' => 'x-sjis-kddi-auto-raw' );
25              
26             # backward compatiblity
27             define_alias('shift_jis-kddi' => 'x-sjis-kddi-cp932-raw');
28              
29             # utf8
30             define_alias( 'x-utf8-imode' => 'x-utf8-docomo' );
31             define_alias( 'x-utf8-ezweb' => 'x-utf8-kddi' );
32             define_alias( 'x-utf8-vodafone' => 'x-utf8-softbank' );
33              
34 24     24   27116 use Encode::JP::Mobile::Vodafone;
  24         96  
  24         863  
35 24     24   18117 use Encode::JP::Mobile::KDDIJIS;
  24         85  
  24         1008  
36 24     24   25838 use Encode::JP::Mobile::AirHJIS;
  24         76  
  24         791  
37 24     24   18558 use Encode::JP::Mobile::ConvertPictogramSJIS;
  24         73  
  24         832  
38              
39 24     24   16855 use Encode::JP::Mobile::MIME::DoCoMo;
  24         755  
  24         906  
40 24     24   26882 use Encode::JP::Mobile::MIME::KDDI;
  24         70  
  24         856  
41 24     24   15317 use Encode::JP::Mobile::MIME::SoftBank;
  24         64  
  24         687  
42 24     24   18034 use Encode::JP::Mobile::MIME::AirH;
  24         67  
  24         1232  
43              
44             require Encode::JP::Mobile::Fallback;
45             require Encode::JP::Mobile::Character;
46              
47 24     24   24917 use Encode::MIME::Name;
  24         11280  
  24         9858  
48              
49             for (Encode->encodings('JP::Mobile')) {
50             next if defined $Encode::MIME::Name::MIME_NAME_OF{$_};
51             my $mime_name = $_ =~ /utf8/i ? 'UTF-8'
52             : $_ =~ /sjis/i ? 'Shift_JIS'
53             : $_ =~ /2022/i ? 'ISO-2022-JP'
54             : undef;
55             $Encode::MIME::Name::MIME_NAME_OF{$_} = $mime_name if $mime_name;
56             }
57              
58             sub InDoCoMoPictograms {
59 12     12 1 20791 return <
60             E63E\tE6A5
61             E6AC\tE6AE
62             E6B1\tE6B3
63             E6B7\tE6BA
64             E6CE\tE757
65             END
66             }
67              
68             sub InKDDICP932Pictograms {
69 19     19 1 854836 return <
70             E468\tE5DF
71             EA80\tEB88
72             END
73             }
74              
75             sub InKDDIAutoPictograms {
76 19     19 1 357452 return <
77             EC40\tEC7E
78             EC80\tECFC
79             ED40\tED7E
80             ED80\tED8D
81             EF40\tEF7E
82             EF80\tEFFC
83             F040\tF07E
84             F080\tF0FC
85             END
86             }
87              
88             sub InKDDIPictograms {
89 12     12 1 1236 return join "\n", InKDDICP932Pictograms(), InKDDIAutoPictograms();
90             }
91              
92             sub InSoftBankPictograms {
93 9     9 1 401130 return <
94             E001\tE05A
95             E101\tE15A
96             E201\tE253
97             E255\tE257
98             E301\tE34D
99             E401\tE44C
100             E501\tE537
101             END
102             }
103              
104             sub InAirEdgePictograms {
105 7     7 1 599 return <
106             E000\tE096
107             E098
108             E09A
109             E09F
110             E0A2
111             E0A6
112             E0A8
113             E0AF
114             E0BB
115             E0C4
116             E0C9
117             END
118             }
119              
120             sub InMobileJPPictograms {
121             # +utf8::InDoCoMoPictograms etc. don't work here
122 6     6 1 1101 return join "\n", InDoCoMoPictograms, InKDDIPictograms, InSoftBankPictograms, InAirEdgePictograms;
123             }
124              
125             sub InKDDISoftBankConflicts {
126 6     6 1 29972 return <
127             E501\tE537
128             END
129             }
130              
131             1;
132             __END__