package Encode::JP::Mobile::ConvertPictogramSJIS;
use strict;
use warnings;
use Encode::Alias;
# sjis
define_alias('x-sjis-imode' => 'x-sjis-docomo');
define_alias('x-sjis-ezweb-auto' => 'x-sjis-kddi-auto');
define_alias('x-sjis-airedge' => 'x-sjis-airh');
define_alias('x-sjis-vodafone' => 'x-sjis-softbank');
define_alias('x-sjis-vodafone-auto' => 'x-sjis-softbank-auto');
# backward compatiblity
define_alias('shift_jis-imode' => 'x-sjis-imode');
define_alias('shift_jis-kddi-auto' => 'x-sjis-kddi-auto');
define_alias('shift_jis-airedge' => 'x-sjis-airh');
define_alias('shift_jis-docomo' => 'x-sjis-imode');
define_alias('shift_jis-ezweb' => 'x-sjis-kddi');
define_alias('shift_jis-ezweb-auto' => 'x-sjis-kddi-auto');
define_alias('shift_jis-airh' => 'x-sjis-airh');
define_alias('shift_jis-softbank' => 'x-sjis-softbank');
define_alias('shift_jis-vodafone' => 'x-sjis-vodafone');
no strict 'refs';
for my $carrier (qw/docomo softbank softbank-auto kddi-auto airh/) {
my $pkg = "Encode::JP::Mobile::_ConvertPictogramSJIS${carrier}";
@{"$pkg\::ISA"} = 'Encode::Encoding';
$pkg->Define("x-sjis-$carrier");
*{"$pkg\::decode"} = sub ($$;$) {
my($self, $char, $check) = @_;
my $str = Encode::decode("x-sjis-$carrier-raw", $char);
$_[1] = $str if $check and !ref $check and !( $check & Encode::LEAVE_SRC );
$str;
};
*{"$pkg\::encode"} = sub ($$;$) {
my($self, $str, $check) = @_;
my $utf8_encoding = "x-utf8-$carrier";
$utf8_encoding =~ s/-auto$//;
$utf8_encoding =~ s/-airh$/-docomo/;
$str = Encode::encode($utf8_encoding, $str, $check);
Encode::_utf8_on($str);
$str = Encode::encode("x-sjis-${carrier}-raw", $str, $check);
$_[1] = $str if $check and !ref $check and !( $check & Encode::LEAVE_SRC );
$str;
}
}
1;