diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2023-08-18 19:35:40 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2023-08-18 19:35:40 +0000 |
commit | 0625b9c35ba5ee745846387db8a0857190263d5d (patch) | |
tree | 605ae7e6afc902e0ecc97f6c1710d7fa0d238c72 | |
parent | afa13983a4b50d67a45f4793c51eae837fb0fdd4 (diff) | |
download | netpbm-mirror-0625b9c35ba5ee745846387db8a0857190263d5d.tar.gz netpbm-mirror-0625b9c35ba5ee745846387db8a0857190263d5d.tar.xz netpbm-mirror-0625b9c35ba5ee745846387db8a0857190263d5d.zip |
Release 11.03.03
git-svn-id: http://svn.code.sf.net/p/netpbm/code/advanced@4599 9d0c8265-081b-0410-96cb-a4ca84ce46f8
-rw-r--r-- | doc/HISTORY | 12 | ||||
-rwxr-xr-x | editor/ppmfade | 74 | ||||
-rw-r--r-- | other/pamstack.c | 5 | ||||
-rw-r--r-- | version.mk | 2 |
4 files changed, 55 insertions, 38 deletions
diff --git a/doc/HISTORY b/doc/HISTORY index ed980251..6afec411 100644 --- a/doc/HISTORY +++ b/doc/HISTORY @@ -4,6 +4,18 @@ Netpbm. CHANGE HISTORY -------------- +not yet BJH Release 11.03.03 + + ppmfade: fix "file not found" crash for most fade modes. + Introduced in Netpbm 10.98 (March 2022). + + ppmfade: fix incorrect block mode fade. Always broken + (ppmfade was new in Netpbm 8.4 (April 2000)). + + pamstack: Fail gracefully when total number of planes is too + large for unsigned integer. Always broken (Pamstack was new in + Netpbm 10.0 (June 2002). + 23.08.05 BJH Release 11.03.02 Fix -lcmmaxval fix in 11.03.01. diff --git a/editor/ppmfade b/editor/ppmfade index 7dc533a1..7a346ddd 100755 --- a/editor/ppmfade +++ b/editor/ppmfade @@ -212,84 +212,84 @@ for ($i = 1; $i <= $nframes; $i++) { $n = $spline20[$i] * 100; system("ppmshift $n $tmpdir/junk1.ppm >$tmpdir/junk1a.ppm"); $n = (1-$spline20[$i-10])*100; - system("ppmshift $n junk2.ppm >junk2a.ppm"); + system("ppmshift $n $tmpdir/junk2.ppm >$tmpdir/junk2a.ppm"); $n = $spline10[$i-10]; - system("ppmmix $n junk1a.ppm junk2a.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk1a.ppm $tmpdir/junk2a.ppm >$tmpdir/junk3.ppm"); } else { my $n = (1-$spline20[$i-10]) * 100; - system("ppmshift $n junk2.ppm >junk3.ppm"); + system("ppmshift $n $tmpdir/junk2.ppm >$tmpdir/junk3.ppm"); } } elsif ($mode eq $RELIEF) { if ($i == 1) { - system("ppmrelief junk1.ppm >junk1r.ppm"); + system("ppmrelief $tmpdir/junk1.ppm >$tmpdir/junk1r.ppm"); } if ($i <= 10) { my $n = $spline10[$i]; - system("ppmmix $n junk1.ppm junk1r.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk1.ppm $tmpdir/junk1r.ppm >$tmpdir/junk3.ppm"); } elsif ($i <= 20) { my $n = $spline10[$i-10]; - system("ppmmix $n junk1r.ppm junk2r.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk1r.ppm $tmpdir/junk2r.ppm >$tmpdir/junk3.ppm"); } else { my $n = $spline10[$i-20]; - system("ppmmix $n junk2r.ppm junk2.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk2r.ppm $tmpdir/junk2.ppm >$tmpdir/junk3.ppm"); } if ($i == 10) { - system("ppmrelief junk2.ppm >junk2r.ppm"); + system("ppmrelief $tmpdir/junk2.ppm >$tmpdir/junk2r.ppm"); } } elsif ($mode eq $OIL) { if ($i == 1) { - system("ppmtopgm junk1.ppm | pgmoil >junko.ppm"); - system("rgb3toppm junko.ppm junko.ppm junko.ppm " . - ">junk1o.ppm"); + system("ppmtopgm $tmpdir/junk1.ppm | pgmoil >$tmpdir/junko.ppm"); + system("rgb3toppm $tmpdir/junko.ppm $tmpdir/junko.ppm $tmpdir/junko.ppm " . + ">$tmpdir/junk1o.ppm"); } if ($i <= 10) { my $n = $spline10[$i]; - system("ppmmix $n junk1.ppm junk1o.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk1.ppm $tmpdir/junk1o.ppm >$tmpdir/junk3.ppm"); } elsif ($i <= 20) { my $n = $spline10[$i-10]; - system("ppmmix $n junk1o.ppm junk2o.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk1o.ppm $tmpdir/junk2o.ppm >$tmpdir/junk3.ppm"); } else { my $n = $spline10[$i-20]; - system("ppmmix $n junk2o.ppm junk2.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk2o.ppm $tmpdir/junk2.ppm >$tmpdir/junk3.ppm"); } if ($i == 10) { - system("ppmtopgm junk2.ppm | pgmoil >junko.ppm"); - system("rgb3toppm junko.ppm junko.ppm junko.ppm " . - ">junk2o.ppm"); + system("ppmtopgm $tmpdir/junk2.ppm | pgmoil >$tmpdir/junko.ppm"); + system("rgb3toppm $tmpdir/junko.ppm $tmpdir/junko.ppm $tmpdir/junko.ppm " . + ">$tmpdir/junk2o.ppm"); } } elsif ($mode eq $EDGE) { if ($i == 1) { - system("ppmtopgm junk1.ppm | pgmedge >junko.ppm"); - system("rgb3toppm junko.ppm junko.ppm junko.ppm " . - ">junk1o.ppm"); + system("ppmtopgm $tmpdir/junk1.ppm | pgmedge >$tmpdir/junko.ppm"); + system("rgb3toppm $tmpdir/junko.ppm $tmpdir/junko.ppm $tmpdir/junko.ppm " . + ">$tmpdir/junk1o.ppm"); } if ($i <= 10) { my $n = $spline10[$i]; - system("ppmmix $n junk1.ppm junk1o.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk1.ppm $tmpdir/junk1o.ppm >$tmpdir/junk3.ppm"); } elsif ($i <= 20) { my $n = $spline10[$i-10]; - system("ppmmix $n junk1o.ppm junk2o.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk1o.ppm $tmpdir/junk2o.ppm >$tmpdir/junk3.ppm"); } else { my $n = $spline10[$i-20]; - system("ppmmix $n junk2o.ppm junk2.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk2o.ppm $tmpdir/junk2.ppm >$tmpdir/junk3.ppm"); } if ($i == 10) { - system("ppmtopgm junk2.ppm | pgmedge >junko.ppm"); - system("rgb3toppm junko.ppm junko.ppm junko.ppm " . - ">junk2o.ppm"); + system("ppmtopgm $tmpdir/junk2.ppm | pgmedge >$tmpdir/junko.ppm"); + system("rgb3toppm $tmpdir/junko.ppm $tmpdir/junko.ppm $tmpdir/junko.ppm " . + ">$tmpdir/junk2o.ppm"); } } elsif ($mode eq $BENTLEY) { if ($i == 1) { - system("ppmtopgm junk1.ppm | pgmbentley >junko.ppm"); - system("rgb3toppm junko.ppm junko.ppm junko.ppm " . - ">junk1o.ppm"); + system("ppmtopgm $tmpdir/junk1.ppm | pgmbentley >$tmpdir/junko.ppm"); + system("rgb3toppm $tmpdir/junko.ppm $tmpdir/junko.ppm $tmpdir/junko.ppm " . + ">$tmpdir/junk1o.ppm"); } if ($i <= 10) { my $n = $spline10[$i]; - system("ppmmix $n junk1.ppm junk1o.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk1.ppm $tmpdir/junk1o.ppm >$tmpdir/junk3.ppm"); } elsif ($i <= 20) { my $n = $spline10[$i-10]; - system("ppmmix $n junk1o.ppm junk2o.ppm >junk3.ppm"); + system("ppmmix $n $tmpdir/junk1o.ppm $tmpdir/junk2o.ppm >$tmpdir/junk3.ppm"); } else { my $n = $spline10[$i-20]; system("ppmmix $n $tmpdir/junk2o.ppm $tmpdir/junk2.ppm " . @@ -308,6 +308,12 @@ for ($i = 1; $i <= $nframes; $i++) { system("pamscale $n $tmpdir/junk1.ppm | " . "pamscale -width $width -height $height " . ">$tmpdir/junk3.ppm"); + if ($i == 10) { + system("cp", "$tmpdir/junk3.ppm", "$tmpdir/junk1a.ppm"); + system("pamscale $n $tmpdir/junk2.ppm | " . + "pamscale -width $width -height $height " . + ">$tmpdir/junk2a.ppm"); + } } elsif ($i <= 20) { my $n = $spline10[$i-10]; system("ppmmix $n $tmpdir/junk1a.ppm $tmpdir/junk2a.ppm " . @@ -318,12 +324,6 @@ for ($i = 1; $i <= $nframes; $i++) { "pamscale -width $width -height $height " . ">$tmpdir/junk3.ppm"); } - if ($i == 10) { - system("cp", "$tmpdir/junk3.ppm", "$tmpdir/junk1a.ppm"); - system("pamscale $n $tmpdir/junk2.ppm | " . - "pamscale -width $width -height $height " . - ">$tmpdir/junk2a.ppm"); - } } elsif ($mode eq $MIX) { my $fade_factor = sqrt(1/($nframes-$i+1)); system("ppmmix $fade_factor $tmpdir/junk1.ppm $tmpdir/junk2.ppm " . diff --git a/other/pamstack.c b/other/pamstack.c index 285e02c0..533795ca 100644 --- a/other/pamstack.c +++ b/other/pamstack.c @@ -242,6 +242,11 @@ processOneImageInAllStreams(unsigned int const nInput, maxvalLcm = pm_lcm(maxvalLcm + 1, inpam[inputSeq].maxval + 1, 1, PAM_OVERALL_MAXVAL + 1) - 1; + if (inpam[inputSeq].depth > UINT_MAX - outputDepth) + pm_error("Total number of planes is too large to compute " + "(at least %u plus %u)", + outputDepth, inpam[inputSeq].depth); + outputDepth += inpam[inputSeq].depth; } diff --git a/version.mk b/version.mk index 19c58603..9076e495 100644 --- a/version.mk +++ b/version.mk @@ -1,3 +1,3 @@ NETPBM_MAJOR_RELEASE = 11 NETPBM_MINOR_RELEASE = 3 -NETPBM_POINT_RELEASE = 2 +NETPBM_POINT_RELEASE = 3 |