
Libpng 1.2.17rc3 - May 9, 2007

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.17rc3.tar.gz
   libpng-1.2.17rc3.tar.bz2

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

   libpng-1.2.17rc3-no-config.tar.gz
   libpng-1.2.17rc3-no-config.tar.bz2

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

   lp1217r03.zip
   lp1217r03.tar.bz2

Project files

   libpng-1.2.17rc3-project-netware.zip
   libpng-1.2.17rc3-project-wince.zip

Other information:

   libpng-1.2.17rc3-README.txt
   libpng-1.2.17rc3-KNOWNBUGS.txt
   libpng-1.2.17rc3-LICENSE.txt
   libpng-1.2.17rc3-Y2K-compliance.txt

Changes since the last public release (1.2.16):

version 1.2.17beta1 [May 9, 2007]
  Revised scripts/CMakeLists.txt to install both shared and static libraries.
  Deleted a redundant line from pngset.c.

version 1.2.17beta2 [April 26, 2007]
  Relocated misplaced test for png_ptr == NULL in pngpread.c
  Use "==" to "&" for testing PNG_RGB_TO_GRAY_ERR & PNG_RGB_TO_GRAY_WARN flags.
  Added pngerror() when write_IHDR fails in deflateInit2().
  Added "const" to some array declarations.
  Mention examples of libpng usage in the libpng*.txt and libpng.3 documents.
 
version 1.2.17rc1 [May 5, 2007]
  No changes.

version 1.2.17rc2 [May 8, 2007]
  Moved several PNG_HAVE_* macros out of PNG_INTERNAL because applications
    calling set_unknown_chunk_location() need them.
  Changed transformation flag from PNG_EXPAND_tRNS to PNG_EXPAND in
    png_set_expand_gray_1_2_4_to_8().
  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.

version 1.2.17rc3 [May 9, 2007]
  Revised symbol-handling in configure script.


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
