use Shiar_Sheet::FormatChar;
my $glyphs = Shiar_Sheet::FormatChar->new;
+my %oslist = (
+ win95 => [qw/arial ariuni verdana times/],
+ mac10 => [qw//],
+ oss => ['dv ss', qw/droid c2k guf/],
+
+ android => ['droid'],
+);
+my @ossel = qw(win95 oss);
+
my $tables = do 'unicode-table.inc.pl' or die $@ || $!;
my (%font, @fontlist);
-for my $fontid (qw(d tnr a dv dvs c2k u)) {
- my ($fontmeta, @fontrange) = do "ttfsupport/$fontid.inc.pl";
- push @fontlist, $fontid;
- $font{$fontid} = {
- -name => $fontmeta->{name},
- map { (chr $_ => 1) } @fontrange
- };
+for my $os (@ossel) {
+ my $osfonts = $oslist{$os};
+ for my $fontid (@{$osfonts}) {
+ push @fontlist, $fontid;
+ my ($fontmeta, @fontrange) = do "ttfsupport/$fontid.inc.pl";
+ $fontmeta or next;
+ $font{$fontid} = {
+ -id => $fontmeta->{id} || $fontid,
+ -name => $fontmeta->{name},
+ map { (chr $_ => 1) } @fontrange
+ };
+ }
}
my @config = qw(
for (@config) {
my ($tablegroup, $tablename) = split m{/}, $_, 2;
- print '<table>';
+ print '<table class=mapped>';
printf '<caption>%s</caption>', "$tablegroup: $tablename";
say '';
+ print '<col>' x 3;
+ print "<colgroup span=$_>" for 2, map { scalar @{$oslist{$_}} } @ossel;
+ print '<thead><tr>';
+ print '<td colspan=2>char';
+ print '<td>name';
+ print '<td>di<td>html';
+ printf('<td colspan=%d title="%s">%s',
+ (map {
+ scalar @{$_},
+ join(', ', map { $_->{-name} } @font{ @{$_} }),
+ } $oslist{$_}),
+ $_,
+ ) for @ossel;
+ say '</thead>';
my $table = $tables->{$tablegroup}->{$tablename};
for my $chr (@$table) {
print "<tr><th>$chr\n";
my $info = $glyphs->glyph_info($codepoint);
my ($class, $name, $mnem, $html, $string) = @$info;
- print "<td>$_" for $codepoint, EscapeHTML($name);
+ print "<td>$_" for sprintf('%X', $codepoint), EscapeHTML($name);
printf '<td class="%s">%s', @$_ for (
[$ascii ? 'l0' : defined $mnem ? 'l4' : 'l1', $mnem // ''],
[$ascii ? 'l0' : defined $html ? 'l4' : 'l1', $html // ''],
- (map { $font{$_}->{$chr} ? [l4 => $font{$_}->{-name}] : [l1 => ''] }
- @fontlist),
+ (map {
+ !$font{$_}->{-id} ? [l0 => "$_?"] :
+ $font{$_}->{$chr} ? [l4 => $font{$_}->{-id}] : [l1 => '']
+ } @fontlist),
);
}
say "</table>\n";