From da3e513130c256e8809949a912e2f4828c6dfac4 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 23 Jan 2006 23:33:58 +0000 Subject: *** empty log message *** --- src/gencompose | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 src/gencompose (limited to 'src') diff --git a/src/gencompose b/src/gencompose new file mode 100755 index 0000000..4b65c39 --- /dev/null +++ b/src/gencompose @@ -0,0 +1,63 @@ +#!/usr/bin/perl + +open UNIDATA, "<", "www.unicode.org/Public/UNIDATA/UnicodeData.txt" + or die "www.unicode.org/Public/UNIDATA/UnicodeData.txt: $!"; +#my %docom = qw(initial | medial | final | isolated | compat | none |); #+ arabic +my %docom = qw(compat | none |); + +while () { + my ($code, undef, $category, undef, undef, $decompose, undef) = split /;/; + + push @cat_z, $code if $category =~ /^Z/; + + if ($decompose) { + $type = $decompose =~ s/^<(.*)>\s*// ? $1 : "none"; + + next unless $docom{$type}; + next unless $decompose =~ /^([0-9a-f]+) ([0-9a-f]+)$/i; + my $pfx = sprintf "%08d %08d %08d", hex $1, hex $2, hex $code; + push @compose, [$pfx, hex $1, hex $2, hex $code]; + } +} + +open TABLE, ">", "table/compose.h" + or die "table/compose.h: $!"; + +print TABLE <[0] cmp $b->[0] } @compose) { + next if $seen{$_->[1],$_->[2]}++; + printf TABLE " { 0x%05x, 0x%05x, 0x%05x },\n", $_->[1], $_->[2], $_->[3]; +} + + +print TABLE <", "table/category.h"; + +print TABLE_Z <