Show
Ignore:
Timestamp:
02/10/08 18:28:06 (5 years ago)
Author:
tokuhirom
Message:

use Encode::JP::Mobile::Character->name_en in Encode::JP::Mobile::Charnames::unicode2name_en

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Encode-JP-Mobile/trunk/lib/Encode/JP/Mobile/Charnames.pm

    r6498 r6500  
    1414 
    1515my $name2unicode; 
    16 my $unicode2name_en; 
    1716 
    1817sub import { 
     
    7978} 
    8079 
    81 sub _unicode2name_en { 
    82     return $unicode2name_en if $unicode2name_en; 
    83  
    84     $unicode2name_en = {}; 
    85     for my $carrier (qw/docomo kddi softbank/) { 
    86         my $fname = dist_file( 'Encode-JP-Mobile', "${carrier}-table.pl" ); 
    87         my $dat   = do $fname; 
    88  
    89         for my $row (@$dat) { 
    90             next unless exists $row->{name_en}; 
    91             $unicode2name_en->{ hex $row->{unicode} } = decode_utf8($row->{name_en}); 
    92             if ($carrier eq 'kddi') { 
    93                 $unicode2name_en->{ hex $row->{unicode_auto} } = decode_utf8($row->{name_en}); 
    94             } 
    95         } 
    96     } 
    97     return $unicode2name_en; 
    98 } 
    99  
    10080sub vianame { 
    10181    my $name = shift; 
     
    11090} 
    11191 
     92# handling x-sjis-kddi-cp932-raw.see pod. 
     93sub _kddi_cp932toauto { 
     94    my $code = shift; 
     95 
     96    my $c = pack('U', $code); 
     97    if ($c !~ /^\p{InKDDISoftBankConflicts}$/ && $c =~ /^\p{InKDDICP932Pictograms}$/) { 
     98        return unpack 'U*', decode('x-sjis-kddi-auto-raw', encode('x-sjis-kddi-cp932-raw', $c)); 
     99    } else { 
     100        return $code; 
     101    } 
     102} 
     103 
    112104sub unicode2name { 
    113105    my $code = shift; 
    114106    croak "missing code" unless $code; 
    115107 
    116     # handling x-sjis-kddi-cp932-raw.see pod. 
    117     my $c = pack('U', $code); 
    118     if ($c !~ /^\p{InKDDISoftBankConflicts}$/ && $c =~ /^\p{InKDDICP932Pictograms}$/) { 
    119         $code = unpack 'U*', decode('x-sjis-kddi-auto-raw', encode('x-sjis-kddi-cp932-raw', $c)); 
    120     } 
    121  
    122     return Encode::JP::Mobile::Character->from_unicode($code)->name; 
     108    return Encode::JP::Mobile::Character->from_unicode(_kddi_cp932toauto($code))->name; 
    123109} 
    124110 
     
    126112    my $code = shift; 
    127113    croak "missing code" unless $code; 
    128     return _unicode2name_en->{$code}; 
     114 
     115    return Encode::JP::Mobile::Character->from_unicode(_kddi_cp932toauto($code))->name_en; 
    129116} 
    130117