Upgrade to Encode 2.00.
[p5sagit/p5-mst-13.2.git] / ext / Encode / bin / ucm2table
index 0496613..4207c7d 100644 (file)
@@ -1,20 +1,20 @@
 #!/usr/bin/perl
-# $Id: ucm2table,v 1.0 2002/03/28 23:26:29 dankogai Exp $
+# $Id: ucm2table,v 2.0 2004/05/16 20:55:16 dankogai Exp $
 #
 
 use 5.006;
 use strict;
 use Getopt::Std;
 my %Opt;
-getopts("eu", \%Opt);
-my @Chartab;
+getopts("aeu", \%Opt);
+my %Chartab;
 
 my $Hex = '[0-9A-Fa-f]';
 while(<>){
        chomp;
-       my ($uni, $enc, $fb, $comment) = 
-           /^<U($Hex+)>\s+(\S+)\s+\|(\d)\s+#\s+(.*)$/o or next;
-       # print "$uni $enc $fb $comment\n";
+       my ($uni, $enc, $fb) = 
+           /^<U($Hex+)>\s+(\S+)\s+\|(\d)/o or next;
+       $fb eq '0' or next;
        my @byte = ();
        my $ord = 0;
        while($enc =~ /\G\\x($Hex+)/iog){
@@ -24,17 +24,19 @@ while(<>){
        };
        # print join('', @byte), " => $ord \n";
        if ($Opt{u}){
-           $Chartab[$ord] = pack("U", hex($uni));
+           $Chartab{$ord} = pack("U", hex($uni));
        }else{
-           $Chartab[$ord] = pack("C*", @byte);
+           $Chartab{$ord} = pack("C*", @byte);
        }
 }
 
-for (my $x = 0x20; $x <= 0xffff; $ x+= 32) {
+my $start = $Opt{a} ? 0x20 : 0xa0;
+
+for (my $x = $start; $x <= 0xffff; $x += 32) {
     my $line =  '';
     for my $i (0..31){
        my $num = $x+$i; $num eq 0x7f and next; # skip delete
-       my $char = $Chartab[$num];
+       my $char = $Chartab{$num};
        $line .= !$char ? " " : 
            ($num < 0x7f ) ? " $char" : $char ;
     }