unicode: distinguish proposed digraphs again
authorMischa POSLAWSKY <perl@shiar.org>
Tue, 3 Apr 2012 00:43:03 +0000 (02:43 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 10 Apr 2012 01:03:24 +0000 (03:03 +0200)
Parse digraphs.inc.pl classes for Xz for now.

font.plp
tools/convert-unicode.pl

index 4cc99c9..819bae7 100644 (file)
--- a/font.plp
+++ b/font.plp
@@ -129,7 +129,7 @@ for my $chr (@chars) {
        my ($class, $name, $mnem, $html, $string) = @$info;
        print "<td>$_" for sprintf('%X', $codepoint), EscapeHTML($name || '?');
        printf '<td class="%s">%s', @$_ for (
-               [$ascii ? 'l0' : defined $mnem ? 'l4' : 'l1', $mnem // ''],
+               [$ascii ? 'l0' : defined $mnem ? $class =~ /\bu-di\b/ ? 'l4' : 'l3' : 'l1', $mnem // ''],
                [$ascii ? 'l0' : defined $html ? 'l4' : 'l1', $html // ''],
                (map {
                        !$font{$_}->{-id} ? [l0 => '?'] :
index 98c8ca7..51e27cd 100755 (executable)
@@ -47,9 +47,14 @@ for (keys %diinc) {
        my $di = do $_ or die "Error reading digraphs file $_: ", $@ || $!;
        while (my ($mnem, $cp) = each %$di) {
                length $mnem == 2 or next;  # limit to digraphs
-               $cp = chr $cp->[0] if ref $cp;  # old style array
+               my $class = $diinc{$_};
+               if (ref $cp) {
+                       # old style array
+                       $class = 'u-prop' if $cp->[2] and $cp->[2] =~ m/\bXz\b/;
+                       $cp = chr $cp->[0];
+               }
                $info{$cp}->{di} //= $mnem;
-               $info{$cp}->{class}->{$_}++ for $diinc{$_};
+               $info{$cp}->{class}->{$class}++;
        }
 }