digraphs: include flag legend in include data
[sheet.git] / digraphs.plp
index ccb19871ea0348d1d65ce7c640a7167e021fa323..4ee4d1f2bffce64addf1eaf31f2142b34be9d94a 100644 (file)
@@ -42,9 +42,9 @@ my $di = Data('digraphs');
 
 if (exists $get{v}) {
        # show characters for inverted mnemonics (vim alternatives)
-       $di->{ substr($_, 1, 1) . substr($_, 0, 1) } ||=
-               [ $di->{$_}->[0], '', 'l0 ex', '', $di->{$_}->[4] ]
-               for grep { ref $di->{$_} } keys %{$di};
+       $di->{key}->{ substr($_, 1, 1) . substr($_, 0, 1) } ||= [
+               $di->{key}->{$_}->[0], '', 'l0 ex', '', $di->{key}->{$_}->[4]
+       ] for grep { ref $di->{key}->{$_} } keys %{ $di->{key} };
 }
 
 my @chars = (
@@ -61,8 +61,10 @@ if ($mode) {
        my $xorg = Data('data/digraphs-xorg');
        $_ = [ord $_] for values %{$xorg};
        $xorg->{$_}->[2] = # class = compatibility
-               $di->{$_} ? $di->{$_}->[0] != $xorg->{$_}->[0] ? 'l1' :  # conflict
-               $di->{$_}->[2] eq 'l4' ? 'l5' : 'l3' : 'l2'  # rfc|any|none
+               !$di->{key}->{$_} ? 'l2' :  # free
+               $di->{key}->{$_}->[0] != $xorg->{$_}->[0] ? 'l1' :  # conflict
+               $di->{key}->{$_}->[2] eq 'l4' ? 'l5' :  # rfc
+               'l3'  # any
                for keys %{$xorg};
 
        for my $cp (map {$_->[0]} values %{$xorg}) {
@@ -85,7 +87,7 @@ if ($mode) {
 
        $chars2[0] = [qw( # ^ _ ` ~ )];
        @chars = @chars2;
-       $di = $xorg;
+       $di->{key} = $xorg;
 }
 
 for my $colchars (@columns) {
@@ -103,15 +105,16 @@ for my $c1group (@chars) {
                print '<tr><th>', EscapeHTML($c1);
                for my $c2 (map {@$_} @$colchars) {
                        my $mnem = $c1 . $c2;
-                       if (not defined $di->{$mnem}) {
+                       if (not defined $di->{key}->{$mnem}) {
                                print '<td>';
                                next;
                        }
-                       if (ref $di->{$mnem} ne 'ARRAY') {
+                       if (ref $di->{key}->{$mnem} ne 'ARRAY') {
                                printf '<td class="X Xr" title="%s">', EscapeHTML($mnem);
                                next;
                        }
-                       my ($codepoint, $name, $support, $script, $string) = @{ $di->{$mnem} };
+                       my ($codepoint, $name, $support, $script, $string) =
+                               @{ $di->{key}->{$mnem} };
 
                        my $glyph = $string || chr $codepoint;
                        utf8::upgrade($glyph);  # prevent latin1 output
@@ -166,12 +169,10 @@ if ($mode) {
        <td class="X Bopomofo">chinese
        </table>
 
-       <table class="glyphs"><tr>
-       <td class="X u-l4">full support
-       <td class="X u-l3">vim extension
-       <td class="X u-l3 ex">vim v8.0
-       <td class="X u-l2">proposal
-       <td class="X u-l1">not in vim
+       <table class="glyphs"><tr><:
+       print qq(\n\t<td class="X u-$_">$di->{flag}->{$_})
+               for sort keys %{ $di->{flag} };
+:>
        </table>
 </div>