digraphs: mkdigraphlist: inline conversion of character details
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 22 Feb 2015 01:15:32 +0000 (02:15 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 9 Jun 2015 03:43:42 +0000 (05:43 +0200)
tools/mkdigraphlist

index 0714a2b1b64e15ff37e31a7faca36a6088b5d749..8a05fa42f3740066125fdf42204056e39d248b95 100755 (executable)
@@ -23,13 +23,6 @@ $di = { %{$vim // {}}, %{$di}, %{$extra // {}} };
 my $uninfo = do 'unicode-char.inc.pl'
        or warn "could not include unicode details: ", $@ // $!;
 
-# convert info hashes into arrays of strings to output in display order
-for my $row (values %{$uninfo}) {
-       my ($class, $name, $di, $html, $string) = @{$row};
-       $row = [$name, $class];
-       push @{$row}, '', $string if defined $string;
-}
-
 # output perl code of hash
 # (assume no backslashes or curlies, so we can just q{} w/o escaping)
 print "# automatically generated by $0\n";
@@ -41,7 +34,10 @@ printf '(map {$_=>0} qw{%s}),'."\n", join(' ',
 );
 printf "q{%s}=>[%s],\n", $_, join(',',
        $di->{$_},   # original code point
-       (map {"'$_'"} @{ $uninfo->{ chr $di->{$_} } // [] }),  # optional additional arguments
+       map {"'$_'"}
+       $uninfo->{ chr $di->{$_} }->[1],  # name
+       $uninfo->{ chr $di->{$_} }->[0],  # class
+       (map {('', $_)} $uninfo->{ chr $di->{$_} }->[4] // ()),  # string
 ) for sort keys %{$di};
 print "}\n";