
Libpng 1.2.43beta05 - February 13, 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.43beta05.tar.xz (LZMA-compressed, recommended)
   libpng-1.2.43beta05.tar.gz
   libpng-1.2.43beta05.tar.bz2

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

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

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

   lp1243b05.zip
   lp1243b05.7z
   lp1243b05.tar.bz2

Project files

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

Other information:

   libpng-1.2.43beta05-README.txt
   libpng-1.2.43beta05-KNOWNBUGS.txt
   libpng-1.2.43beta05-LICENSE.txt
   libpng-1.2.43beta05-Y2K-compliance.txt
   libpng-1.2.43beta05-[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 13, 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
