X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/e81df0ef9f0d7b5d22b0829f0a89a380a8e310ab..054d1037c3f618df44d195a3e63b4832d0eab3b7:/tools/mkcharinfo?ds=sidebyside diff --git a/tools/mkcharinfo b/tools/mkcharinfo index b58f0c3..2c006c5 100755 --- a/tools/mkcharinfo +++ b/tools/mkcharinfo @@ -48,9 +48,10 @@ eval { my %diinc = ( 'data/digraphs-rfc.inc.pl' => 'u-di', - 'data/digraphs-shiar.inc.pl' => 'u-prop Xz', + 'data/digraphs-shiar.inc.pl' => 'u-prop ex', + 'data/digraphs-vim.inc.pl' => 'u-prop', ); -for (keys %diinc) { +for (sort keys %diinc) { -e $_ or next; my $di = do $_ or die "Error reading digraphs file $_: ", $@ || $!; while (my ($mnem, $cp) = each %$di) { @@ -82,6 +83,10 @@ for my $chr (keys %info) { $info->{$_} = $info{$chr}->{$_} for keys %{ $info{$chr} }; + # official digraphs either lose vim flag or gain experimental + delete $info->{class}->{'u-prop'} or $info->{class}->{ex}++ + if $info->{class}->{'u-di'}; + # categorise by unicode types and writing script $info->{class}->{$_}++ for $info->{category}; $info->{class}->{$_}++ for $info->{script} || (); @@ -90,15 +95,15 @@ for my $chr (keys %info) { $info->{class}->{Xa}++ if $info->{block} eq 'Basic Latin'; $info->{class}->{Xl}++ if $info->{block} eq 'Latin-1 Supplement'; - given ($cp) { - when ($info->{string}) { + { + if ($info->{string}) { # keep predefined presentational string } - when ($info->{combining}) { + elsif ($info->{combining}) { # overlay combining accents $info->{string} = chr(9676) . $chr; } - when (($cp & ~0b1001_1111) == 0 or $cp == 127) { + elsif (($cp & ~0b1001_1111) == 0 or $cp == 127) { # control characters (first 32 chars from 0 and 128) # rename to something more descriptive $info->{name} = $info->{unicode10}