Changeset 4817 for lang/perl/Encode-JP-Mobile/trunk/tools
- Timestamp:
- 01/17/08 23:48:55 (10 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/Encode-JP-Mobile/trunk/tools/make-utf8-ucm.pl
r4789 r4817 4 4 use Encode; 5 5 use Encode::JP::Mobile; 6 use autobox; 7 use autobox::Core; 8 use autobox::Encode; 9 use FindBin; 10 use File::Spec; 11 use Path::Class; 6 12 7 my $map = YAML::LoadFile 'dat/convert-map-utf8.yaml'; 13 my $map = YAML::LoadFile file($FindBin::Bin, '..', 'dat', 'convert-map-utf8.yaml'); 14 my $cp932_ucm = file($FindBin::Bin, '..', 'ucm', 'cp932.ucm'); 8 15 9 16 my %alias = qw( … … 19 26 }; 20 27 21 my $cp932_ucm = shift @ARGV or die "Usage: $0 cp932.ucm\n"; 28 sub SCALAR::to_hex($) { sprintf '%X', $_[0] } 22 29 23 for my $to (qw( docomo kddi softbank )) { 24 open my $fh, '>', "ucm/x-utf8-$to.ucm" or die $!; 25 print {$fh} <<HEAD 30 &main;exit; 31 32 sub main { 33 for my $to (qw( docomo kddi softbank )) { 34 my $fh = file('ucm', "x-utf8-$to.ucm")->openw or die $!; 35 36 print {$fh} <<HEAD 26 37 <code_set_name> "x-utf8-$to" 27 38 <code_set_alias> "x-utf8-$alias{$to}" … … 31 42 CHARMAP 32 43 HEAD 33 ;44 ; 34 45 35 # basic map36 print {$fh} unicode_ucm($cp932_ucm);46 # basic map 47 print {$fh} unicode_ucm($cp932_ucm); 37 48 38 # convert map39 for my $from (qw( docomo kddi softbank )) {40 next if $from eq $to;49 # convert map 50 for my $from (qw( docomo kddi softbank )) { 51 next if $from eq $to; 41 52 42 print {$fh} "\n\n# pictogram convert map ($from => $to)\n";53 print {$fh} "\n\n# pictogram convert map ($from => $to)\n"; 43 54 44 for my $srcuni (sort keys %{$map->{$from}}) { 45 my $dstuni = $map->{$from}{$srcuni}{$to} or next; 46 printf {$fh} "<U%s> %s |1 # %s\n", $srcuni, unihex2utf8hex($dstuni), comment_for($from); 55 for my $srcuni (sort keys %{$map->{$from}}) { 56 my $dstuni = $map->{$from}{$srcuni}{$to} or next; 57 printf {$fh} "<U%s> %s |1 # %s\n", $srcuni, unihex2utf8hex($dstuni), comment_for($from); 58 } 47 59 } 60 61 # original 62 if ($to eq 'kddi') { 63 # ura-kddi 64 range_each($to, sub { 65 my $unicode = shift; 66 my $unihex = 'U*'->unpack($unicode->chr->encode('x-sjis-kddi')->decode('x-sjis-kddi-auto'))->to_hex; 67 print {$fh} sprintf "<U%s> %s |0 # %s\n", $unihex, unihex2utf8hex($unihex), "UraKDDI pictogram"; 68 }); 69 } else { 70 range_each($to, sub { 71 my $unicode = shift; 72 my $unihex = $unicode->to_hex; 73 print {$fh} sprintf "<U%s> %s |0 # %s\n", $unihex, unihex2utf8hex($unihex), "$to pictogram"; 74 }); 75 } 76 77 print {$fh} "END CHARMAP\n"; 48 78 } 49 50 # original51 if ($to eq 'kddi') {52 # ura-kddi53 range_each($to, sub {54 my $unicode = shift;55 my $sjiscode = hex unpack "H*", encode('x-sjis-kddi', chr $unicode);56 my $unihex = sprintf '%X', $sjiscode - 0x0700;57 print {$fh} sprintf "<U%s> %s |0 # %s\n", $unihex, unihex2utf8hex($unihex), "UraKDDI pictogram";58 });59 } else {60 range_each($to, sub {61 my $unicode = shift;62 my $unihex = sprintf '%X', $unicode;63 print {$fh} sprintf "<U%s> %s |0 # %s\n", $unihex, unihex2utf8hex($unihex), "$to pictogram";64 });65 }66 67 print {$fh} "END CHARMAP\n";68 79 } 69 80 … … 78 89 sub unihex2utf8hex { 79 90 my $uni = shift; 80 $uni = chr hex $uni; 81 $uni = encode 'utf-8', $uni; 82 $uni = unpack "H*", $uni; 91 $uni = 'H*'->unpack($uni->hex->chr->encode('utf-8')); 83 92 $uni =~ s/(..)/\\x$1/g; 84 93 $uni; … … 88 97 my $cp932_ucm = shift; 89 98 my $res = ''; 90 open my $fh, '<', $cp932_ucm or die "$!: $cp932_ucm";99 my $fh = $cp932_ucm->openr or die $!; 91 100 while (my $line = <$fh>) { 92 101 if ($line =~ /^<U(.{4})> \S+ \|0 # (.+)$/) { … … 99 108 } 100 109 } 110 $fh->close; 101 111 $res; 102 112 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)