Changeset 4965

Show
Ignore:
Timestamp:
01/19/08 22:06:39 (7 years ago)
Author:
tokuhirom
Message:

au 端末は docomo の sjis の hex cref も表示できる。

Location:
lang/perl/HTML-ReplacePictogramMobileJp/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/HTML-ReplacePictogramMobileJp/trunk/lib/HTML/ReplacePictogramMobileJp/Base.pm

    r4939 r4965  
    4343        local $_ = decode($decode_by, $args{html}, Encode::FB_XMLCREF); 
    4444        local *HTML::ReplacePictogramMobileJp::Base::callback = $args{callback}; 
     45        local *{"$pkg\::callback"} = $args{callback}; 
    4546 
    4647        $code->(); 
  • lang/perl/HTML-ReplacePictogramMobileJp/trunk/lib/HTML/ReplacePictogramMobileJp/EZweb.pm

    r4964 r4965  
    33use warnings; 
    44use HTML::ReplacePictogramMobileJp::Base; 
     5use Encode; 
     6use Encode::JP::Mobile ':props'; 
    57 
    68filter utf8 => 'x-utf8-kddi', sub { 
     
    1113# とりあえず KDDI-Auto をつかう.どっちにするべき? 
    1214filter sjis => 'x-sjis-kddi-auto', sub { 
    13     unicode_property 'I'; 
     15    s/&#x([0-9A-F]{4});/ 
     16        my $original = $1; 
     17        # hex cref でドコモの絵文字も表示できる(sjis) 
     18        my $x = decode('cp932', pack 'H*', $original); 
     19        if ($x =~ m{(\p{InDoCoMoPictograms})}) { 
     20            HTML::ReplacePictogramMobileJp::Base::callback(ord decode('x-utf8-kddi', encode('x-utf8-kddi', $1)), 'E') 
     21        } else { 
     22            callback(hex $original, 'E') 
     23        } 
     24    /ge; 
     25 
    1426    unicode_property 'E'; 
    15     unicode_hex_cref 'E'; 
    1627}; 
    1728 
  • lang/perl/HTML-ReplacePictogramMobileJp/trunk/t/01_simple.t

    r4964 r4965  
    11use strict; 
    22use warnings; 
    3 use Test::More tests => 12; 
     3use Test::More tests => 15; 
    44use HTML::ReplacePictogramMobileJp; 
    55use Encode; 
     
    1111 
    1212is _x('E', 'utf8', encode('x-utf8-ezweb', "\x{ED80}")), "<U+ED80> E"; 
    13 is _x('E', 'utf8', "&#xED80;"), "<U+ED80> E"; 
     13is _x('E', 'utf8', "&#xED80;"), "<U+ED80> E", 'kddi-utf8: kddi unicode hex cref'; 
     14is _x('E', 'sjis', "&#xF987;"), "<U+EFFB> E", 'kddi-sjis: docomo unicode hex cref'; 
     15is _x('E', 'sjis', "&#xED80;"), "<U+ED80> E", 'kddi-sjis: kddi unicode hex cref'; 
    1416# is _x('E', 'sjis', encode('x-sjis-docomo', "\x{E757}")), "<U+E757> I", 'docomo => kddi'; 
    1517is _x('E', 'sjis', encode('x-sjis-kddi-auto', "\x{ED8D}")), "<U+ED8D> E", 'kddi-auto';