From 53beb697f81d7715d042af69374e599dceb3f8e0 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Fri, 6 Nov 2015 20:21:12 +0100 Subject: [PATCH 1/1] termcol: divide list rows over columns with 8 rows each Put dark and light colours of cga next to each other for better comparison. Still more space efficient for others. --- termcol.plp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/termcol.plp b/termcol.plp index 51efa0a..8d707ec 100644 --- a/termcol.plp +++ b/termcol.plp @@ -48,6 +48,7 @@ print use 5.010; use Shiar_Sheet::Colour '1.04'; use List::Util qw( min max ); +use POSIX qw( ceil ); my $palettes = do 'termcol.inc.pl'; die "Cannot open palette data: $_\n" for $@ || $! || (); @@ -131,17 +132,24 @@ for my $term (@termlist) { $colours = [ map { $colours->[$_] =~ s/:|$/:$_/r } @{$reorder} ]; } + my $rows = 8; + my $columns = ceil(@{$colours} / $rows); + print '', "\n"; printf "\n", $caption; - for my $num (0 .. $#{$colours}) { - my ($rgb, $name) = split /:/, $colours->[$num], 3; - $name //= $num; - $name = [ $name, [] ] if $term =~ /^msx/ and !$num; - $name = [ $name, ['#333'] ] if $term eq 'xkcd'; - print '', colcell($name, $rgb); + for my $row (0 .. $rows - 1) { + print ''; + for my $col (0 .. $columns - 1) { + my $num = $row + $col * $rows; + my ($rgb, $name) = split /:/, $colours->[$num], 3; + $name //= $rgb && $num; + $name = [ $name, [] ] if $term =~ /^msx/ and !$num; + $name = [ $name, ['#333'] ] if $term eq 'xkcd'; + print colcell($name, $rgb); + } } - print '
%s
', img_egapal(\@{$colours}, @{$_}) for @draw; + print "
", img_egapal(\@{$colours}, @{$_}) for @draw; print "
\n\n"; } } -- 2.30.0