common: global Data() to parse perl code includes
[sheet.git] / font.plp
index ec612023291030774088846b84e069c3c4020c43..cb6cd358d487369a79f2943f0a8cf6b50206aa08 100644 (file)
--- a/font.plp
+++ b/font.plp
@@ -4,7 +4,7 @@ my $font = $Request;
 
 Html({
        title => 'font coverage '.($font ? "for $font" : 'sheet'),
-       version => '1.2',
+       version => '1.3',
        keywords => [qw(
                unicode font glyph char character support overview cover coverage
                script block symbol sign mark reference table
@@ -14,13 +14,13 @@ Html({
 });
 
 if ($font) {
-       my ($fontmeta, @cover) = do "data/font/$font.inc.pl";
-       $fontmeta or Abort("Unknown font $font", '404 font not found');
+       my ($fontmeta, @cover) = eval { Data("data/font/$font") }
+               or Abort("Unknown font $font", '404 font not found', ref $@ && $@->[1]);
 
        my $map = eval {
                $get{map} or return;
 
-               my $groupinfo = do 'data/unicode-cover.inc.pl' or die $@ || $!;
+               my $groupinfo = Data('data/unicode-cover');
 
                my ($cat, $name) = split m{/}, $get{map}, 2 or die "invalid map\n";
                if (!$name) {
@@ -158,10 +158,11 @@ EOT
                # display literal character, with placeholder circle if non-spacing/enclosing
                my $html = ($class =~ /\bM[ne]\b/ && chr 9676) . EscapeHTML(chr $cp);
                say sprintf '<td class="%s" title="U+%04X%s">%s',
-                       !$class ? ('l0', $cp, '', '') :
+                       !$class ? ('l0', $cp, '', '') : (
                        $cover{$cp} ? $np ? 'l2' : 'l5' : $np ? 'Xi' : 'l1',
                        $cp, !!$name && ": $name",
-                       ($cover{$cp} || !$np) && $html;
+                       ($cover{$cp} || !$np) && $html
+                       );
        }
        say '</table>';
 
@@ -180,7 +181,7 @@ Character support of Unicode
 
 <:
 
-my $cover = do 'data/unicode-cover.inc.pl' or die $@ || $!;
+my $cover = Data('data/unicode-cover');
 
 my @ossel = @{ $cover->{osdefault} };
 my @fontlist = map { @{ $cover->{os}->{$_} } } @ossel;