digraphs: translate vim support levels to appropriate fg classes
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 24 Feb 2024 13:43:18 +0000 (14:43 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Wed, 6 Mar 2024 00:38:51 +0000 (01:38 +0100)
Emulate styling before renumbering in commit v1.17-57-g8f93eb6627
(2024-03-06) [prepare xorg comparison in prebuilt data].

digraphs.plp
tools/mkdigraphlist
tools/mkdigraphs-xorg

index 6e0608c20cd41f9679b9e316f21fafe6d86067b6..05d9241f41cdef1c86dc6671d807c1cd9e170524 100644 (file)
@@ -83,7 +83,8 @@ for my $c1group (@chars) {
                        utf8::upgrade($glyph);  # prevent latin1 output
                        my $desc = $mnem . ($name && " ($name)");
                        my @class = ('X', grep {$_} $script);
-                       push @class, $cmp ? $support : "u-$support" if $support;
+                       push @class, $cmp ? $support :
+                               $di->{flagclass}->{$support} // "u-$support" if $support;
 
                        $glyph = EscapeHTML($glyph);
                        $glyph = "<span>$glyph</span>" if $script =~ /\bZs\b/;
@@ -122,7 +123,7 @@ print '<hr>' if exists $get{split};
        </table>
 <: } :>
        <table class="glyphs"><tr><:
-       printf qq(\n\t<td class="X %s">%s), (!$cmp && 'u-').$_, $di->{flag}->{$_}
+       printf qq(\n\t<td class="X %s">%s), $cmp ? $_ : $di->{flagclass}{$_} // "u-$_", $di->{flag}->{$_}
                for sort keys %{ $di->{flag} };
 :>
        </table>
index 2f6acc8d111ca0588510dd8c5256e6d6ae70d8f5..5117b7690117cb12bed52963260d0d885a621195 100755 (executable)
@@ -34,13 +34,13 @@ $table{$_} = 0 for (
 $table{$_} = [
        ord $di->{$_},   # original code point
        $uninfo->{ $di->{$_} }->[1] // '',  # name
-       join(' ',
+       (
                $rfc->{$_}
-                       ? $vim->{$_} ? 'l4' : 'l1'  # vim+rfc or rfc only
+                       ? $vim->{$_} ? 'l5' : 'l1'  # vim+rfc or rfc only
+                       : $vimold && $vimold->{$_} ? 'l4'  # compat vim if known
                        : $vim->{$_} ? 'l3' : 'l2', # vim only or neither
-               $vimold && $vim->{$_} && !$vimold->{$_} ? 'ex' : (), # new vim feature
        ),
-       ($uninfo->{ $di->{$_} }->[0] // '') =~ s/ u-di| u-prop| ex//gr,  # class
+       ($uninfo->{ $di->{$_} }->[0] // '') =~ s/ u-di| u-prop//gr,  # class
        $uninfo->{ $di->{$_} }->[4] // (),  # string
 ] for sort keys %{$di};
 
@@ -58,12 +58,16 @@ print JSON->new->ascii->canonical->encode({
                'are available as <a href="/digraphs.vim">ex commands</a>.',
        ),
        flag => {
-               l4 => 'full support',
-               l3 => 'vim extension',
-               'l3 ex' => 'vim v8.0',
+               l5 => 'full support',
+               l4 => 'vim extension',
+               l3 => 'vim v8.0',
                l2 => 'proposal',
                l1 => 'not in vim',
        },
+       flagclass => {
+               l5 => '', # common
+               l3 => 'u-l5', # rare
+       },
 });
 
 __END__
index edef62de6ef24110d4aeca26733abf5c68335702..67c60a6f4fd7e4b92b1b658702ff71dd8e5ff2cb 100755 (executable)
@@ -39,7 +39,7 @@ while ($_ = readline) {
        my $comparison = (
                !$vidi->{key}->{$mnem} ? 'l3' :  # free
                $vidi->{key}->{$mnem}->[0] != $cp ? 'l1' :  # conflict
-               $vidi->{key}->{$mnem}->[2] eq 'l4' ? 'l5' :  # rfc
+               $vidi->{key}->{$mnem}->[2] eq 'l5' ? 'l5' :  # rfc
                'l4'  # any
        );
        $table{$mnem} = [