|  | 
 | Libpng 1.4.0beta89 - November 1, 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. | 
 |  | 
 | Files available for download: | 
 |  | 
 | Source files with LF line endings (for Unix/Linux) and with a | 
 | "configure" script | 
 |  | 
 |    1.4.0beta89.tar.xz (LZMA-compressed, recommended) | 
 |    1.4.0beta89.tar.gz | 
 |    1.4.0beta89.tar.bz2 | 
 |  | 
 | Source files with CRLF line endings (for Windows), without the | 
 | "configure" script | 
 |  | 
 |    lp140b89.zip | 
 |    lp140b89.7z | 
 |  | 
 | Other information: | 
 |  | 
 |    1.4.0beta89-README.txt | 
 |    1.4.0beta89-LICENSE.txt | 
 |  | 
 | Changes since the last public release (1.2.10): | 
 |  | 
 | version 1.2.10beta1 [April 15, 2006] | 
 |   Renamed "config.h" to "png_conf.h" and revised Makefile.am to add | 
 |     -DPNG_BUILDING_LIBPNG to compile directive, and modified pngconf.h | 
 |     to include png_conf.h only when PNG_BUILDING_LIBPNG is defined. | 
 |  | 
 | version 1.2.10beta2 [April 15, 2006] | 
 |   Manually updated Makefile.in and configure.  Changed png_conf.h.in | 
 |     back to config.h. | 
 |  | 
 | version 1.2.10beta3 [April 15, 2006] | 
 |   Change png_conf.h back to config.h in pngconf.h. | 
 |  | 
 | version 1.2.10beta4 [April 16, 2006] | 
 |   Change PNG_BUILDING_LIBPNG to PNG_CONFIGURE_LIBPNG in config/Makefile*. | 
 |  | 
 | version 1.2.10beta5 [April 16, 2006] | 
 |   Added a configure check for compiling assembler code in pnggccrd.c | 
 |  | 
 | version 1.2.10beta6 [April 17, 2006] | 
 |   Revised the configure check for pnggccrd.c | 
 |   Moved -DPNG_CONFIGURE_LIBPNG into @LIBPNG_DEFINES@ | 
 |   Added @LIBPNG_DEFINES@ to arguments when building libpng.sym | 
 |  | 
 | version 1.2.10beta7 [April 18, 2006] | 
 |   Change "exec_prefix=$prefix" to "exec_prefix=$(prefix)" in makefiles. | 
 |  | 
 | version 1.2.10rc1 [April 19, 2006] | 
 |   Ensure pngconf.h doesn't define both PNG_USE_PNGGCCRD and PNG_USE_PNGVCRD | 
 |   Fixed "LN_FS" typo in makefile.sco and makefile.solaris. | 
 |  | 
 | version 1.2.10rc2 [April 19, 2006] | 
 |   Added a backslash between -DPNG_CONFIGURE_LIBPNG and -DPNG_NO_ASSEMBLER_CODE | 
 |     in configure.ac | 
 |   Made the configure warning about versioned symbols less arrogant. | 
 |  | 
 | version 1.2.10rc3 [April 20, 2006] | 
 |   Added a note in libpng.txt that png_set_sig_bytes(8) can be used when | 
 |     writing an embedded PNG without the 8-byte signature. | 
 |  | 
 | version 1.4.0beta1 [April 20, 2006] | 
 |   Enabled iTXt support (changes png_struct, thus requires so-number change). | 
 |   Cleaned up PNG_ASSEMBLER_CODE_SUPPORTED vs PNG_MMX_CODE_SUPPORTED | 
 |   Eliminated PNG_1_0_X and PNG_1_2_X macros. | 
 |   Removed deprecated functions png_read_init, png_write_init, png_info_init, | 
 |     png_permit_empty_plte, png_set_gray_1_2_4_to_8, and removed the | 
 |     deprecated macro PNG_MAX_UINT. | 
 |   Moved "PNG_INTERNAL" parts of png.h and pngconf.h into pngintrn.h | 
 |   Removed many WIN32_WCE #ifdefs (Cosmin). | 
 |   Reduced dependency on C-runtime library when on Windows (Simon-Pierre) | 
 |   Replaced sprintf() with png_sprintf() (Simon-Pierre) | 
 |  | 
 | version 1.4.0beta2 [April 20, 2006] | 
 |   Revised makefiles to avoid making links to libpng.so.* | 
 |   Moved some leftover MMX-related defines from pngconf.h to pngintrn.h | 
 |   Updated scripts/pngos2.def, pngw32.def, and projects/wince/png32ce.def | 
 |   Updated scripts/pngw32.def to comment out MMX functions. | 
 |  | 
 | version 1.2.11beta1 [May 31, 2006] | 
 |   scripts/libpng.pc.in contained "configure" style version info and would | 
 |     not work with makefiles. | 
 |   The shared-library makefiles were linking to libpng.so.0 instead of | 
 |     libpng.so.3 compatibility as the library. | 
 |  | 
 | version 1.4.0beta3 [May 10, 2006] | 
 |   Updated scripts/pngw32.def to comment out MMX functions. | 
 |   Added PNG_NO_GET_INT_32 and PNG_NO_SAVE_INT_32 macros. | 
 |   Revised pngconf.h and added pngconf.h.in so makefiles and configure can | 
 |     pass defines to libpng and applications. | 
 |  | 
 | version 1.4.0beta4 [May 11, 2006] | 
 |   Revised configure.ac, Makefile.am, and many of the makefiles to write | 
 |     their defines in pngconf.h. | 
 |  | 
 | version 1.4.0beta5 [May 15, 2006] | 
 |   Added a missing semicolon in Makefile.am and Makefile.in | 
 |   Deleted extraneous square brackets from configure.ac | 
 |  | 
 | version 1.2.11beta2 [June 2, 2006] | 
 |   Increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid | 
 |     buffer overflow. | 
 |   Fixed bug in example.c (png_set_palette_rgb -> png_set_palette_to_rgb)) | 
 |  | 
 | version 1.4.0beta6 [June 2, 2006] | 
 |   Changed sonum from 0 to 1. | 
 |   Removed unused prototype for png_check_sig() from png.h | 
 |  | 
 | version 1.2.11beta3 [June 5, 2006] | 
 |   Prepended "#! /bin/sh" to ltmail.sh and contrib/pngminus/*.sh (Cosmin). | 
 |   Removed the accidental leftover Makefile.in~ (Cosmin). | 
 |   Avoided potential buffer overflow and optimized buffer in | 
 |     png_write_sCAL(), png_write_sCAL_s() (Cosmin). | 
 |   Removed the include directories and libraries from CFLAGS and LDFLAGS | 
 |     in scripts/makefile.gcc (Nelson A. de Oliveira, Cosmin). | 
 |  | 
 | version 1.2.11beta4 [June 6, 2006] | 
 |   Allow zero-length IDAT chunks after the entire zlib datastream, but not | 
 |     after another intervening chunk type. | 
 |  | 
 | version 1.2.11rc2 [June 14, 2006] | 
 |   Added prototypes for PNG_INCH_CONVERSIONS functions to png.h | 
 |   Revised INSTALL and autogen.sh | 
 |   Fixed typo in several makefiles (-W1 should be -Wl) | 
 |  | 
 | version 1.2.11rc3 [June 15, 2006] | 
 |   Added one zero element to png_gamma_shift[] array in pngrtran.c to avoid | 
 |     reading out of bounds. | 
 |  | 
 | version 1.4.0beta7 [June 16, 2006] | 
 |   Exported png_write_sig (Cosmin). | 
 |   Optimized buffer in png_handle_cHRM() (Cosmin). | 
 |   Set pHYs = 2835 x 2835 pixels per meter, and added | 
 |     sCAL = 0.352778e-3 x 0.352778e-3 meters, in pngtest.png (Cosmin). | 
 |   Added png_set_benign_errors(), png_benign_error(), png_chunk_benign_error(). | 
 |   Added typedef for png_int_32 and png_uint_32 on 64-bit systems. | 
 |  | 
 | version 1.4.0beta8 [June 21, 2006] | 
 |   Added demonstration of user chunk support in pngtest.c, to support the | 
 |     public sTER chunk and a private vpAg chunk. | 
 |  | 
 | version 1.4.0beta9 [July 3, 2006] | 
 |   Removed ordinals from scripts/pngw32.def and removed png_info_int and | 
 |     png_set_gray_1_2_4_to_8 entries. | 
 |   Inline call of png_get_uint_32() in png_get_uint_31(). | 
 |   Use png_get_uint_31() to get vpAg width and height in pngtest.c | 
 |   Removed WINCE and Netware projects. | 
 |   Removed standalone Y2KINFO file. | 
 |  | 
 | version 1.4.0beta10 [July 12, 2006] | 
 |   Added "all: pngconf.h.in pngconf.h" target to Makefile.am | 
 |  | 
 | version 1.4.0beta11 [August 19, 2006] | 
 |   Removed AC_FUNC_MALLOC from configure.ac. | 
 |   Added a warning when writing iCCP profile with mismatched profile length. | 
 |   Patched pnggccrd.c to assemble on x86_64 platforms. | 
 |   Moved chunk header reading into a separate function png_read_chunk_header() | 
 |     in pngrutil.c.  The chunk header (len+sig) is now serialized in a single | 
 |     operation (Cosmin). | 
 |   Implemented support for I/O states. Added png_ptr member io_state, and | 
 |     functions png_get_io_chunk_name() and png_get_io_state() in pngget.c | 
 |     (Cosmin). | 
 |   Added png_get_io_chunk_name and png_get_io_state to scripts/*.def (Cosmin). | 
 |   Renamed scripts/pngw32.* to scripts/pngwin.* (Cosmin). | 
 |   Removed the include directories and libraries from CFLAGS and LDFLAGS | 
 |     in scripts/makefile.gcc (Cosmin). | 
 |   Used png_save_uint_32() to set vpAg width and height in pngtest.c (Cosmin). | 
 |   Cast to proper type when getting/setting vpAg units in pngtest.c (Cosmin). | 
 |   Added pngintrn.h to the Visual C++ projects (Cosmin). | 
 |   Removed scripts/list (Cosmin). | 
 |   Updated copyright year in scripts/pngwin.def (Cosmin). | 
 |   Removed PNG_TYPECAST_NULL and used standard NULL consistently (Cosmin). | 
 |   Disallowed the user to redefine png_size_t, and enforced a consistent use | 
 |     of png_size_t across libpng (Cosmin). | 
 |   Changed the type of png_ptr->rowbytes, PNG_ROWBYTES() and friends | 
 |     to png_size_t (Cosmin). | 
 |   Removed png_convert_size() and replaced png_sizeof with sizeof (Cosmin). | 
 |   Removed some unnecessary type casts (Cosmin). | 
 |   Changed prototype of png_get_compression_buffer_size() and | 
 |     png_set_compression_buffer_size() to work with png_size_t instead of | 
 |     png_uint_32 (Cosmin). | 
 |   Removed png_memcpy_check() and png_memset_check() (Cosmin). | 
 |   Fixed a typo (png_byte --> png_bytep) in libpng.3 and libpng.txt (Cosmin). | 
 |   Clarified that png_zalloc() does not clear the allocated memory, | 
 |     and png_zalloc() and png_zfree() cannot be PNGAPI (Cosmin). | 
 |   Renamed png_mem_size_t to png_alloc_size_t, fixed its definition in | 
 |     pngconf.h, and used it in all memory allocation functions (Cosmin). | 
 |   Renamed pngintrn.h to pngpriv.h, added a comment at the top of the file | 
 |     mentioning that the symbols declared in that file are private, and | 
 |     updated the scripts and the Visual C++ projects accordingly (Cosmin). | 
 |   Removed circular references between pngconf.h and pngconf.h.in in | 
 |     scripts/makefile.vc*win32 (Cosmin). | 
 |   Removing trailing '.' from the warning and error messages (Cosmin). | 
 |   Added pngdefs.h that is built by makefile or configure, instead of | 
 |     pngconf.h.in (Glenn). | 
 |   Detect and fix attempt to write wrong iCCP profile length. | 
 |  | 
 | version 1.4.0beta12 [October 19, 2006] | 
 |   Changed "logical" to "bitwise" in the documentation. | 
 |   Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h | 
 |   Add a typecast to stifle compiler warning in pngrutil.c | 
 |  | 
 | version 1.4.0beta13 [November 10, 2006] | 
 |   Fix potential buffer overflow in sPLT chunk handler. | 
 |   Fix Makefile.am to not try to link to noexistent files. | 
 |  | 
 | version 1.4.0beta14 [November 15, 2006] | 
 |   Check all exported functions for NULL png_ptr. | 
 |  | 
 | version 1.4.0beta15 [November 17, 2006] | 
 |   Relocated two misplaced tests for NULL png_ptr. | 
 |   Built Makefile.in with automake-1.9.6 instead of 1.9.2. | 
 |   Build configure with autoconf-2.60 instead of 2.59. | 
 |   Add "install: all" in Makefile.am so "configure; make install" will work. | 
 |  | 
 | version 1.4.0beta16 [November 17, 2006] | 
 |   Added a typecast in png_zalloc(). | 
 |  | 
 | version 1.4.0beta17 [December 4, 2006] | 
 |   Changed "new_key[79] = '\0';" to "(*new_key)[79] = '\0';" in pngwutil.c | 
 |  | 
 | version 1.4.0beta18 [December 7, 2006] | 
 |   Added scripts/CMakeLists.txt | 
 |  | 
 | version 1.4.0beta19 [May 16, 2007] | 
 |   Revised scripts/CMakeLists.txt | 
 |   Rebuilt configure and Makefile.in with newer tools. | 
 |   Added "png_ptr->num_trans=0" before error return in png_handle_tRNS, | 
 |     to eliminate a vulnerability (CVE-2007-2554, CERT VU#684664) | 
 |  | 
 | version 1.4.0beta20 [July 9, 2008] | 
 |   Moved several PNG_HAVE_* macros from pngpriv.h to png.h because applications | 
 |     calling set_unknown_chunk_location() need them. | 
 |   Moved several macro definitions from pngpriv.h to pngconf.h | 
 |   Added png_ptr->unknown_chunk to hold working unknown chunk data, so it | 
 |     can be free'ed in case of error.  Revised unknown chunk handling in | 
 |     pngrutil.c and pngpread.c to use this structure. | 
 |   Merge with changes to the 1.2.X branch, as of 1.2.19beta10. | 
 |   Revised makefile.mingw | 
 |   Prefer PNG_USE_PNGVCRD when _MSC_VER is defined in pngconf.h | 
 |  | 
 | version 1.4.0beta21 [July 21, 2008] | 
 |   Moved local array "chunkdata" from pngrutil.c to the png_struct, so | 
 |     it will be freed by png_read_destroy() in case of a read error (Kurt | 
 |     Christensen). | 
 |  | 
 | version 1.4.0beta22 [July 21, 2008] | 
 |   Change "purpose" and "buffer" to png_ptr->chunkdata to avoid memory leaking. | 
 |  | 
 | version 1.4.0beta23 [July 22, 2008] | 
 |   Change "chunkdata = NULL" to "png_ptr->chunkdata = NULL" several places in | 
 |     png_decompress_chunk(). | 
 |  | 
 | version 1.4.0beta24 [July 25, 2008] | 
 |   Change all remaining "chunkdata" to "png_ptr->chunkdata" in | 
 |     png_decompress_chunk(), and remove "chunkdata" from parameter list. | 
 |   Put a call to png_check_chunk_name() in png_read_chunk_header(). | 
 |   Revised png_check_chunk_name() to reject a name with a lowercase 3rd byte. | 
 |   Removed two calls to png_check_chunk_name() occuring later in the process. | 
 |   Define PNG_NO_ERROR_NUMBERS by default in pngconf.h | 
 |  | 
 | version 1.4.0beta25 [July 30, 2008] | 
 |   Added a call to png_check_chunk_name() in pngpread.c | 
 |   Reverted png_check_chunk_name() to accept a name with a lowercase 3rd byte. | 
 |   Added png_push_have_buffer() function to pngpread.c | 
 |   Eliminated PNG_BIG_ENDIAN_SUPPORTED and associated png_get_* macros. | 
 |   Made inline expansion of png_get_*() optional with PNG_USE_READ_MACROS. | 
 |   Eliminated all PNG_USELESS_TESTS and PNG_CORRECT_PALETTE_SUPPORTED code. | 
 |   Synced contrib directory and configure files with libpng-1.2.30beta06. | 
 |   Eliminated no-longer-used pngdefs.h (but it's still built in the makefiles) | 
 |   Relocated a misplaced "#endif /* PNG_NO_WRITE_FILTER */" in pngwutil.c | 
 |  | 
 | version 1.4.0beta26 [August 4, 2008] | 
 |   Removed png_push_have_buffer() function in pngpread.c.  It increased the | 
 |     compiled library size slightly. | 
 |   Changed "-Wall" to "-W -Wall" in the CFLAGS in all makefiles (Cosmin Truta) | 
 |   Declared png_ptr "volatile" in pngread.c and pngwrite.c to avoid warnings. | 
 |   Updated contrib/visupng/cexcept.h to version 2.0.1 | 
 |   Added PNG_LITERAL_CHARACTER macros for #, [, and ]. | 
 |  | 
 | version 1.4.0beta27 [August 5, 2008] | 
 |   Revised usage of PNG_LITERAL_SHARP in pngerror.c. | 
 |   Moved newline character from individual png_debug messages into the | 
 |     png_debug macros. | 
 |   Allow user to #define their own png_debug, png_debug1, and png_debug2. | 
 |  | 
 | version 1.4.0beta28 [August 5, 2008] | 
 |   Revised usage of PNG_LITERAL_SHARP in pngerror.c. | 
 |   Added PNG_STRING_NEWLINE macro | 
 |  | 
 | version 1.4.0beta29 [August 9, 2008] | 
 |   Revised usage of PNG_STRING_NEWLINE to work on non-ISO compilers. | 
 |   Added PNG_STRING_COPYRIGHT macro. | 
 |   Added non-ISO versions of png_debug macros. | 
 |  | 
 | version 1.4.0beta30 [August 14, 2008] | 
 |   Added premultiplied alpha feature (Volker Wiendl). | 
 |  | 
 | version 1.4.0beta31 [August 18, 2008] | 
 |   Moved png_set_premultiply_alpha from pngtrans.c to pngrtran.c | 
 |   Removed extra crc check at the end of png_handle_cHRM().  Bug introduced | 
 |     in libpng-1.4.0beta20. | 
 |  | 
 | version 1.4.0beta32 [August 19, 2008] | 
 |   Added PNG_WRITE_FLUSH_SUPPORTED block around new png_flush() call. | 
 |   Revised PNG_NO_STDIO version of png_write_flush() | 
 |  | 
 | version 1.4.0beta33 [August 20, 2008] | 
 |   Added png_set_chunk_cache_max() to limit the total number of sPLT, | 
 |     text, and unknown chunks that can be stored. | 
 |  | 
 | version 1.4.0beta34 [September 6, 2008] | 
 |   Shortened tIME_string to 29 bytes in pngtest.c | 
 |   Fixed off-by-one error introduced in png_push_read_zTXt() function in | 
 |     libpng-1.2.30beta04/pngpread.c (Harald van Dijk) | 
 |  | 
 | version 1.4.0beta35 [October 6, 2008] | 
 |   Changed "trans_values" to "trans_color". | 
 |   Change png_set_gray_1_2_4_to_8() to png_set_expand_gray_1_2_4_to_8() | 
 |     in example.c (debian bug report) | 
 |  | 
 | version 1.4.0beta36 [October 25, 2008] | 
 |   Sync with tEXt vulnerability fix in libpng-1.2.33rc02. | 
 |  | 
 | version 1.4.0beta37 [November 13, 2008] | 
 |   Added png_check_cHRM in png.c and moved checking from pngget.c, pngrutil.c, | 
 |     and pngwrite.c | 
 |  | 
 | version 1.4.0beta38 [November 22, 2008] | 
 |   Added check for zero-area RGB cHRM triange in png_check_cHRM() and | 
 |     png_check_cHRM_fixed(). | 
 |  | 
 | version 1.4.0beta39 [November 23, 2008] | 
 |   Revised png_warning() to write its message on standard output by default | 
 |     when warning_fn is NULL. | 
 |  | 
 | version 1.4.0beta40 [November 24, 2008] | 
 |   Eliminated png_check_cHRM().  Instead, always use png_check_cHRM_fixed(). | 
 |   In png_check_cHRM_fixed(), ensure white_y is > 0, and removed redundant | 
 |     check for all-zero coordinates that is detected by the triangle check. | 
 |  | 
 | version 1.4.0beta41 [November 26, 2008] | 
 |   Fixed string vs pointer-to-string error in png_check_keyword(). | 
 |   Rearranged test expressions in png_check_cHRM_fixed() to avoid internal | 
 |     overflows. | 
 |   Added PNG_NO_CHECK_cHRM conditional. | 
 |  | 
 | version 1.4.0beta42, 43 [December 1, 2008] | 
 |   Merge png_debug with version 1.2.34beta04. | 
 |  | 
 | version 1.4.0beta44 [December 6, 2008] | 
 |   Removed redundant check for key==NULL before calling png_check_keyword() | 
 |     to ensure that new_key gets initialized and removed extra warning | 
 |     (Merge with version 1.2.34beta05 -- Arvan Pritchard). | 
 |  | 
 | version 1.4.0beta45 [December 9, 2008] | 
 |   In png_write_png(), respect the placement of the filler bytes in an earlier | 
 |     call to png_set_filler() (Jim Barry). | 
 |  | 
 | version 1.4.0beta46 [December 10, 2008] | 
 |   Undid previous change and added PNG_TRANSFORM_STRIP_FILLER_BEFORE and | 
 |     PNG_TRANSFORM_STRIP_FILLER_AFTER conditionals and deprecated | 
 |     PNG_TRANSFORM_STRIP_FILLER (Jim Barry). | 
 |  | 
 | version 1.4.0beta47 [December 15, 2008] | 
 |   Turned off PNG_READ_DITHER_SUPPORTED by default. | 
 |  | 
 | version 1.4.0beta48 [February 14, 2009] | 
 |   Added new exported function png_calloc(). | 
 |   Combined several instances of png_malloc(); png_memset() into png_calloc(). | 
 |   Removed prototype for png_freeptr() that was added in libpng-1.4.0beta24 | 
 |  | 
 | version 1.4.0beta49 [February 28, 2009] | 
 |   Added png_fileno() macro to pngconf.h, used in pngwio.c | 
 |   Corrected order of #ifdef's in png_debug definition in png.h | 
 |   Fixed bug introduced in libpng-1.4.0beta48 with the memset arguments | 
 |     for pcal_params. | 
 |   Fixed order of #ifdef directives in the png_debug defines in png.h | 
 |     (bug introduced in libpng-1.2.34/1.4.0beta29). | 
 |   Revised comments in png_set_read_fn() and png_set_write_fn(). | 
 |  | 
 | version 1.4.0beta50 [March 18, 2009] | 
 |   Use png_calloc() instead of png_malloc() to allocate big_row_buf when | 
 |     reading an interlaced file, to avoid a possible UMR. | 
 |   Undid recent revision of PNG_NO_STDIO version of png_write_flush().  Users | 
 |     having trouble with fflush() can build with PNG_NO_WRITE_FLUSH defined | 
 |     or supply their own flush_fn() replacement. | 
 |   Revised libpng*.txt and png.h documentation about use of png_write_flush() | 
 |     and png_set_write_fn(). | 
 |   Removed fflush() from pngtest.c. | 
 |   Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h | 
 |  | 
 | version 1.4.0beta51 [March 21, 2009] | 
 |   Removed new png_fileno() macro from pngconf.h . | 
 |  | 
 | version 1.4.0beta52 [March 27, 2009] | 
 |   Relocated png_do_chop() ahead of building gamma tables in pngrtran.c | 
 |     This avoids building 16-bit gamma tables unnecessarily. | 
 |   Removed fflush() from pngtest.c. | 
 |   Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h | 
 |   Added a section on differences between 1.0.x and 1.2.x to libpng.3/libpng.txt | 
 |  | 
 | 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.0beta55 [April 15, 2009] | 
 |   Simplified error handling in pngread.c and pngwrite.c by putting | 
 |     the new png_read_cleanup() and png_write_cleanup() functions inline. | 
 |  | 
 | version 1.4.0beta56 [April 25, 2009] | 
 |   Renamed "user_chunk_data" to "my_user_chunk_data" in pngtest.c to suppress | 
 |     "shadowed declaration" warning from gcc-4.3.3. | 
 |   Renamed "gamma" to "png_gamma" in pngset.c to avoid "shadowed declaration" | 
 |     warning about a global "gamma" variable in math.h on some platforms. | 
 |  | 
 | version 1.4.0beta57 [May 2, 2009] | 
 |   Removed prototype for png_freeptr() that was added in libpng-1.4.0beta24 | 
 |     but was never defined (again). | 
 |   Rebuilt configure scripts with autoconf-2.63 instead of 2.62 | 
 |   Removed pngprefs.h and MMX from makefiles | 
 |  | 
 | version 1.4.0beta58 [May 14, 2009] | 
 |   Changed pngw32.def to pngwin.def in makefile.mingw (typo was intruduced | 
 |     in beta57). | 
 |   Clarified usage of sig_bit versus sig_bit_p in example.c (Vincent Torri) | 
 |  | 
 | version 1.4.0beta59 [May 15, 2009] | 
 |   Reformated sources in libpng style (3-space intentation, comment format) | 
 |   Fixed typo in libpng docs (PNG_FILTER_AVE should be PNG_FILTER_AVG) | 
 |   Added sections about the git repository and our coding style to the | 
 |     documentation | 
 |   Relocated misplaced #endif in pngwrite.c, sCAL chunk handler. | 
 |  | 
 | version 1.4.0beta60 [May 19, 2009] | 
 |   Conditionally compile png_read_finish_row() which is not used by | 
 |     progressive readers. | 
 |   Added contrib/pngminim/preader to demonstrate building minimal progressive | 
 |     decoder, based on contrib/gregbook with embedded libpng and zlib. | 
 |  | 
 | version 1.4.0beta61 [May 20, 2009] | 
 |   In contrib/pngminim/*, renamed "makefile.std" to "makefile", since there | 
 |     is only one makefile in those directories, and revised the README files | 
 |     accordingly. | 
 |   More reformatting of comments, mostly to capitalize sentences. | 
 |  | 
 | version 1.4.0beta62 [June 2, 2009] | 
 |   Added "#define PNG_NO_WRITE_SWAP" to contrib/pngminim/encoder/pngusr.h | 
 |     and "define PNG_NO_READ_SWAP" to decoder/pngusr.h and preader/pngusr.h | 
 |   Reformatted several remaining "else statement" into two lines. | 
 |   Added a section to the libpng documentation about using png_get_io_ptr() | 
 |     in configure scripts to detect the presence of libpng. | 
 |  | 
 | version 1.4.0beta63 [June 15, 2009] | 
 |   Revised libpng*.txt and libpng.3 to mention calling png_set_IHDR() | 
 |     multiple times and to specify the sample order in the tRNS chunk, | 
 |     because the ISO PNG specification has a typo in the tRNS table. | 
 |   Changed several PNG_UNKNOWN_CHUNK_SUPPORTED to | 
 |     PNG_HANDLE_AS_UNKNOWN_SUPPORTED, to make the png_set_keep mechanism | 
 |     available for ignoring known chunks even when not saving unknown chunks. | 
 |   Adopted preference for consistent use of "#ifdef" and "#ifndef" versus | 
 |     "#if defined()" and "if !defined()" where possible. | 
 |  | 
 | version 1.4.0beta64 [June 24, 2009] | 
 |   Eliminated PNG_LEGACY_SUPPORTED code. | 
 |   Moved the various unknown chunk macro definitions outside of the | 
 |      PNG_READ|WRITE_ANCILLARY_CHUNK_SUPPORTED blocks. | 
 |  | 
 | version 1.4.0beta65 [June 26, 2009] | 
 |   Added a reference to the libpng license in each file. | 
 |  | 
 | version 1.4.0beta66 [June 27, 2009] | 
 |   Refer to the libpng license instead of the libpng license in each file. | 
 |  | 
 | version 1.4.0beta67 [July 6, 2009] | 
 |   Relocated INVERT_ALPHA within png_read_png() and png_write_png(). | 
 |   Added high-level API transform PNG_TRANSFORM_GRAY_TO_RGB. | 
 |   Added an "xcode" project to the projects directory (Alam Arias). | 
 |  | 
 | version 1.4.0beta68 [July 19, 2009] | 
 |   Avoid some tests in filter selection in pngwutil.c | 
 |  | 
 | version 1.4.0beta69 [July 25, 2009] | 
 |   Simplified the new filter-selection test.  This runs faster in the | 
 |     common "PNG_ALL_FILTERS" and PNG_FILTER_NONE cases. | 
 |   Removed extraneous declaration from the new call to png_read_gray_to_rgb() | 
 |     (bug introduced in libpng-1.4.0beta67). | 
 |   Fixed up xcode project (Alam Arias) | 
 |  | 
 | version 1.4.0beta70 [July 27, 2009] | 
 |   Avoid a possible NULL dereference in debug build, in png_set_text_2(). | 
 |     (bug introduced in libpng-0.95, discovered by Evan Rouault) | 
 |  | 
 | version 1.4.0beta71 [July 29, 2009] | 
 |   Rebuilt configure scripts with autoconf-2.64. | 
 |   Added a prototype for png_64bit_product() in png.c | 
 |  | 
 | version 1.4.0beta72 [August 1, 2009] | 
 |   Replaced *.tar.lzma with *.tar.xz in distribution.  Get the xz codec | 
 |     from <http://tukaani.org/xz>. | 
 |  | 
 | version 1.4.0beta73 [August 1, 2009] | 
 |   Reject attempt to write iCCP chunk with negative embedded profile length | 
 |     (JD Chen) | 
 |  | 
 | version 1.4.0beta74 [August 8, 2009] | 
 |   Changed png_ptr and info_ptr member "trans" to "trans_alpha". | 
 |  | 
 | version 1.4.0beta75 [August 21, 2009] | 
 |   Removed an extra png_debug() recently added to png_write_find_filter(). | 
 |   Fixed incorrect #ifdef in pngset.c regarding unknown chunk support. | 
 |  | 
 | version 1.4.0beta76 [August 22, 2009] | 
 |   Moved an incorrectly located test in png_read_row() in pngread.c | 
 |  | 
 | version 1.4.0beta77 [August 27, 2009] | 
 |   Removed lpXYZ.tar.bz2 (with CRLF), KNOWNBUG, libpng-x.y.z-KNOWNBUG.txt, | 
 |     and the "noconfig" files from the distribution. | 
 |   Moved CMakeLists.txt from scripts into the main libpng directory. | 
 |   Various bugfixes and improvements to CMakeLists.txt (Philip Lowman) | 
 |  | 
 | version 1.4.0beta78 [August 31, 2009] | 
 |   Converted all PNG_NO_* tests to PNG_*_SUPPORTED everywhere except pngconf.h | 
 |   Eliminated PNG_NO_FREE_ME and PNG_FREE_ME_SUPPORTED macros. | 
 |   Use png_malloc plus a loop instead of png_calloc() to initialize | 
 |     row_pointers in png_read_png(). | 
 |  | 
 | version 1.4.0beta79 [September 1, 2009] | 
 |   Eliminated PNG_GLOBAL_ARRAYS and PNG_LOCAL_ARRAYS; always use local arrays. | 
 |   Eliminated PNG_CALLOC_SUPPORTED macro and always provide png_calloc(). | 
 |  | 
 | version 1.4.0beta80 [September 17, 2009] | 
 |   Removed scripts/libpng.icc | 
 |   Changed typecast of filler from png_byte to png_uint_16 in png_set_filler(). | 
 |     (Dennis Gustafsson) | 
 |   Fixed typo introduced in beta78 in pngtest.c ("#if def " should be "#ifdef ")  | 
 |  | 
 | version 1.4.0beta81 [September 23, 2009] | 
 |   Eliminated unused PNG_FLAG_FREE_* defines from pngpriv.h | 
 |   Expanded TAB characters in pngrtran.c | 
 |   Removed PNG_CONST from all "PNG_CONST PNG_CHNK" declarations to avoid | 
 |     compiler complaints about doubly declaring things "const". | 
 |   Changed all "#if [!]defined(X)" to "if[n]def X" where possible. | 
 |   Eliminated unused png_ptr->row_buf_size | 
 |  | 
 | version 1.4.0beta82 [September 25, 2009] | 
 |   Moved redundant IHDR checking into new png_check_IHDR() in png.c | 
 |     and report all errors found in the IHDR data. | 
 |   Eliminated useless call to png_check_cHRM() from pngset.c | 
 |  | 
 | version 1.4.0beta83 [September 25, 2009] | 
 |   Revised png_check_IHDR() to eliminate bogus complaint about filter_type. | 
 |  | 
 | version 1.4.0beta84 [September 30, 2009] | 
 |   Fixed some inconsistent indentation in pngconf.h | 
 |   Revised png_check_IHDR() to add a test for width variable less than 32-bit. | 
 |  | 
 | version 1.4.0beta85 [October 1, 2009] | 
 |   Revised png_check_IHDR() again, to check info_ptr members instead of | 
 |     the contents of the returned parameters. | 
 |  | 
 | version 1.4.0beta86 [October 9, 2009] | 
 |   Updated the "xcode" project (Alam Arias). | 
 |   Eliminated a shadowed declaration of "pp" in png_handle_sPLT(). | 
 |  | 
 | version 1.4.0rc01 [October 19, 2009] | 
 |   Trivial cosmetic changes. | 
 |  | 
 | version 1.4.0beta87 [October 30, 2009] | 
 |   Moved version 1.4.0 back into beta. | 
 |  | 
 | version 1.4.0beta88 [October 30, 2009] | 
 |   Revised libpng*.txt section about differences between 1.2.x and 1.4.0 | 
 |     because most of the new features have now been ported back to 1.2.41 | 
 |  | 
 | version 1.4.0beta89 [November 1, 2009] | 
 |   More bugfixes and improvements to CMakeLists.txt (Philip Lowman) | 
 |   Removed a harmless extra png_set_invert_alpha() from pngwrite.c | 
 |   Apply png_user_chunk_cache_max within png_decompress_chunk(). | 
 |   Merged libpng-1.2.41.txt with libpng-1.4.0.txt where appropriate. | 
 |  | 
 | Send comments/corrections/commendations to png-mng-implement at lists.sf.net | 
 | (subscription required; visit | 
 | https://lists.sourceforge.net/lists/listinfo/png-mng-implement | 
 | to subscribe) or to glennrp at users.sourceforge.net | 
 |  | 
 | Glenn R-P |