font: aggregate counts for unicode versions
authorMischa POSLAWSKY <perl@shiar.org>
Mon, 16 Mar 2015 18:25:41 +0000 (19:25 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 9 Jun 2015 03:43:44 +0000 (05:43 +0200)
font.plp
tools/mkfontinfo

index a7812d0e37515242a5117173eb6e7c8904427816..a93835cf4a96c2ee1695fb314187098ad2e2114a 100644 (file)
--- a/font.plp
+++ b/font.plp
@@ -122,6 +122,8 @@ my @ossel = @{ $cover->{osdefault} };
 my @fontlist = map { @{ $cover->{os}->{$_} } } @ossel;
 
 my @rows = (
 my @fontlist = map { @{ $cover->{os}->{$_} } } @ossel;
 
 my @rows = (
+       'version/11',
+       'version/63',
        'block/Latin-1 Supplement',
        'block/Latin Extended-A',
        'block/Latin Extended Additional',
        'block/Latin-1 Supplement',
        'block/Latin Extended-A',
        'block/Latin Extended Additional',
@@ -182,6 +184,7 @@ for (@rows) {
        my $row = $cover->{$group}->{$name};
 
        print '<tr>';
        my $row = $cover->{$group}->{$name};
 
        print '<tr>';
+       $name = sprintf 'Unicode v%.1f', $name / 10 if $group eq 'version';
        $name = sprintf '<a href="%s">%s</a>', EncodeURI("/chars/$group/$name"), EscapeHTML($name)
                if $row->{count} and $row->{count} < 1280;
        print '<th>', $name;
        $name = sprintf '<a href="%s">%s</a>', EncodeURI("/chars/$group/$name"), EscapeHTML($name)
                if $row->{count} and $row->{count} < 1280;
        print '<th>', $name;
index 60726002edd054248fdcdd6688a9ccf40b9e26ef..ed328cf8ea2c0c417fce1f987d25932b44371342 100755 (executable)
@@ -64,12 +64,17 @@ eval {
 } or warn "Could not include count for html entities: $@";
 
 eval {
 } or warn "Could not include count for html entities: $@";
 
 eval {
+       my $agemap = do 'unicode-age.inc.pl'
+               or warn "Could not include unicode version data: $!";
+
        use Unicode::UCD 'charinfo';
        for my $code (0 .. 256**2*2) {
                my $charinfo = charinfo($code) or next;
                next if $charinfo->{category} =~ /^[MC]/;  # ignore Marks and "other" Control chars
                push @{ $charlist{$_}->{ $charinfo->{$_} } }, chr $code
                        for qw( script category block );
        use Unicode::UCD 'charinfo';
        for my $code (0 .. 256**2*2) {
                my $charinfo = charinfo($code) or next;
                next if $charinfo->{category} =~ /^[MC]/;  # ignore Marks and "other" Control chars
                push @{ $charlist{$_}->{ $charinfo->{$_} } }, chr $code
                        for qw( script category block );
+               push @{ $charlist{version}->{$_} }, (chr $code) x ($agemap->{$code} <= $_)
+                       for 11, 30, 63;
        }
        1;
 } or warn "Could not include unicode groups: $@";
        }
        1;
 } or warn "Could not include unicode groups: $@";