termcol: pass parameter to rgb formula
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 1 Nov 2015 01:58:12 +0000 (02:58 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 10 Nov 2015 21:24:03 +0000 (22:24 +0100)
Accidentally used default argument $_ which works in map but isn't safe.

termcol.plp

index 18593abd76f84aca8323ab7685accd2cfbd7ccd0..a93069853979c9c22a12e91969f72d2802cc78c2 100644 (file)
@@ -229,7 +229,7 @@ for my $term (@termlist) {
 <h2>88-colour space</h2>
 <:
 print coltable_hsv(4,
 <h2>88-colour space</h2>
 <:
 print coltable_hsv(4,
-       sub {(0, 139, 205, 255)[$_]},
+       sub {(0, 139, 205, 255)[$_[0]]},
        [map { ($_ + 2 + ($_>0)) * 255/11 } 0 .. 7],
 );
 
        [map { ($_ + 2 + ($_>0)) * 255/11 } 0 .. 7],
 );
 
@@ -255,7 +255,7 @@ sub coltable_hsv {
                for my $g (0 .. $dim - 1) {
                        for my $b (0 .. $dim - 1) {
                                my $index = $r*$dim*$dim + $g*$dim + $b + $offset;
                for my $g (0 .. $dim - 1) {
                        for my $b (0 .. $dim - 1) {
                                my $index = $r*$dim*$dim + $g*$dim + $b + $offset;
-                               my @rgb = map { &$rgbval } $r, $g, $b;
+                               my @rgb = map { $rgbval->($_) } $r, $g, $b;
 
                                my $h = Shiar_Sheet::Colour->new(@rgb)->hue * $hmax;
                                my $v = int(max(@rgb) / 255 * $vmax);
 
                                my $h = Shiar_Sheet::Colour->new(@rgb)->hue * $hmax;
                                my $v = int(max(@rgb) / 255 * $vmax);
@@ -299,7 +299,7 @@ sub coltable_hsv {
 }
 
 print coltable_hsv(6,
 }
 
 print coltable_hsv(6,
-       sub { $_ && $_*40 + 55 },
+       sub { $_[0] && $_[0]*40 + 55 },
        [ map { $_ * 10 + 8 } 0 .. 23 ],
 );
 :></div>
        [ map { $_ * 10 + 8 } 0 .. 23 ],
 );
 :></div>