|
7 | 7 | # Generate UTF-8 <--> EUC_JIS_2004 code conversion tables from
|
8 | 8 | # "euc-jis-2004-std.txt" (http://x0213.org)
|
9 | 9 |
|
10 |
| -require "convutils.pm"; |
| 10 | +use strict; |
| 11 | +require convutils; |
11 | 12 |
|
12 | 13 | # first generate UTF-8 --> EUC_JIS_2004 table
|
13 | 14 |
|
14 |
| -$in_file = "euc-jis-2004-std.txt"; |
| 15 | +my $in_file = "euc-jis-2004-std.txt"; |
15 | 16 |
|
16 |
| -open(FILE, $in_file) || die("cannot open $in_file"); |
| 17 | +open(my $in, '<', $in_file) || die("cannot open $in_file"); |
17 | 18 |
|
18 | 19 | my @all;
|
19 | 20 |
|
20 |
| -while ($line = <FILE>) |
| 21 | +while (my $line = <$in>) |
21 | 22 | {
|
22 | 23 | if ($line =~ /^0x(.*)[ \t]*U\+(.*)\+(.*)[ \t]*#(.*)$/)
|
23 | 24 | {
|
24 |
| - $c = $1; |
25 |
| - $u1 = $2; |
26 |
| - $u2 = $3; |
27 |
| - $rest = "U+" . $u1 . "+" . $u2 . $4; |
28 |
| - $code = hex($c); |
29 |
| - $ucs1 = hex($u1); |
30 |
| - $ucs2 = hex($u2); |
| 25 | + # combined characters |
| 26 | + my ($c, $u1, $u2) = ($1, $2, $3); |
| 27 | + my $rest = "U+" . $u1 . "+" . $u2 . $4; |
| 28 | + my $code = hex($c); |
| 29 | + my $ucs1 = hex($u1); |
| 30 | + my $ucs2 = hex($u2); |
31 | 31 |
|
32 | 32 | push @all, { direction => 'both',
|
33 | 33 | ucs => $ucs1,
|
|
38 | 38 | }
|
39 | 39 | elsif ($line =~ /^0x(.*)[ \t]*U\+(.*)[ \t]*#(.*)$/)
|
40 | 40 | {
|
41 |
| - $c = $1; |
42 |
| - $u = $2; |
43 |
| - $rest = "U+" . $u . $3; |
44 |
| - } |
45 |
| - else |
46 |
| - { |
47 |
| - next; |
48 |
| - } |
49 |
| - |
50 |
| - $ucs = hex($u); |
51 |
| - $code = hex($c); |
| 41 | + # non-combined characters |
| 42 | + my ($c, $u, $rest) = ($1, $2, "U+" . $2 . $3); |
| 43 | + my $ucs = hex($u); |
| 44 | + my $code = hex($c); |
52 | 45 |
|
53 |
| - next if ($code < 0x80 && $ucs < 0x80); |
| 46 | + next if ($code < 0x80 && $ucs < 0x80); |
54 | 47 |
|
55 |
| - push @all, { direction => 'both', ucs => $ucs, code => $code, comment => $rest }; |
| 48 | + push @all, { direction => 'both', ucs => $ucs, code => $code, comment => $rest }; |
| 49 | + } |
56 | 50 | }
|
57 |
| -close(FILE); |
| 51 | +close($in); |
58 | 52 |
|
59 | 53 | print_tables("EUC_JIS_2004", \@all, 1);
|
0 commit comments