termcol: declare ansi reordering in data include
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 1 Nov 2015 16:21:03 +0000 (17:21 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 5 Jan 2016 00:05:07 +0000 (01:05 +0100)
termcol.inc.pl
termcol.plp

index 48b140ce0eee3a8ee110a95eaea7f1708fe30c5b..bcc7b9e1c09ec027801da5bc6de3d3a9036ccd70 100644 (file)
@@ -1,6 +1,8 @@
 use strict;
 use Shiar_Sheet::Colour '1.02';
 
+my @msxorder = ( 0,6,2,10,4,13,7,14 , 1,8,3,11,5,9,12,15 );
+
 +{
        html => {
                title => 'HTML keywords (inherited by CSS≥2.1 and SVG), mostly identical to X11',
@@ -83,6 +85,7 @@ use Shiar_Sheet::Colour '1.02';
                        FFFFFF FBF305 FF6403 DD0907 F20884 4700A5 0000D3 02ABEA
                        1FB714 006412 562C05 90713A C0C0C0 808080 404040 000000
                )],
+               ansiorder => [ 15,3,9,11,6,5,7,12 , 14,2,8,1,13,4,10,0 ],
        },
        risc => {
                name => 'RISC',  # v2/3
@@ -90,6 +93,7 @@ use Shiar_Sheet::Colour '1.02';
                        FFFFFF DDDDDD BBBBBB 999999 777777 555555 333333 000000
                        004499 EEEE00 00CC00 DD0000 EEEEBB 558800 FFBB00 00BBFF
                )],
+               ansiorder => [ 7,11,13,14,8,12,15,1, 6,5,10,9,4,3,2,0 ],
        },
        c64 => {
                name => 'C=64',  # commodore 64/128
@@ -115,6 +119,7 @@ use Shiar_Sheet::Colour '1.02';
                        0    32  10+5 20-5 12+2 16-2 8+0  24-0
                        12+6 8+7 16+5 10   15   24-2 15+0 20
                )],
+               ansiorder => [ 0,2,5,9,6,4,3,15 , 11,10,13,7,14,8,12,1 ],
        },
        msx1 => {
                name => 'MSX',
@@ -129,6 +134,7 @@ use Shiar_Sheet::Colour '1.02';
                        0.53;0.27;0.93 0.67;0.27;0.93 0.73;0.07;0.57 0.80;0.17;0.57
                        0.47;0.23;0.13 0.53;0.67;0.73 0.80;0.47;0.47 1.00;0.47;0.47
                )],
+               ansiorder => \@msxorder,
        },
        msx2 => {
                name => 'MSX2',
@@ -137,6 +143,7 @@ use Shiar_Sheet::Colour '1.02';
                        000 000 161 373 117 237 511 267
                        711 733 661 663 141 625 555 777
                )],
+               ansiorder => \@msxorder,
        },
        arnejmp => {
                href => 'http://androidarts.com/palette/16pal.htm',
@@ -146,6 +153,7 @@ use Shiar_Sheet::Colour '1.02';
                        000000 191028 46AF45 A1D685 453E78 7664FE 833129 9EC2E8
                        DC534B E18D79 D6B97B E9D8A1 216C4B D365C8 AFAAB9 F5F4EB
                )],
+               ansiorder => \@msxorder,
        },
        arnegame => {
                href => 'http://androidarts.com/palette/16pal.htm',
@@ -157,6 +165,8 @@ use Shiar_Sheet::Colour '1.02';
                        F7E26B::zornskin 2F484E::shade   44891A::leaf    A3CE27::slime
                        1B2632::night    005784::sea     31A2F2::sky     B2DCEF::cloud
                )],
+               order => [ 0,5,9,12 , 3,6,10,13,1 , 4,7,8,11,14,15,2 ], # by brightness
+               ansiorder => [ 0,3,10,6,12,9,13,1 , 5,7,11,8,14,4,15,2 ],
        },
 
        cpc => {
index a040eed1aa161c9661052319977c687889eb01bb..c58670c19e2c98556862f41f87d7bef2b5eb71fa 100644 (file)
@@ -55,23 +55,6 @@ sub colcell {
        return "$out\n";
 }
 
-if ($get{v}) {
-       my %reorder = (
-               arnegame => [ 0,5,9,12 , 3,6,10,13,1 , 4,7,8,11,14,15,2 ],
-               arnegame => [ 0,3,10,6,12,9,13,1 , 5,7,11,8,14,4,15,2 ],
-               c64 => [ 0,2,5,9,6,4,3,15 , 11,10,13,7,14,8,12,1 ],
-               msx2 => [ 0,6,2,10,4,13,7,14 , 1,8,3,11,5,9,12,15 ],
-               risc => [ 7,11,13,14,8,12,15,1, 6,5,10,9,4,3,2,0],
-               mac2 => [ 15,3,9,11,6,5,7,12 , 14,2,8,1,13,4,10,0 ],
-       );
-       $reorder{$_} = $reorder{msx2} for qw( msx1 arnejmp );
-       while (my ($name, $order) = each %reorder) {
-               for my $pal ( $palettes->{$name}) {
-                       $pal = [ map { $pal->[$_ + 1] =~ s/:|$/:$_/r } -1, @{$order} ];
-               }
-       }
-}
-
 my @termlist = qw( cga xterm tango app html xkcd );
 push @termlist, qw( c64 msx2 mac2 risc arnegame cpc ) if exists $get{v};
 push @termlist, qw( ansi88 );
@@ -99,6 +82,10 @@ for my $term (@termlist) {
        }
 
        if (my $colours = $info->{list}) {
+               if (my $reorder = $info->{ansiorder} and $get{v}) {
+                       $colours = [ map { $colours->[$_] =~ s/:|$/:$_/r } @{$reorder} ];
+               }
+
                print '<table>', "\n";
                printf "<caption>%s</caption>\n", $caption;
                for my $num (0 .. $#{$colours}) {