Merge branch 'debian'
[hcoop/debian/courier-authlib.git] / libs / unicode / mkeastasianwidth.pl
CommitLineData
8d138742
CE
1#! /usr/bin/perl
2
3# USAGE: perl mkeastasianwidth.pl > charwidth.c
4
5use IO::File;
6
7my $fh=new IO::File "<EastAsianWidth.txt";
8
9my $pb=-1;
10my $pe=-1;
11
12print "static const unicode_char unicode_wcwidth_tab[][2]={\n";
13
14sub full($$) {
15 my $b=hex(shift);
16 my $e=hex(shift);
17
18 if ($b == $pe+1)
19 {
20 $pe=$e;
21 return;
22 }
23
24 printf ("{0x%04x, 0x%04x},\n", $pb, $pe) unless $pb < 0;
25
26 $pb=$b;
27 $pe=$e;
28}
29
30
31while (defined($_=<$fh>))
32{
33 chomp;
34 s/#.*//;
35
36 my @w=split(/;/);
37
38 grep {s/^\s*//; s/\s*$//; } @w;
39
40 next unless $w[1] eq "F" || $w[1] eq "W";
41
42 if ($w[0] =~ /(.*)\.\.(.*)/)
43 {
44 full($1, $2);
45 }
46 else
47 {
48 full($w[0], $w[0]);
49 }
50}
51
52printf ("{0x%04x, 0x%04x}\n};\n", $pb, $pe);