
Libpng 1.2.43rc01 - February 18, 2010

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

   libpng-1.2.43rc01.tar.xz (LZMA-compressed, recommended)
   libpng-1.2.43rc01.tar.gz
   libpng-1.2.43rc01.tar.bz2

Source files with LF line endings (for Unix/Linux) without the
"configure" script

   libpng-1.2.43rc01-no-config.tar.xz (LZMA-compressed, recommended)
   libpng-1.2.43rc01-no-config.tar.gz
   libpng-1.2.43rc01-no-config.tar.bz2

Source files with CRLF line endings (for Windows), without the
"configure" script

   lp1243r01.zip
   lp1243r01.7z
   lp1243r01.tar.bz2

Project files

   libpng-1.2.43rc01-project-netware.zip
   libpng-1.2.43rc01-project-wince.zip

Other information:

   libpng-1.2.43rc01-README.txt
   libpng-1.2.43rc01-KNOWNBUGS.txt
   libpng-1.2.43rc01-LICENSE.txt
   libpng-1.2.43rc01-Y2K-compliance.txt
   libpng-1.2.43rc01-[previous version]-diff.txt

Changes since the last public release (1.2.42):

version 1.2.43beta01 [January 27, 2010]
  Updated CMakeLists.txt for consistent indentation and to avoid an
    unclosed if-statement warning (Philip Lowman).
  Removed "#ifdef PNG_1_0_X / #endif" surrounding
    PNG_READ_16_TO_8_SUPPORTED and PNG_READ_GRAY_TO_RGB_SUPPORTED
    in pngconf.h.  These were added in libpng-1.2.41beta08 and libpng-1.0.51,
    which introduced a binary incompatibility with libpng-1.0.50.
  Backported new png_decompress_chunk() algorithm from libpng-1.4.1

version 1.2.43beta02 [February 1, 2010]
  Backported two-pass png_decompress_chunk() algorithm from libpng-1.4.1

version 1.2.43beta03 [February 6, 2010]
  Backported fast png_push_save_buffer() algorithm from libpng-1.4.1

version 1.2.43beta04 [February 8, 2010]
  Reverted recent changes to png_push_save-buffer().
  Removed PNGAPI declaration of png_calloc() and png_write_sig() in
    1ibpng-1.2.X, introduced by mistake in libpng-1.2.41.
  Return allocated "old_buffer" in png_push_save_buffer() before png_error(),
    to avoid a potential memory leak.

version 1.2.43beta05 [February 8, 2010]
  Ported rewritten png_decompress_chunk() by John Bowler from libpng-1.4.1.

version 1.0.53rc01 and 1.2.43rc01 [February 18, 2010]
  No changes.

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
