diff --git a/ANNOUNCE b/ANNOUNCE index 753e951ae..891c757d7 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.4.0beta53 - April 1, 2009 +Libpng 1.4.0beta54 - April 13, 2009 This is not intended to be a public release. It will be replaced within a few weeks by a public version or by another test version. @@ -9,27 +9,27 @@ Files available for download: Source files with LF line endings (for Unix/Linux) and with a "configure" script - 1.4.0beta53.tar.gz - 1.4.0beta53.tar.bz2 + 1.4.0beta54.tar.gz + 1.4.0beta54.tar.bz2 Source files with LF line endings (for Unix/Linux) without the "configure" script - 1.4.0beta53-no-config.tar.gz - 1.4.0beta53-no-config.tar.bz2 + 1.4.0beta54-no-config.tar.gz + 1.4.0beta54-no-config.tar.bz2 Source files with CRLF line endings (for Windows), without the "configure" script - lp140b53.zip - lp140b53.tar.bz2 + lp140b54.zip + lp140b54.tar.bz2 Other information: - 1.4.0beta53-README.txt - 1.4.0beta53-KNOWNBUGS.txt - 1.4.0beta53-LICENSE.txt - 1.4.0beta53-Y2K-compliance.txt + 1.4.0beta54-README.txt + 1.4.0beta54-KNOWNBUGS.txt + 1.4.0beta54-LICENSE.txt + 1.4.0beta54-Y2K-compliance.txt Changes since the last public release (1.2.10): @@ -417,6 +417,15 @@ version 1.4.0beta53 [April 1, 2009] Removed some remaining MMX macros from pngpriv.h Fixed potential memory leak of "new_name" in png_write_iCCP() (Ralph Giles) +version 1.4.0beta54 [April 13, 2009] + Added "ifndef PNG_SKIP_SETJMP_CHECK" block in pngconf.h to allow + application code writers to bypass the check for multiple inclusion + of setjmp.h when they know that it is safe to ignore the situation. + Eliminated internal use of setjmp() in pngread.c and pngwrite.c + Reordered ancillary chunks in pngtest.png to be the same as what + pngtest now produces, and made some cosmetic changes to pngtest output. + Eliminated deprecated png_read_init_3() and png_write_init_3() functions. + version 1.4.0betaN [future] Build shared libraries with -lz and sometimes -lm. diff --git a/CHANGES b/CHANGES index b61fad098..79fefbb5e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,4 @@ - +/* CHANGES - changes for libpng version 0.2 @@ -2093,6 +2093,15 @@ version 1.4.0beta53 [April 1, 2009] Removed some remaining MMX macros from pngpriv.h Fixed potential memory leak of "new_name" in png_write_iCCP() (Ralph Giles) +version 1.4.0beta54 [April 13, 2009] + Added "ifndef PNG_SKIP_SETJMP_CHECK" block in pngconf.h to allow + application code writers to bypass the check for multiple inclusion + of setjmp.h when they know that it is safe to ignore the situation. + Eliminated internal use of setjmp() in pngread.c and pngwrite.c + Reordered ancillary chunks in pngtest.png to be the same as what + pngtest now produces, and made some cosmetic changes to pngtest output. + Eliminated deprecated png_read_init_3() and png_write_init_3() functions. + version 1.4.0betaN [future] Build shared libraries with -lz and sometimes -lm. @@ -2103,3 +2112,4 @@ to subscribe) or to glennrp at users.sourceforge.net Glenn R-P +*/ diff --git a/INSTALL b/INSTALL index 8d57642d6..59b53decd 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ -Installing libpng version 1.4.0beta53 - April 1, 2009 +Installing libpng version 1.4.0beta54 - April 13, 2009 On Unix/Linux and similar systems, you can simply type @@ -44,7 +44,7 @@ to have access to the zlib.h and zconf.h include files that correspond to the version of zlib that's installed. You can rename the directories that you downloaded (they -might be called "libpng-1.4.0beta53" or "lpng109" and "zlib-1.2.1" +might be called "libpng-1.4.0beta54" or "lpng109" and "zlib-1.2.1" or "zlib121") so that you have directories called "zlib" and "libpng". Your directory structure should look like this: @@ -95,14 +95,14 @@ include CMakeLists.txt => "cmake" script makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.elf => Linux/ELF makefile symbol versioning, - gcc, creates libpng14.so.14.1.4.0beta53) + gcc, creates libpng14.so.14.1.4.0beta54) makefile.linux => Linux/ELF makefile - (gcc, creates libpng14.so.14.1.4.0beta53) + (gcc, creates libpng14.so.14.1.4.0beta54) makefile.gcmmx => Linux/ELF makefile - (gcc, creates libpng14.so.14.1.4.0beta53, + (gcc, creates libpng14.so.14.1.4.0beta54, uses assembler code tuned for Intel MMX platform) makefile.nommx => Linux/ELF makefile - (gcc, creates libpng14.so.14.1.4.0beta53 + (gcc, creates libpng14.so.14.1.4.0beta54 does not use Intel MMX assembler code) makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.knr => Archaic UNIX Makefile that converts files with @@ -125,12 +125,12 @@ include makefile.openbsd => OpenBSD makefile makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib) makefile.sggcc => Silicon Graphics (gcc, - creates libpng14.so.14.1.4.0beta53) + creates libpng14.so.14.1.4.0beta54) makefile.sunos => Sun makefile makefile.solaris => Solaris 2.X makefile (gcc, - creates libpng14.so.14.1.4.0beta53) + creates libpng14.so.14.1.4.0beta54) makefile.so9 => Solaris 9 makefile (gcc, - creates libpng14.so.14.1.4.0beta53) + creates libpng14.so.14.1.4.0beta54) makefile.32sunu => Sun Ultra 32-bit makefile makefile.64sunu => Sun Ultra 64-bit makefile makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc diff --git a/KNOWNBUG b/KNOWNBUG index ed7d24f56..6574320b0 100644 --- a/KNOWNBUG +++ b/KNOWNBUG @@ -1,5 +1,5 @@ -Known bugs in libpng version 1.4.0beta53 +Known bugs in libpng version 1.4.0beta54 1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when reading interlaced PNG files, when assembler code is enabled but running diff --git a/LICENSE b/LICENSE index ed88eccc4..a1c174047 100644 --- a/LICENSE +++ b/LICENSE @@ -8,7 +8,7 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: If you modify libpng you may insert additional notices immediately following this sentence. -libpng versions 1.2.6, August 15, 2004, through 1.4.0beta53, April 1, 2009, are +libpng versions 1.2.6, August 15, 2004, through 1.4.0beta54, April 13, 2009, are Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.2.5 with the following individual added to the list of Contributing Authors @@ -106,4 +106,4 @@ certification mark of the Open Source Initiative. Glenn Randers-Pehrson glennrp at users.sourceforge.net -April 1, 2009 +April 13, 2009 diff --git a/Makefile.am b/Makefile.am index 68fed5bda..d7beeb8f3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -86,7 +86,7 @@ EXTRA_DIST= \ ${srcdir}/contrib/pngsuite/* \ ${srcdir}/contrib/visupng/* \ $(TESTS) \ - example.c libpng-1.4.0beta53.txt pngvcrd.c + example.c libpng-1.4.0beta54.txt pngvcrd.c CLEANFILES= pngout.png libpng14.pc libpng14-config libpng.vers \ libpng.sym diff --git a/Makefile.in b/Makefile.in index 353bc6f01..4446d8021 100644 --- a/Makefile.in +++ b/Makefile.in @@ -331,7 +331,7 @@ EXTRA_DIST = \ ${srcdir}/contrib/pngsuite/* \ ${srcdir}/contrib/visupng/* \ $(TESTS) \ - example.c libpng-1.4.0beta53.txt pngvcrd.c + example.c libpng-1.4.0beta54.txt pngvcrd.c CLEANFILES = pngout.png libpng14.pc libpng14-config libpng.vers \ libpng.sym diff --git a/README b/README index 034ff5db0..41d23c366 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -README for libpng version 1.4.0beta53 - April 1, 2009 (shared library 14.0) +README for libpng version 1.4.0beta54 - April 13, 2009 (shared library 14.0) See the note about version numbers near the top of png.h See INSTALL for instructions on how to install libpng. @@ -184,11 +184,11 @@ Files in this distribution: descrip.mms => VMS makefile for MMS or MMK makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.elf => Linux/ELF makefile symbol versioning, - gcc, creates libpng14.so.14.1.4.0beta53) + gcc, creates libpng14.so.14.1.4.0beta54) makefile.linux => Linux/ELF makefile - (gcc, creates libpng14.so.14.1.4.0beta53) + (gcc, creates libpng14.so.14.1.4.0beta54) makefile.gcmmx => Linux/ELF makefile - (gcc, creates libpng14.so.14.1.4.0beta53, + (gcc, creates libpng14.so.14.1.4.0beta54, uses assembler code tuned for Intel MMX platform) makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.knr => Archaic UNIX Makefile that converts files with @@ -210,12 +210,12 @@ Files in this distribution: makefile.openbsd => OpenBSD makefile makefile.sgi => Silicon Graphics IRIX (cc, creates static lib) makefile.sggcc => Silicon Graphics - (gcc, creates libpng14.so.14.1.4.0beta53) + (gcc, creates libpng14.so.14.1.4.0beta54) makefile.sunos => Sun makefile makefile.solaris => Solaris 2.X makefile - (gcc, creates libpng14.so.14.1.4.0beta53) + (gcc, creates libpng14.so.14.1.4.0beta54) makefile.so9 => Solaris 9 makefile - (gcc, creates libpng14.so.14.1.4.0beta53) + (gcc, creates libpng14.so.14.1.4.0beta54) makefile.32sunu => Sun Ultra 32-bit makefile makefile.64sunu => Sun Ultra 64-bit makefile makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc diff --git a/TODO b/TODO index a5f639577..3db4a93aa 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,4 @@ +/* TODO - list of things to do for libpng: Final bug fixes. @@ -22,3 +23,4 @@ Build gamma tables using fixed point (and do away with floating point entirely). Use greater precision when changing to linear gamma for compositing against background and doing rgb-to-gray transformation. Investigate pre-incremented loop counters and other loop constructions. +*/ diff --git a/configure b/configure index d4965ba59..1f79fb9fb 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.62 for libpng 1.4.0beta53. +# Generated by GNU Autoconf 2.62 for libpng 1.4.0beta54. # # Report bugs to . # @@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='libpng' PACKAGE_TARNAME='libpng' -PACKAGE_VERSION='1.4.0beta53' -PACKAGE_STRING='libpng 1.4.0beta53' +PACKAGE_VERSION='1.4.0beta54' +PACKAGE_STRING='libpng 1.4.0beta54' PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net' ac_unique_file="pngget.c" @@ -1484,7 +1484,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libpng 1.4.0beta53 to adapt to many kinds of systems. +\`configure' configures libpng 1.4.0beta54 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1554,7 +1554,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libpng 1.4.0beta53:";; + short | recursive ) echo "Configuration of libpng 1.4.0beta54:";; esac cat <<\_ACEOF @@ -1661,7 +1661,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libpng configure 1.4.0beta53 +libpng configure 1.4.0beta54 generated by GNU Autoconf 2.62 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1675,7 +1675,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libpng $as_me 1.4.0beta53, which was +It was created by libpng $as_me 1.4.0beta54, which was generated by GNU Autoconf 2.62. Invocation command line was $ $0 $@ @@ -2389,7 +2389,7 @@ fi # Define the identity of the package. PACKAGE='libpng' - VERSION='1.4.0beta53' + VERSION='1.4.0beta54' cat >>confdefs.h <<_ACEOF @@ -2558,7 +2558,7 @@ fi -PNGLIB_VERSION=1.4.0beta53 +PNGLIB_VERSION=1.4.0beta54 PNGLIB_MAJOR=1 PNGLIB_MINOR=4 PNGLIB_RELEASE=0 @@ -13125,7 +13125,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libpng $as_me 1.4.0beta53, which was +This file was extended by libpng $as_me 1.4.0beta54, which was generated by GNU Autoconf 2.62. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13178,7 +13178,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -libpng config.status 1.4.0beta53 +libpng config.status 1.4.0beta54 configured by $0, generated by GNU Autoconf 2.62, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.ac b/configure.ac index 52c992f8c..ce9761140 100644 --- a/configure.ac +++ b/configure.ac @@ -18,12 +18,12 @@ AC_PREREQ(2.59) dnl Version number stuff here: -AC_INIT([libpng], [1.4.0beta53], [png-mng-implement@lists.sourceforge.net]) +AC_INIT([libpng], [1.4.0beta54], [png-mng-implement@lists.sourceforge.net]) AM_INIT_AUTOMAKE dnl stop configure from automagically running automake AM_MAINTAINER_MODE -PNGLIB_VERSION=1.4.0beta53 +PNGLIB_VERSION=1.4.0beta54 PNGLIB_MAJOR=1 PNGLIB_MINOR=4 PNGLIB_RELEASE=0 diff --git a/contrib/pngminim/decoder/gather.sh b/contrib/pngminim/decoder/gather.sh index e28ddaf03..6230e816d 100755 --- a/contrib/pngminim/decoder/gather.sh +++ b/contrib/pngminim/decoder/gather.sh @@ -1,7 +1,7 @@ cp ../../pngminus/png2pnm.c pngm2pnm.c cp ../../../*.h . cp ../../../*.c . -rm example.c pnggccrd.c pngvcrd.c pngtest.c pngpread.c +rm example.c pnggccrd.c pngvcrd.c pngtest.c pngpread.c pngw*.c # change the following 2 lines if zlib is somewhere else cp ../../../../zlib/*.h . cp ../../../../zlib/*.c . diff --git a/contrib/pngminim/encoder/gather.sh b/contrib/pngminim/encoder/gather.sh index 7b0c80365..46e04da54 100755 --- a/contrib/pngminim/encoder/gather.sh +++ b/contrib/pngminim/encoder/gather.sh @@ -1,7 +1,7 @@ cp ../../pngminus/pnm2png.c pnm2pngm.c cp ../../../*.h . cp ../../../*.c . -rm example.c pnggccrd.c pngvcrd.c pngtest.c pngr*.c +rm example.c pnggccrd.c pngvcrd.c pngtest.c pngr*.c pngpread.c # Change the next 2 lines if zlib is somewhere else. cp ../../../../zlib/*.h . cp ../../../../zlib/*.c . diff --git a/example.c b/example.c index 0a58a8997..17a3e307b 100644 --- a/example.c +++ b/example.c @@ -2,7 +2,7 @@ #if 0 /* in case someone actually tries to compile this */ /* example.c - an example of using libpng - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * This file has been placed in the public domain by the authors. * Maintained 1998-2009 Glenn Randers-Pehrson * Maintained 1996, 1997 Andreas Dilger) diff --git a/libpng-1.4.0beta53.txt b/libpng-1.4.0beta54.txt similarity index 99% rename from libpng-1.4.0beta53.txt rename to libpng-1.4.0beta54.txt index 87b3c0ce0..fb3c9b058 100644 --- a/libpng-1.4.0beta53.txt +++ b/libpng-1.4.0beta54.txt @@ -1,6 +1,6 @@ libpng.txt - A description on how to use and modify libpng - libpng version 1.4.0beta53 - April 1, 2009 + libpng version 1.4.0beta54 - April 13, 2009 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2009 Glenn Randers-Pehrson @@ -9,9 +9,9 @@ libpng.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.4.0beta53 - April 1, 2009 + libpng versions 0.97, January 1998, through 1.4.0beta54 - April 13, 2009 Updated and distributed by Glenn Randers-Pehrson - Copyright (c) 1998-2008 Glenn Randers-Pehrson + Copyright (c) 1998-2009 Glenn Randers-Pehrson libpng 1.0 beta 6 version 0.96 May 28, 1997 Updated and distributed by Andreas Dilger @@ -883,7 +883,7 @@ things. As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was added. It expands the sample depth without changing tRNS to alpha. -As of libpng version 1.4.0beta53, not all possible expansions are supported. +As of libpng version 1.4.0beta54, not all possible expansions are supported. In the following table, the 01 means grayscale with depth<8, 31 means indexed with depth<8, other numerals represent the color type, "T" means @@ -3045,13 +3045,13 @@ We removed the trailing '.' from the warning and error messages. X. Y2K Compliance in libpng -April 1, 2009 +April 13, 2009 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.4.0beta53 are Y2K compliant. It is my belief that earlier +upward through 1.4.0beta54 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has three year fields. One is a 2-byte unsigned integer that diff --git a/libpng.3 b/libpng.3 index b9f7590f8..fe0f0124d 100644 --- a/libpng.3 +++ b/libpng.3 @@ -1,6 +1,6 @@ -.TH LIBPNG 3 "April 1, 2009" +.TH LIBPNG 3 "April 13, 2009" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0beta53 +libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0beta54 .SH SYNOPSIS \fI\fB @@ -809,7 +809,7 @@ Following is a copy of the libpng.txt file that accompanies libpng. .SH LIBPNG.TXT libpng.txt - A description on how to use and modify libpng - libpng version 1.4.0beta53 - April 1, 2009 + libpng version 1.4.0beta54 - April 13, 2009 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2009 Glenn Randers-Pehrson @@ -818,9 +818,9 @@ libpng.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.4.0beta53 - April 1, 2009 + libpng versions 0.97, January 1998, through 1.4.0beta54 - April 13, 2009 Updated and distributed by Glenn Randers-Pehrson - Copyright (c) 1998-2008 Glenn Randers-Pehrson + Copyright (c) 1998-2009 Glenn Randers-Pehrson libpng 1.0 beta 6 version 0.96 May 28, 1997 Updated and distributed by Andreas Dilger @@ -1692,7 +1692,7 @@ things. As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was added. It expands the sample depth without changing tRNS to alpha. -As of libpng version 1.4.0beta53, not all possible expansions are supported. +As of libpng version 1.4.0beta54, not all possible expansions are supported. In the following table, the 01 means grayscale with depth<8, 31 means indexed with depth<8, other numerals represent the color type, "T" means @@ -3854,13 +3854,13 @@ We removed the trailing '.' from the warning and error messages. .SH X. Y2K Compliance in libpng -April 1, 2009 +April 13, 2009 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.4.0beta53 are Y2K compliant. It is my belief that earlier +upward through 1.4.0beta54 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has three year fields. One is a 2-byte unsigned integer that @@ -4028,7 +4028,7 @@ the first widely used release: 1.4.0beta9-14 14 10400 14.so.0.0[.0] 1.2.13 13 10213 12.so.0.13[.0] 1.4.0beta15-36 14 10400 14.so.0.0[.0] - 1.4.0beta37-53 14 10400 14.so.14.0[.0] + 1.4.0beta37-54 14 10400 14.so.14.0[.0] Henceforth the source version will match the shared-library minor and patch numbers; the shared-library major version number will be @@ -4084,7 +4084,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.4.0beta53 - April 1, 2009: +Libpng version 1.4.0beta54 - April 13, 2009: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). @@ -4105,7 +4105,7 @@ included in the libpng distribution, the latter shall prevail.) If you modify libpng you may insert additional notices immediately following this sentence. -libpng versions 1.2.6, August 15, 2004, through 1.4.0beta53, April 1, 2009, are +libpng versions 1.2.6, August 15, 2004, through 1.4.0beta54, April 13, 2009, are Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.2.5 with the following individual added to the list of Contributing Authors @@ -4204,7 +4204,7 @@ certification mark of the Open Source Initiative. Glenn Randers-Pehrson glennrp at users.sourceforge.net -April 1, 2009 +April 13, 2009 .\" end of man page diff --git a/libpngpf.3 b/libpngpf.3 index a6cbfaffa..f55fdd352 100644 --- a/libpngpf.3 +++ b/libpngpf.3 @@ -1,6 +1,6 @@ -.TH LIBPNGPF 3 "April 1, 2009" +.TH LIBPNGPF 3 "April 13, 2009" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0beta53 +libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0beta54 (private functions) .SH SYNOPSIS \fB#include \fP diff --git a/png.5 b/png.5 index e86584853..34dd7f703 100644 --- a/png.5 +++ b/png.5 @@ -1,4 +1,4 @@ -.TH PNG 5 "April 1, 2009" +.TH PNG 5 "April 13, 2009" .SH NAME png \- Portable Network Graphics (PNG) format .SH DESCRIPTION diff --git a/png.c b/png.c index c3b607611..38472476e 100644 --- a/png.c +++ b/png.c @@ -1,7 +1,7 @@ /* png.c - location for general purpose libpng functions * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -13,7 +13,7 @@ #include "pngpriv.h" /* Generate a compiler error if there is an old png.h in the search path. */ -typedef version_1_4_0beta53 Your_png_h_is_not_version_1_4_0beta53; +typedef version_1_4_0beta54 Your_png_h_is_not_version_1_4_0beta54; /* Version information for C files. This had better match the version * string defined in png.h. */ @@ -641,13 +641,13 @@ png_get_copyright(png_structp png_ptr) #else #ifdef __STDC__ return ((png_charp) PNG_STRING_NEWLINE \ - "libpng version x 1.4.0beta53 - April 1, 2009" PNG_STRING_NEWLINE \ + "libpng version x 1.4.0beta54 - April 13, 2009" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2009 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ PNG_STRING_NEWLINE); #else - return ((png_charp) "libpng version 1.4.0beta53 - April 1, 2009\ + return ((png_charp) "libpng version 1.4.0beta54 - April 13, 2009\ Copyright (c) 1998-2009 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."); diff --git a/png.h b/png.h index a7f71653e..fd2b0a9d9 100644 --- a/png.h +++ b/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.4.0beta53 - April 1, 2009 + * libpng version 1.4.0beta54 - April 13, 2009 * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -9,7 +9,7 @@ * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.4.0beta53 - April 1, 2009: Glenn + * libpng versions 0.97, January 1998, through 1.4.0beta54 - April 13, 2009: Glenn * See also "Contributing Authors", below. * * Note about libpng version numbers: @@ -127,7 +127,7 @@ * 1.4.0beta9-14 14 10400 14.so.0.0[.0] * 1.2.13 13 10213 12.so.0.10[.0] * 1.4.0beta15-36 14 10400 14.so.0.0[.0] - * 1.4.0beta37-53 14 10400 14.so.14.0[.0] + * 1.4.0beta37-54 14 10400 14.so.14.0[.0] * * Henceforth the source version will match the shared-library major * and minor numbers; the shared-library major version number will be @@ -157,7 +157,7 @@ * If you modify libpng you may insert additional notices immediately following * this sentence. * - * libpng versions 1.2.6, August 15, 2004, through 1.4.0beta53, April 1, 2009, are + * libpng versions 1.2.6, August 15, 2004, through 1.4.0beta54, April 13, 2009, are * Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are * distributed according to the same disclaimer and license as libpng-1.2.5 * with the following individual added to the list of Contributing Authors: @@ -275,7 +275,7 @@ * an official declaration. * * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.4.0beta53 are Y2K compliant. It is my belief that earlier + * upward through 1.4.0beta54 are Y2K compliant. It is my belief that earlier * versions were also Y2K compliant. * * Libpng only has three year fields. One is a 2-byte unsigned integer @@ -331,9 +331,9 @@ */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.4.0beta53" +#define PNG_LIBPNG_VER_STRING "1.4.0beta54" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.4.0beta53 - April 1, 2009\n" + " libpng version 1.4.0beta54 - April 13, 2009\n" #define PNG_LIBPNG_VER_SONUM 14 #define PNG_LIBPNG_VER_DLLNUM 14 @@ -345,7 +345,7 @@ /* This should match the numeric part of the final component of * PNG_LIBPNG_VER_STRING, omitting any leading zero: */ -#define PNG_LIBPNG_VER_BUILD 53 +#define PNG_LIBPNG_VER_BUILD 54 /* Release Status */ #define PNG_LIBPNG_BUILD_ALPHA 1 @@ -1356,7 +1356,7 @@ struct png_struct_def /* This triggers a compiler error in png.c, if png.c and png.h * do not agree upon the version number. */ -typedef png_structp version_1_4_0beta53; +typedef png_structp version_1_4_0beta54; typedef png_struct FAR * FAR * png_structpp; diff --git a/pngconf.h b/pngconf.h index 8317fba45..caf3663bf 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.4.0beta53 - April 1, 2009 + * libpng version 1.4.0beta54 - April 13, 2009 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -317,21 +317,29 @@ #ifdef PNG_SETJMP_SUPPORTED /* This is an attempt to force a single setjmp behaviour on Linux. If * the X config stuff didn't define _BSD_SOURCE we wouldn't need this. + * + * You can bypass this test if you know that your application uses exactly + * the same setjmp.h that was included when libpng was built. Only define + * PNG_SKIP_SETJMP_CHECK while building your application, prior to the + * application's '#include "png.h"'. Don't define PNG_SKIP_SETJMP_CHECK + * while building a separate libpng library for general use. */ -# ifdef __linux__ -# ifdef _BSD_SOURCE -# define PNG_SAVE_BSD_SOURCE -# undef _BSD_SOURCE -# endif -# ifdef _SETJMP_H - /* If you encounter a compiler error here, see the explanation - * near the end of INSTALL. - */ - __png.h__ already includes setjmp.h; - __dont__ include it again.; -# endif -# endif /* __linux__ */ +# ifndef PNG_SKIP_SETJMP_CHECK +# ifdef __linux__ +# ifdef _BSD_SOURCE +# define PNG_SAVE_BSD_SOURCE +# undef _BSD_SOURCE +# endif +# ifdef _SETJMP_H + /* If you encounter a compiler error here, see the explanation + * near the end of INSTALL. + */ + __pngconf.h__ in libpng already includes setjmp.h; + __dont__ include it again.; +# endif +# endif /* __linux__ */ +# endif /* PNG_SKIP_SETJMP_CHECK */ /* include setjmp.h for error handling */ # include diff --git a/pngerror.c b/pngerror.c index 4116f434d..b99b6a4c5 100644 --- a/pngerror.c +++ b/pngerror.c @@ -1,7 +1,7 @@ /* pngerror.c - stub functions for i/o and memory allocation * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngget.c b/pngget.c index 1a1ddced1..a72ee051f 100644 --- a/pngget.c +++ b/pngget.c @@ -1,7 +1,7 @@ /* pngget.c - retrieval of values from info struct * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngmem.c b/pngmem.c index 2021329a2..07b1249ec 100644 --- a/pngmem.c +++ b/pngmem.c @@ -1,7 +1,7 @@ /* pngmem.c - stub functions for memory allocation * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngpread.c b/pngpread.c index c8147c08a..025656c8a 100644 --- a/pngpread.c +++ b/pngpread.c @@ -1,7 +1,7 @@ /* pngpread.c - read a png file in push mode * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngpriv.h b/pngpriv.h index 5b81811f2..5a7c73ae5 100644 --- a/pngpriv.h +++ b/pngpriv.h @@ -1,7 +1,7 @@ /* pngpriv.h - private declarations for use inside libpng * - * libpng version 1.4.0beta53 - April 1, 2009 + * libpng version 1.4.0beta54 - April 13, 2009 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -275,14 +275,6 @@ extern "C" { * be found in the files where the functions are located. */ -extern PNG_EXPORT(void,png_read_init_3) PNGARG((png_structpp ptr_ptr, - png_const_charp user_png_ver, png_size_t png_struct_size)); -extern PNG_EXPORT(void,png_write_init_3) PNGARG((png_structpp ptr_ptr, - png_const_charp user_png_ver, png_size_t png_struct_size)); -extern PNG_EXPORT(void,png_write_init_2) PNGARG((png_structp png_ptr, - png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t - png_info_size)); - /* Allocate memory for an internal libpng struct */ PNG_EXTERN png_voidp png_create_struct PNGARG((int type)); diff --git a/pngread.c b/pngread.c index ca6c445f9..5c2941edd 100644 --- a/pngread.c +++ b/pngread.c @@ -1,7 +1,7 @@ /* pngread.c - read a PNG file * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -15,6 +15,26 @@ #if defined(PNG_READ_SUPPORTED) #include "pngpriv.h" +/* Clean up PNG structure and deallocate any memory. */ +#ifdef PNG_USER_MEM_SUPPORTED +void /* PRIVATE */ +png_cleanup_read_struct(png_structp png_ptr, + png_free_ptr free_fn, png_voidp mem_ptr) +#else +void /* PRIVATE */ +png_cleanup_read_struct(png_structp png_ptr) +#endif + { + png_free(png_ptr, png_ptr->zbuf); + png_ptr->zbuf = NULL; +#ifdef PNG_USER_MEM_SUPPORTED + png_destroy_struct_2((png_voidp)png_ptr, + (png_free_ptr)free_fn, (png_voidp)mem_ptr); +#else + png_destroy_struct((png_voidp)png_ptr); +#endif + } + /* Create a PNG structure for reading, and allocate any memory needed. */ png_structp PNGAPI png_create_read_struct(png_const_charp user_png_ver, png_voidp error_ptr, @@ -34,6 +54,7 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, { #endif /* PNG_USER_MEM_SUPPORTED */ + int png_cleanup_needed = 0; #ifdef PNG_SETJMP_SUPPORTED volatile #endif @@ -63,28 +84,6 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, png_ptr->user_height_max=PNG_USER_HEIGHT_MAX; #endif -#ifdef PNG_SETJMP_SUPPORTED -#ifdef USE_FAR_KEYWORD - if (setjmp(jmpbuf)) -#else - if (setjmp(png_ptr->jmpbuf)) -#endif - { - png_free(png_ptr, png_ptr->zbuf); - png_ptr->zbuf = NULL; -#ifdef PNG_USER_MEM_SUPPORTED - png_destroy_struct_2((png_voidp)png_ptr, - (png_free_ptr)free_fn, (png_voidp)mem_ptr); -#else - png_destroy_struct((png_voidp)png_ptr); -#endif - return (NULL); - } -#ifdef USE_FAR_KEYWORD - png_memcpy(png_ptr->jmpbuf, jmpbuf, png_sizeof(jmp_buf)); -#endif -#endif - #ifdef PNG_USER_MEM_SUPPORTED png_set_mem_fn(png_ptr, mem_ptr, malloc_fn, free_fn); #endif @@ -132,26 +131,56 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, #ifdef PNG_ERROR_NUMBERS_SUPPORTED png_ptr->flags = 0; #endif - png_error(png_ptr, + png_warning(png_ptr, "Incompatible libpng version in application and library"); + + png_cleanup_needed = 1; } } + if (!png_cleanup_needed) + { /* initialize zbuf - compression buffer */ png_ptr->zbuf_size = PNG_ZBUF_SIZE; - png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, + png_ptr->zbuf = (png_bytep)png_malloc_warn(png_ptr, png_ptr->zbuf_size); + if (png_ptr->zbuf == NULL) + { +#ifdef PNG_USER_MEM_SUPPORTED + png_cleanup_read_struct(png_ptr, free_fn, mem_ptr); +#else + png_cleanup_read_struct(png_ptr); +#endif + return NULL; + } + } png_ptr->zstream.zalloc = png_zalloc; png_ptr->zstream.zfree = png_zfree; png_ptr->zstream.opaque = (voidpf)png_ptr; + if (!png_cleanup_needed) + { switch (inflateInit(&png_ptr->zstream)) { case Z_OK: /* Do nothing */ break; case Z_MEM_ERROR: - case Z_STREAM_ERROR: png_error(png_ptr, "zlib memory error"); break; - case Z_VERSION_ERROR: png_error(png_ptr, "zlib version error"); break; - default: png_error(png_ptr, "Unknown zlib error"); + case Z_STREAM_ERROR: png_warning(png_ptr, "zlib memory error"); + png_cleanup_needed = 1; + case Z_VERSION_ERROR: png_warning(png_ptr, "zlib version error"); + png_cleanup_needed = 1; + default: png_warning(png_ptr, "Unknown zlib error"); + png_cleanup_needed = 1; + } + } + + if (png_cleanup_needed) + { +#ifdef PNG_USER_MEM_SUPPORTED + png_cleanup_read_struct(png_ptr, free_fn, mem_ptr); +#else + png_cleanup_read_struct(png_ptr); +#endif + return (NULL); } png_ptr->zstream.next_out = png_ptr->zbuf; @@ -176,86 +205,6 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, } -void PNGAPI -png_read_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver, - png_size_t png_struct_size) -{ -#ifdef PNG_SETJMP_SUPPORTED - jmp_buf tmp_jmp; /* to save current jump buffer */ -#endif - - int i = 0; - - png_structp png_ptr=*ptr_ptr; - - if (png_ptr == NULL) return; - - do - { - if (user_png_ver[i] != png_libpng_ver[i]) - { -#ifdef PNG_LEGACY_SUPPORTED - png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH; -#else - png_ptr->warning_fn = NULL; - png_warning(png_ptr, - "Application uses deprecated png_read_init() and should be recompiled"); - break; -#endif - } - } while (png_libpng_ver[i++]); - - png_debug(1, "in png_read_init_3"); - -#ifdef PNG_SETJMP_SUPPORTED - /* save jump buffer and error functions */ - png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof(jmp_buf)); -#endif - - if (png_sizeof(png_struct) > png_struct_size) - { - png_destroy_struct(png_ptr); - *ptr_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG); - png_ptr = *ptr_ptr; - } - - /* reset all variables to 0 */ - png_memset(png_ptr, 0, png_sizeof(png_struct)); - -#ifdef PNG_SETJMP_SUPPORTED - /* restore jump buffer */ - png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof(jmp_buf)); -#endif - - /* added at libpng-1.2.6 */ -#ifdef PNG_SET_USER_LIMITS_SUPPORTED - png_ptr->user_width_max=PNG_USER_WIDTH_MAX; - png_ptr->user_height_max=PNG_USER_HEIGHT_MAX; -#endif - - /* initialize zbuf - compression buffer */ - png_ptr->zbuf_size = PNG_ZBUF_SIZE; - png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, - png_ptr->zbuf_size); - png_ptr->zstream.zalloc = png_zalloc; - png_ptr->zstream.zfree = png_zfree; - png_ptr->zstream.opaque = (voidpf)png_ptr; - - switch (inflateInit(&png_ptr->zstream)) - { - case Z_OK: /* Do nothing */ break; - case Z_MEM_ERROR: - case Z_STREAM_ERROR: png_error(png_ptr, "zlib memory"); break; - case Z_VERSION_ERROR: png_error(png_ptr, "zlib version"); break; - default: png_error(png_ptr, "Unknown zlib error"); - } - - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - - png_set_read_fn(png_ptr, NULL, NULL); -} - #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED /* Read the information before the actual image data. This has been * changed in v0.90 to allow reading a file that already has the magic diff --git a/pngrio.c b/pngrio.c index e3d7e888b..20e69c80f 100644 --- a/pngrio.c +++ b/pngrio.c @@ -1,7 +1,7 @@ /* pngrio.c - functions for data input * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngrtran.c b/pngrtran.c index 5ac73ca30..e5adad324 100644 --- a/pngrtran.c +++ b/pngrtran.c @@ -1,7 +1,7 @@ /* pngrtran.c - transforms the data in a row for PNG readers * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngrutil.c b/pngrutil.c index 6d4c17fb6..6c642d751 100644 --- a/pngrutil.c +++ b/pngrutil.c @@ -1,7 +1,7 @@ /* pngrutil.c - utilities to read a PNG file * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngset.c b/pngset.c index e786fb5b3..277df8f93 100644 --- a/pngset.c +++ b/pngset.c @@ -1,7 +1,7 @@ /* pngset.c - storage of image information into info struct * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngtest.c b/pngtest.c index 8b3f49a16..97af12b5f 100644 --- a/pngtest.c +++ b/pngtest.c @@ -1,7 +1,7 @@ /* pngtest.c - a simple test program to test libpng * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -1097,7 +1097,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) ster_chunk_data[1]; if (verbose) - fprintf(STDERR, "stereo mode = %lu\n", + fprintf(STDERR, "\n stereo mode = %lu\n", (unsigned long)(user_chunk_data[0] - 1)); ster_chunk_data[0]=(unsigned char)(user_chunk_data[0] - 1); png_write_chunk(write_ptr, png_sTER, ster_chunk_data, 1); @@ -1110,7 +1110,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) vpag_chunk_data[9]; if (verbose) - fprintf(STDERR, "vpAg = %lu x %lu, units=%lu\n", + fprintf(STDERR, " vpAg = %lu x %lu, units = %lu\n", (unsigned long)user_chunk_data[1], (unsigned long)user_chunk_data[2], (unsigned long)user_chunk_data[3]); @@ -1254,7 +1254,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) png_uint_32 iwidth, iheight; iwidth = png_get_image_width(write_ptr, write_info_ptr); iheight = png_get_image_height(write_ptr, write_info_ptr); - fprintf(STDERR, "Image width = %lu, height = %lu\n", + fprintf(STDERR, "\n Image width = %lu, height = %lu\n", (unsigned long)iwidth, (unsigned long)iheight); } #endif @@ -1365,7 +1365,7 @@ main(int argc, char *argv[]) int multiple = 0; int ierror = 0; - fprintf(STDERR, "Testing libpng version %s\n", PNG_LIBPNG_VER_STRING); + fprintf(STDERR, "\n Testing libpng version %s\n", PNG_LIBPNG_VER_STRING); fprintf(STDERR, " with zlib version %s\n", ZLIB_VERSION); fprintf(STDERR, "%s", png_get_copyright(NULL)); /* Show the version of libpng used in building the library */ @@ -1453,7 +1453,7 @@ main(int argc, char *argv[]) int k; #endif int kerror; - fprintf(STDERR, "Testing %s:", argv[i]); + fprintf(STDERR, "\n Testing %s:", argv[i]); kerror = test_one_file(argv[i], outname); if (kerror == 0) { @@ -1523,7 +1523,7 @@ main(int argc, char *argv[]) if (i == 1) status_dots_requested = 1; else if (verbose == 0)status_dots_requested = 0; if (i == 0 || verbose == 1 || ierror != 0) - fprintf(STDERR, "Testing %s:", inname); + fprintf(STDERR, "\n Testing %s:", inname); kerror = test_one_file(inname, outname); if (kerror == 0) { @@ -1554,7 +1554,7 @@ main(int argc, char *argv[]) else { if (verbose == 0 && i != 2) - fprintf(STDERR, "Testing %s:", inname); + fprintf(STDERR, "\n Testing %s:", inname); fprintf(STDERR, " FAIL\n"); ierror += kerror; } @@ -1604,11 +1604,11 @@ main(int argc, char *argv[]) #endif if (ierror == 0) - fprintf(STDERR, "libpng passes test\n"); + fprintf(STDERR, " libpng passes test\n"); else - fprintf(STDERR, "libpng FAILS test\n"); + fprintf(STDERR, " libpng FAILS test\n"); return (int)(ierror != 0); } /* Generate a compiler error if there is an old png.h in the search path. */ -typedef version_1_4_0beta53 your_png_h_is_not_version_1_4_0beta53; +typedef version_1_4_0beta54 your_png_h_is_not_version_1_4_0beta54; diff --git a/pngtest.png b/pngtest.png index cfdd36f28..b86459b24 100644 Binary files a/pngtest.png and b/pngtest.png differ diff --git a/pngtrans.c b/pngtrans.c index 2c59b473d..46d19c3ce 100644 --- a/pngtrans.c +++ b/pngtrans.c @@ -1,7 +1,7 @@ /* pngtrans.c - transforms the data in a row (used by both readers and writers) * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngwio.c b/pngwio.c index 9c39b13fc..4605176e4 100644 --- a/pngwio.c +++ b/pngwio.c @@ -1,7 +1,7 @@ /* pngwio.c - functions for data output * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngwrite.c b/pngwrite.c index 438a3975b..de41d95a4 100644 --- a/pngwrite.c +++ b/pngwrite.c @@ -1,7 +1,7 @@ /* pngwrite.c - general routines to write a PNG file * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -429,6 +429,27 @@ png_convert_from_time_t(png_timep ptime, time_t ttime) } #endif + +/* Clean up PNG structure and deallocate any memory. */ +#ifdef PNG_USER_MEM_SUPPORTED +void /* PRIVATE */ +png_cleanup_write_struct(png_structp png_ptr, + png_free_ptr free_fn, png_voidp mem_ptr) +#else +void /* PRIVATE */ +png_cleanup_write_struct(png_structp png_ptr) +#endif + { + png_free(png_ptr, png_ptr->zbuf); + png_ptr->zbuf = NULL; +#ifdef PNG_USER_MEM_SUPPORTED + png_destroy_struct_2((png_voidp)png_ptr, + (png_free_ptr)free_fn, (png_voidp)mem_ptr); +#else + png_destroy_struct((png_voidp)png_ptr); +#endif + } + /* Initialize png_ptr structure, and allocate any memory needed */ png_structp PNGAPI png_create_write_struct(png_const_charp user_png_ver, png_voidp error_ptr, @@ -446,6 +467,7 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn) { #endif /* PNG_USER_MEM_SUPPORTED */ + int png_cleanup_needed = 0; #ifdef PNG_SETJMP_SUPPORTED volatile #endif @@ -472,21 +494,6 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, png_ptr->user_height_max=PNG_USER_HEIGHT_MAX; #endif -#ifdef PNG_SETJMP_SUPPORTED -#ifdef USE_FAR_KEYWORD - if (setjmp(jmpbuf)) -#else - if (setjmp(png_ptr->jmpbuf)) -#endif - { - png_free(png_ptr, png_ptr->zbuf); - png_destroy_struct(png_ptr); - return (NULL); - } -#ifdef USE_FAR_KEYWORD - png_memcpy(png_ptr->jmpbuf, jmpbuf, png_sizeof(jmp_buf)); -#endif -#endif #ifdef PNG_USER_MEM_SUPPORTED png_set_mem_fn(png_ptr, mem_ptr, malloc_fn, free_fn); @@ -531,15 +538,30 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, #ifdef PNG_ERROR_NUMBERS_SUPPORTED png_ptr->flags=0; #endif - png_error(png_ptr, + png_warning(png_ptr, "Incompatible libpng version in application and library"); + png_cleanup_needed = 1; } } /* initialize zbuf - compression buffer */ png_ptr->zbuf_size = PNG_ZBUF_SIZE; - png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, - (png_uint_32)png_ptr->zbuf_size); + if (!png_cleanup_needed) + { + png_ptr->zbuf = (png_bytep)png_malloc_warn(png_ptr, + png_ptr->zbuf_size); + if (png_ptr->zbuf == NULL) + png_cleanup_needed = 1; + } + if (png_cleanup_needed) + { +#ifdef PNG_USER_MEM_SUPPORTED + png_cleanup_write_struct(png_ptr, free_fn, mem_ptr); +#else + png_cleanup_write_struct(png_ptr); +#endif + return (NULL); + } png_set_write_fn(png_ptr, NULL, NULL, NULL); @@ -566,77 +588,6 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, /* Initialize png_ptr structure, and allocate any memory needed */ - -void PNGAPI -png_write_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver, - png_size_t png_struct_size) -{ - png_structp png_ptr=*ptr_ptr; -#ifdef PNG_SETJMP_SUPPORTED - jmp_buf tmp_jmp; /* to save current jump buffer */ -#endif - - int i = 0; - - if (png_ptr == NULL) - return; - - do - { - if (user_png_ver[i] != png_libpng_ver[i]) - { -#ifdef PNG_LEGACY_SUPPORTED - png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH; -#else - png_ptr->warning_fn=NULL; - png_warning(png_ptr, - "Application uses deprecated png_write_init() and should be recompiled."); - break; -#endif - } - } while (png_libpng_ver[i++]); - - png_debug(1, "in png_write_init_3"); - -#ifdef PNG_SETJMP_SUPPORTED - /* save jump buffer and error functions */ - png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof(jmp_buf)); -#endif - - if (png_sizeof(png_struct) > png_struct_size) - { - png_destroy_struct(png_ptr); - png_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG); - *ptr_ptr = png_ptr; - } - - /* reset all variables to 0 */ - png_memset(png_ptr, 0, png_sizeof(png_struct)); - - /* added at libpng-1.2.6 */ -#ifdef PNG_SET_USER_LIMITS_SUPPORTED - png_ptr->user_width_max=PNG_USER_WIDTH_MAX; - png_ptr->user_height_max=PNG_USER_HEIGHT_MAX; -#endif - -#ifdef PNG_SETJMP_SUPPORTED - /* restore jump buffer */ - png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof(jmp_buf)); -#endif - - png_set_write_fn(png_ptr, NULL, NULL, NULL); - - /* initialize zbuf - compression buffer */ - png_ptr->zbuf_size = PNG_ZBUF_SIZE; - png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, - (png_uint_32)png_ptr->zbuf_size); - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - png_set_filter_heuristics(png_ptr, PNG_FILTER_HEURISTIC_DEFAULT, - 1, NULL, NULL); -#endif -} - /* Write a few rows of image data. If the image is interlaced, * either you will have to write the 7 sub images, or, if you * have called png_set_interlace_handling(), you will have to diff --git a/pngwtran.c b/pngwtran.c index 055eea47d..e52579615 100644 --- a/pngwtran.c +++ b/pngwtran.c @@ -1,7 +1,7 @@ /* pngwtran.c - transforms the data in a row for PNG writers * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngwutil.c b/pngwutil.c index 545ad344b..96d995084 100644 --- a/pngwutil.c +++ b/pngwutil.c @@ -1,7 +1,7 @@ /* pngwutil.c - utilities to write a PNG file * - * Last changed in libpng 1.4.0 [April 1, 2009] + * Last changed in libpng 1.4.0 [April 13, 2009] * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index 6472ea133..85288a87c 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -178,7 +178,7 @@ configure_file(${PNG_SOURCE_DIR}/scripts/libpng-config.in # SET UP LINKS set_target_properties(${PNG_LIB_NAME} PROPERTIES -# VERSION 0.${PNGLIB_RELEASE}.1.4.0beta53 +# VERSION 0.${PNGLIB_RELEASE}.1.4.0beta54 VERSION 0.${PNGLIB_RELEASE}.0 SOVERSION 0 CLEAN_DIRECT_OUTPUT 1) diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in index ba93c93d6..fc95ece02 100755 --- a/scripts/libpng-config-head.in +++ b/scripts/libpng-config-head.in @@ -8,7 +8,7 @@ # Modeled after libxml-config. -version=1.4.0beta53 +version=1.4.0beta54 prefix="" libdir="" libs="" diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in index 195e2c700..a4689acd8 100644 --- a/scripts/libpng.pc.in +++ b/scripts/libpng.pc.in @@ -5,6 +5,6 @@ includedir=@includedir@/libpng14 Name: libpng Description: Loads and saves PNG files -Version: 1.4.0beta53 +Version: 1.4.0beta54 Libs: -L${libdir} -lpng14 Cflags: -I${includedir} diff --git a/scripts/makefile.32sunu b/scripts/makefile.32sunu index acf554657..4e2317c70 100644 --- a/scripts/makefile.32sunu +++ b/scripts/makefile.32sunu @@ -8,7 +8,7 @@ # Library name: LIBNAME=libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.64sunu b/scripts/makefile.64sunu index 516b505d0..ee6157bb4 100644 --- a/scripts/makefile.64sunu +++ b/scripts/makefile.64sunu @@ -8,7 +8,7 @@ # Library name: LIBNAME=libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.aix b/scripts/makefile.aix index 559bc1358..2ac3d79da 100644 --- a/scripts/makefile.aix +++ b/scripts/makefile.aix @@ -20,7 +20,7 @@ LN_SF = ln -f -s LIBNAME=libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) prefix=/usr/local diff --git a/scripts/makefile.beos b/scripts/makefile.beos index 94af4767a..fb7c5580c 100644 --- a/scripts/makefile.beos +++ b/scripts/makefile.beos @@ -8,7 +8,7 @@ # Library name: LIBNAME=libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin index 7539397ad..46e055ca7 100644 --- a/scripts/makefile.cygwin +++ b/scripts/makefile.cygwin @@ -65,7 +65,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \ LIBNAME = libpng14 PNGMAJ = 14 CYGDLL = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) SHAREDLIB=cygpng$(CYGDLL).dll diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin index 89470ba62..bb2d8023c 100644 --- a/scripts/makefile.darwin +++ b/scripts/makefile.darwin @@ -19,7 +19,7 @@ ZLIBINC=../zlib # Library name: LIBNAME = libpng14 PNGMAJ = 12 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.dec b/scripts/makefile.dec index ab00bf6f4..936e7934e 100644 --- a/scripts/makefile.dec +++ b/scripts/makefile.dec @@ -5,7 +5,7 @@ # Library name: PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) LIBNAME = libpng14 diff --git a/scripts/makefile.elf b/scripts/makefile.elf index 7881df6c0..a90bdcccd 100644 --- a/scripts/makefile.elf +++ b/scripts/makefile.elf @@ -12,7 +12,7 @@ # Library name: LIBNAME = libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx index bbd9c8a18..206fb245d 100644 --- a/scripts/makefile.gcmmx +++ b/scripts/makefile.gcmmx @@ -16,7 +16,7 @@ # Library name: LIBNAME = libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.hp64 b/scripts/makefile.hp64 index 8bca07cee..f18871cb9 100644 --- a/scripts/makefile.hp64 +++ b/scripts/makefile.hp64 @@ -18,7 +18,7 @@ ZLIBINC=/opt/zlib/include # Library name: LIBNAME = libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc index bfa220657..020c38dfe 100644 --- a/scripts/makefile.hpgcc +++ b/scripts/makefile.hpgcc @@ -8,7 +8,7 @@ # Library name: LIBNAME = libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux index 66f209a01..0e0f4daa1 100644 --- a/scripts/makefile.hpux +++ b/scripts/makefile.hpux @@ -18,7 +18,7 @@ ZLIBINC=/opt/zlib/include # Library name: LIBNAME = libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.linux b/scripts/makefile.linux index 1fed80845..86af328f5 100644 --- a/scripts/makefile.linux +++ b/scripts/makefile.linux @@ -6,7 +6,7 @@ # Library name: LIBNAME = libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.mingw b/scripts/makefile.mingw index 88d20ad23..133ea9906 100644 --- a/scripts/makefile.mingw +++ b/scripts/makefile.mingw @@ -81,7 +81,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \ LIBNAME = libpng14 PNGMAJ = 14 MINGDLL = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) SHAREDLIB=libpng$(MINGDLL).dll diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd index 50111c6b3..ee8d2e35e 100644 --- a/scripts/makefile.ne12bsd +++ b/scripts/makefile.ne12bsd @@ -14,7 +14,7 @@ INCSDIR=${LOCALBASE}/include/libpng14 LIB= png14 SHLIB_MAJOR= 0 -SHLIB_MINOR= 1.4.0beta53 +SHLIB_MINOR= 1.4.0beta54 SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngwtran.c pngmem.c pngerror.c pngpread.c diff --git a/scripts/makefile.netbsd b/scripts/makefile.netbsd index df5ad7a0e..94c78cc08 100644 --- a/scripts/makefile.netbsd +++ b/scripts/makefile.netbsd @@ -13,7 +13,7 @@ INCSDIR=${LOCALBASE}/include/libpng LIB= png SHLIB_MAJOR= 3 -SHLIB_MINOR= 1.4.0beta53 +SHLIB_MINOR= 1.4.0beta54 SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngwtran.c pngmem.c pngerror.c pngpread.c diff --git a/scripts/makefile.nommx b/scripts/makefile.nommx index 409a8a57b..16b8bf460 100644 --- a/scripts/makefile.nommx +++ b/scripts/makefile.nommx @@ -16,7 +16,7 @@ # Library name: LIBNAME = libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.openbsd b/scripts/makefile.openbsd index 974155426..530df3c08 100644 --- a/scripts/makefile.openbsd +++ b/scripts/makefile.openbsd @@ -8,7 +8,7 @@ LIBDIR= ${PREFIX}/lib MANDIR= ${PREFIX}/man/cat SHLIB_MAJOR= 0 -SHLIB_MINOR= 1.4.0beta53 +SHLIB_MINOR= 1.4.0beta54 LIB= png SRCS= png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \ diff --git a/scripts/makefile.sco b/scripts/makefile.sco index f2b0e3c3d..50eebda38 100644 --- a/scripts/makefile.sco +++ b/scripts/makefile.sco @@ -9,7 +9,7 @@ # Library name: LIBNAME = libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc index 3b3b72cdc..7d6145cab 100644 --- a/scripts/makefile.sggcc +++ b/scripts/makefile.sggcc @@ -6,7 +6,7 @@ # Library name: LIBNAME=libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi index e937a8b26..eb1fa99a6 100644 --- a/scripts/makefile.sgi +++ b/scripts/makefile.sgi @@ -6,7 +6,7 @@ # Library name: LIBNAME=libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/makefile.so9 b/scripts/makefile.so9 index 4479adc69..a9e94360d 100644 --- a/scripts/makefile.so9 +++ b/scripts/makefile.so9 @@ -8,7 +8,7 @@ # Library name: PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) LIBNAME = libpng14 diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris index 00c1a8d33..01ad130e4 100644 --- a/scripts/makefile.solaris +++ b/scripts/makefile.solaris @@ -8,7 +8,7 @@ # Library name: LIBNAME = libpng14 PNGMAJ = 14 -PNGMIN = 1.4.0beta53 +PNGMIN = 1.4.0beta54 PNGVER = $(PNGMAJ).$(PNGMIN) # Shared library names: diff --git a/scripts/pngos2.def b/scripts/pngos2.def index 7f2faeb65..89b58a568 100644 --- a/scripts/pngos2.def +++ b/scripts/pngos2.def @@ -2,7 +2,7 @@ ; PNG.LIB module definition file for OS/2 ;---------------------------------------- -; Version 1.4.0beta53 +; Version 1.4.0beta54 LIBRARY PNG DESCRIPTION "PNG image compression library for OS/2" @@ -174,24 +174,14 @@ EXPORTS png_write_row png_write_rows png_write_sig - png_read_init_2 - png_write_init_2 png_access_version_number png_init_io png_convert_to_rfc1123 png_set_invalid ; Added at version 1.2.0: - png_mmx_support png_permit_empty_plte png_permit_mng_features - png_get_mmx_flagmask - png_get_asm_flagmask - png_get_asm_flags - png_get_mmx_bitdepth_threshold - png_get_mmx_rowbytes_threshold - png_set_asm_flags - png_init_mmx_flags ; Added at version 1.2.2: png_handle_as_unknown diff --git a/scripts/pngwin.def b/scripts/pngwin.def index c8bd11272..aa463ab39 100644 --- a/scripts/pngwin.def +++ b/scripts/pngwin.def @@ -5,7 +5,7 @@ LIBRARY EXPORTS -;Version 1.4.0beta53 +;Version 1.4.0beta54 png_build_grayscale_palette png_chunk_error png_chunk_warning