Show
Ignore:
Timestamp:
01/18/08 10:01:05 (10 months ago)
Author:
tokuhirom
Message:

lang/perl/Encode-JP-Mobile: added x-utf8-airh.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Encode-JP-Mobile/trunk/tools/make-utf8-ucm.pl

    r4825 r4837  
    33use YAML; 
    44use Encode; 
    5 use Encode::JP::Mobile; 
     5use Encode::JP::Mobile ':props'; 
    66use autobox; 
    77use autobox::Core; 
     
    1515 
    1616my $uni_range_for = { 
    17     docomo   => Encode::JP::Mobile::InDoCoMoPictograms(), 
    18     kddi     => Encode::JP::Mobile::InKDDIPictograms(), 
    19     softbank => Encode::JP::Mobile::InSoftBankPictograms(), 
     17    docomo   => InDoCoMoPictograms(), 
     18    kddi     => InKDDIPictograms(), 
     19    softbank => InSoftBankPictograms(), 
     20    airh     => InDoCoMoPictograms(), 
    2021}; 
    2122 
     
    2829sub main { 
    2930    for my $to (qw( docomo kddi softbank )) { 
    30         my $fh = file('ucm', "x-utf8-$to.ucm")->openw or die $!; 
     31        generate_ucm($to, sub { 
     32            my $fh = shift; 
    3133 
    32         print {$fh} header($to); 
     34            # convert map 
     35            for my $from (qw( docomo kddi softbank )) { 
     36                next if $from eq $to; 
    3337 
    34         # basic map 
    35         print {$fh} unicode_ucm($cp932_ucm); 
     38                print {$fh} "\n\n# pictogram convert map ($from => $to)\n"; 
     39 
     40                for my $srcuni (sort keys %{$map->{$from}}) { 
     41                    my $dstuni = $map->{$from}{$srcuni}{$to} or next; 
     42                    printf {$fh} "<U%s> %s |1 # %s\n", $srcuni, unihex2utf8hex($dstuni), comment_for($from); 
     43                } 
     44            } 
     45 
     46            # original 
     47            if ($to eq 'kddi') { 
     48                # ura-kddi 
     49                range_each($to, sub { 
     50                    my $unicode = shift; 
     51                    my $unihex = $unicode->chr->omote2ura->uni2int->to_hex; 
     52                    print {$fh} sprintf "<U%s> %s |0 # %s\n", $unihex, unihex2utf8hex($unihex), "UraKDDI pictogram"; 
     53                }); 
     54            } else { 
     55                range_each($to, sub { 
     56                    my $unicode = shift; 
     57                    my $unihex = $unicode->to_hex; 
     58                    print {$fh} sprintf "<U%s> %s |0 # %s\n", $unihex, unihex2utf8hex($unihex), "$to pictogram"; 
     59                }); 
     60            } 
     61        }); 
     62    } 
     63 
     64    # airh 
     65    generate_ucm('airh', sub { 
     66        my $fh = shift; 
    3667 
    3768        # convert map 
    38         for my $from (qw( docomo kddi softbank )) { 
    39             next if $from eq $to; 
    40  
    41             print {$fh} "\n\n# pictogram convert map ($from => $to)\n"; 
     69        # XXX willcom phones can display docomo pictograms 
     70        for my $from (qw( kddi softbank )) { 
     71            print {$fh} "\n\n# pictogram convert map ($from => docomo)\n"; 
    4272 
    4373            for my $srcuni (sort keys %{$map->{$from}}) { 
    44                 my $dstuni = $map->{$from}{$srcuni}{$to} or next; 
     74                my $dstuni = $map->{$from}->{$srcuni}->{'docomo'} or next; 
    4575                printf {$fh} "<U%s> %s |1 # %s\n", $srcuni, unihex2utf8hex($dstuni), comment_for($from); 
    4676            } 
     
    4878 
    4979        # original 
    50         if ($to eq 'kddi') { 
    51             # ura-kddi 
    52             range_each($to, sub { 
    53                 my $unicode = shift; 
    54                 my $unihex = $unicode->chr->omote2ura->uni2int->to_hex; 
    55                 print {$fh} sprintf "<U%s> %s |0 # %s\n", $unihex, unihex2utf8hex($unihex), "UraKDDI pictogram"; 
    56             }); 
    57         } else { 
    58             range_each($to, sub { 
    59                 my $unicode = shift; 
    60                 my $unihex = $unicode->to_hex; 
    61                 print {$fh} sprintf "<U%s> %s |0 # %s\n", $unihex, unihex2utf8hex($unihex), "$to pictogram"; 
    62             }); 
    63         } 
     80        print $fh "\n\n# airh pictograms\n"; 
     81        range_each('airh', sub { 
     82            my $unicode = shift; 
     83            my $unihex = $unicode->to_hex; 
     84            print {$fh} sprintf "<U%s> %s |0 # %s\n", $unihex, unihex2utf8hex($unihex), "airh pictogram"; 
     85        }); 
     86    }); 
     87} 
    6488 
    65         print {$fh} "END CHARMAP\n"; 
    66     } 
     89sub generate_ucm { 
     90    my ($to, $generate_pictogram_ucm) = @_; 
     91    my $fh = file('ucm', "x-utf8-$to.ucm")->openw or die $!; 
     92    print {$fh} header($to); 
     93    print {$fh} unicode_ucm($cp932_ucm); 
     94    $generate_pictogram_ucm->($fh); 
     95    print {$fh} "END CHARMAP\n"; 
     96    $fh->close; 
    6797} 
    6898 
     
    82112        kddi ezweb 
    83113        softbank vodafone 
     114        airh airedge 
    84115    ); 
    85116 
     
    126157        my ($min, $max) = map { hex $_ } split /\t/, $range; 
    127158        my $i = $min; 
    128         while ($i <= $max) { 
    129             $code->( $i ); 
    130             $i++; 
     159        if ($max) { 
     160            while ($i <= $max) { 
     161                $code->( $i ); 
     162                $i++; 
     163            } 
     164        } else { 
     165            $code->($min); 
    131166        } 
    132167    }