
Libpng 1.2.8 - December 3, 2004

This is a public release of libpng, intended for use in production codes.

Changes since the last public release (1.2.7):

  Fixed bug in png_text_compress() that would fail to complete a large block.
  Fixed bug, introduced in libpng-1.2.7, that overruns a buffer during
    strip alpha operation in png_do_strip_filler().
  Added PNG_1_2_X definition in pngconf.h
  #ifdef out png_info_init in png.c and png_read_init in pngread.c (as of 1.3.0)
  Reduce color_type to a nonalpha type after strip alpha operation in
    png_do_strip_filler().
  Revised definitions of PNG_MAX_UINT_32, PNG_MAX_SIZE, and PNG_MAXSUM
  Fixed (again) definition of PNG_LIBPNG_VER_DLLNUM in png.h (Cosmin).
  Added PNG_LIBPNG_BUILD_PRIVATE in png.h (Cosmin).
  Set png_ptr->zstream.data_type to Z_BINARY, to avoid unnecessary detection
    of data type in deflate (Cosmin).
  Deprecated but continue to support SPECIALBUILD and PRIVATEBUILD in favor of
    PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
  Despammed mailing addresses by masking "@" with "at".
  Added scripts/makefile.elf with supporting code in pngconf.h for symbol
    versioning (John Bowler).
  Added projects/visualc71 (Simon-pierre).

Send comments/corrections/commendations to
png-implement at ccrc.wustl.edu (subscription required; write to
majordomo at ccrc.wustl.edu with "subscribe png-implement" in the message)
or to glennrp at users.sourceforge.net

Glenn R-P
