digraphs: separate rfc parser from include generator
[sheet.git] / tools / mkfontinfo
index a6dc15a8756773279dcfaf3cf9e844dcfc42ff8e..deada09937691bd4e94aa7676e86ddb5b7a1153e 100755 (executable)
@@ -23,9 +23,6 @@ for my $fontfile (glob 'ttfsupport/*'.$incsuffix) {
        };
 }
 
-       when (qr{^[a-z]+(?:/|\z)}) {
-       }
-
 my %charlist;
 
 my $chartables = do 'unicode-table.inc.pl' or warn $@ || $!;
@@ -38,6 +35,7 @@ if ($chartables) {
                                $includerows ||= m/^[.]/ or next;
                                next if /^[.-]/;
                                next if $_ eq '>' or $_ eq '=';
+                               s/^\\//;  # escape
                                push @{ $charlist{table}->{"$tablegroup/$tablename"} }, $_;
                                push @{ $charlist{table}->{$tablegroup} }, $_;
                        }
@@ -48,6 +46,17 @@ if ($chartables) {
        }
 }
 
+eval {
+       require HTML::Entities;
+       our %char2entity;
+       HTML::Entities->import('%char2entity');
+       while (my ($char, $entity) = each %char2entity) {
+               $entity =~ /[a-zA-Z]/ or next;  # only actual aliases
+               push @{ $charlist{table}->{html} }, $char;
+       }
+       1;
+} or warn "Could not include count for html entities: $@";
+
 use Unicode::UCD 'charinfo';
 for my $code (0 .. 256**2) {
        my $charinfo = charinfo($code) or next;
@@ -87,6 +96,7 @@ for my $chars (values %{$_}) {
 }
 }
 
+say "# automatically generated by $0";
 say 'use utf8;';
 say '+'.pp(\%charlist);