media/libpng/CHANGES

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/media/libpng/CHANGES	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,4884 @@
     1.4 +#if 0
     1.5 +CHANGES - changes for libpng
     1.6 +
     1.7 +Version 0.2
     1.8 +  added reader into png.h
     1.9 +  fixed small problems in stub file
    1.10 +
    1.11 +Version 0.3
    1.12 +  added pull reader
    1.13 +  split up pngwrite.c to several files
    1.14 +  added pnglib.txt
    1.15 +  added example.c
    1.16 +  cleaned up writer, adding a few new transformations
    1.17 +  fixed some bugs in writer
    1.18 +  interfaced with zlib 0.5
    1.19 +  added K&R support
    1.20 +  added check for 64 KB blocks for 16-bit machines
    1.21 +
    1.22 +Version 0.4
    1.23 +  cleaned up code and commented code
    1.24 +  simplified time handling into png_time
    1.25 +  created png_color_16 and png_color_8 to handle color needs
    1.26 +  cleaned up color type defines
    1.27 +  fixed various bugs
    1.28 +  made various names more consistent
    1.29 +  interfaced with zlib 0.71
    1.30 +  cleaned up zTXt reader and writer (using zlib's Reset functions)
    1.31 +  split transformations into pngrtran.c and pngwtran.c
    1.32 +
    1.33 +Version 0.5
    1.34 +  interfaced with zlib 0.8
    1.35 +  fixed many reading and writing bugs
    1.36 +  saved using 3 spaces instead of tabs
    1.37 +
    1.38 +Version 0.6
    1.39 +  added png_large_malloc() and png_large_free()
    1.40 +  added png_size_t
    1.41 +  cleaned up some compiler warnings
    1.42 +  added png_start_read_image()
    1.43 +
    1.44 +Version 0.7
    1.45 +  cleaned up lots of bugs
    1.46 +  finished dithering and other stuff
    1.47 +  added test program
    1.48 +  changed name from pnglib to libpng
    1.49 +
    1.50 +Version 0.71 [June, 1995]
    1.51 +  changed pngtest.png for zlib 0.93
    1.52 +  fixed error in libpng.txt and example.c
    1.53 +
    1.54 +Version 0.8
    1.55 +  cleaned up some bugs
    1.56 +  added png_set_filler()
    1.57 +  split up pngstub.c into pngmem.c, pngio.c, and pngerror.c
    1.58 +  added #define's to remove unwanted code
    1.59 +  moved png_info_init() to png.c
    1.60 +  added old_size into png_realloc()
    1.61 +  added functions to manually set filtering and compression info
    1.62 +  changed compression parameters based on image type
    1.63 +  optimized filter selection code
    1.64 +  added version info
    1.65 +  changed external functions passing floats to doubles (k&r problems?)
    1.66 +  put all the configurable stuff in pngconf.h
    1.67 +  enabled png_set_shift to work with paletted images on read
    1.68 +  added png_read_update_info() - updates info structure with transformations
    1.69 +
    1.70 +Version 0.81 [August, 1995]
    1.71 +  incorporated Tim Wegner's medium model code (thanks, Tim)
    1.72 +
    1.73 +Version 0.82 [September, 1995]
    1.74 +  [unspecified changes]
    1.75 +
    1.76 +Version 0.85 [December, 1995]
    1.77 +  added more medium model code (almost everything's a far)
    1.78 +  added i/o, error, and memory callback functions
    1.79 +  fixed some bugs (16-bit, 4-bit interlaced, etc.)
    1.80 +  added first run progressive reader (barely tested)
    1.81 +
    1.82 +Version 0.86 [January, 1996]
    1.83 +  fixed bugs
    1.84 +  improved documentation
    1.85 +
    1.86 +Version 0.87 [January, 1996]
    1.87 +  fixed medium model bugs
    1.88 +  fixed other bugs introduced in 0.85 and 0.86
    1.89 +  added some minor documentation
    1.90 +
    1.91 +Version 0.88 [January, 1996]
    1.92 +  fixed progressive bugs
    1.93 +  replaced tabs with spaces
    1.94 +  cleaned up documentation
    1.95 +  added callbacks for read/write and warning/error functions
    1.96 +
    1.97 +Version 0.89 [July, 1996]
    1.98 +  Added new initialization API to make libpng work better with shared libs
    1.99 +    we now have png_create_read_struct(), png_create_write_struct(),
   1.100 +    png_create_info_struct(), png_destroy_read_struct(), and
   1.101 +    png_destroy_write_struct() instead of the separate calls to
   1.102 +    malloc and png_read_init(), png_info_init(), and png_write_init()
   1.103 +  Changed warning/error callback functions to fix bug - this means you
   1.104 +    should use the new initialization API if you were using the old
   1.105 +    png_set_message_fn() calls, and that the old API no longer exists
   1.106 +    so that people are aware that they need to change their code
   1.107 +  Changed filter selection API to allow selection of multiple filters
   1.108 +    since it didn't work in previous versions of libpng anyways
   1.109 +  Optimized filter selection code
   1.110 +  Fixed png_set_background() to allow using an arbitrary RGB color for
   1.111 +    paletted images
   1.112 +  Fixed gamma and background correction for paletted images, so
   1.113 +    png_correct_palette is not needed unless you are correcting an
   1.114 +    external palette (you will need to #define PNG_CORRECT_PALETTE_SUPPORTED
   1.115 +    in pngconf.h) - if nobody uses this, it may disappear in the future.
   1.116 +  Fixed bug with Borland 64K memory allocation (Alexander Lehmann)
   1.117 +  Fixed bug in interlace handling (Smarasderagd, I think)
   1.118 +  Added more error checking for writing and image to reduce invalid files
   1.119 +  Separated read and write functions so that they won't both be linked
   1.120 +    into a binary when only reading or writing functionality is used
   1.121 +  New pngtest image also has interlacing and zTXt
   1.122 +  Updated documentation to reflect new API
   1.123 +
   1.124 +Version 0.90 [January, 1997]
   1.125 +  Made CRC errors/warnings on critical and ancillary chunks configurable
   1.126 +  libpng will use the zlib CRC routines by (compile-time) default
   1.127 +  Changed DOS small/medium model memory support - needs zlib 1.04 (Tim Wegner)
   1.128 +  Added external C++ wrapper statements to png.h (Gilles Dauphin)
   1.129 +  Allow PNG file to be read when some or all of file signature has already
   1.130 +    been read from the beginning of the stream.  ****This affects the size
   1.131 +    of info_struct and invalidates all programs that use a shared libpng****
   1.132 +  Fixed png_filler() declarations
   1.133 +  Fixed? background color conversions
   1.134 +  Fixed order of error function pointers to match documentation
   1.135 +  Current chunk name is now available in png_struct to reduce the number
   1.136 +    of nearly identical error messages (will simplify multi-lingual
   1.137 +    support when available)
   1.138 +  Try to get ready for unknown-chunk callback functions:
   1.139 +    - previously read critical chunks are flagged, so the chunk handling
   1.140 +      routines can determine if the chunk is in the right place
   1.141 +    - all chunk handling routines have the same prototypes, so we will
   1.142 +      be able to handle all chunks via a callback mechanism
   1.143 +  Try to fix Linux "setjmp" buffer size problems
   1.144 +  Removed png_large_malloc, png_large_free, and png_realloc functions.
   1.145 +
   1.146 +Version 0.95 [March, 1997]
   1.147 +  Fixed bug in pngwutil.c allocating "up_row" twice and "avg_row" never
   1.148 +  Fixed bug in PNG file signature compares when start != 0
   1.149 +  Changed parameter type of png_set_filler(...filler...) from png_byte
   1.150 +    to png_uint_32
   1.151 +  Added test for MACOS to ensure that both math.h and fp.h are not #included
   1.152 +  Added macros for libpng to be compiled as a Windows DLL (Andreas Kupries)
   1.153 +  Added "packswap" transformation, which changes the endianness of
   1.154 +    packed-pixel bytes (Kevin Bracey)
   1.155 +  Added "strip_alpha" transformation, which removes the alpha channel of
   1.156 +    input images without using it (not necessarily a good idea)
   1.157 +  Added "swap_alpha" transformation, which puts the alpha channel in front
   1.158 +    of the color bytes instead of after
   1.159 +  Removed all implicit variable tests which assume NULL == 0 (I think)
   1.160 +  Changed several variables to "png_size_t" to show 16/32-bit limitations
   1.161 +  Added new pCAL chunk read/write support
   1.162 +  Added experimental filter selection weighting (Greg Roelofs)
   1.163 +  Removed old png_set_rgbx() and png_set_xrgb() functions that have been
   1.164 +     obsolete for about 2 years now (use png_set_filler() instead)
   1.165 +  Added macros to read 16- and 32-bit ints directly from buffer, to be
   1.166 +    used only on those systems that support it (namely PowerPC and 680x0)
   1.167 +    With some testing, this may become the default for MACOS/PPC systems.
   1.168 +  Only calculate CRC on data if we are going to use it
   1.169 +  Added macros for zTXt compression type PNG_zTXt_COMPRESSION_???
   1.170 +  Added macros for simple libpng debugging output selectable at compile time
   1.171 +  Removed PNG_READ_END_MODE in progressive reader (Smarasderagd)
   1.172 +  More description of info_struct in libpng.txt and png.h
   1.173 +  More instructions in example.c
   1.174 +  More chunk types tested in pngtest.c
   1.175 +  Renamed pngrcb.c to pngset.c, and all png_read_<chunk> functions to be
   1.176 +    png_set_<chunk>.  We now have corresponding png_get_<chunk>
   1.177 +    functions in pngget.c to get information in info_ptr.  This isolates
   1.178 +    the application from the internal organization of png_info_struct
   1.179 +    (good for shared library implementations).
   1.180 +
   1.181 +Version 0.96 [May, 1997]
   1.182 +  Fixed serious bug with < 8bpp images introduced in 0.95
   1.183 +  Fixed 256-color transparency bug (Greg Roelofs)
   1.184 +  Fixed up documentation (Greg Roelofs, Laszlo Nyul)
   1.185 +  Fixed "error" in pngconf.h for Linux setjmp() behavior
   1.186 +  Fixed DOS medium model support (Tim Wegner)
   1.187 +  Fixed png_check_keyword() for case with error in static string text
   1.188 +  Added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul)
   1.189 +  Added typecasts to quiet compiler errors
   1.190 +  Added more debugging info
   1.191 +
   1.192 +Version 0.97 [January, 1998]
   1.193 +  Removed PNG_USE_OWN_CRC capability
   1.194 +  Relocated png_set_crc_action from pngrutil.c to pngrtran.c
   1.195 +  Fixed typecasts of "new_key", etc. (Andreas Dilger)
   1.196 +  Added RFC 1152 [sic] date support
   1.197 +  Fixed bug in gamma handling of 4-bit grayscale
   1.198 +  Added 2-bit grayscale gamma handling (Glenn R-P)
   1.199 +  Added more typecasts. 65536L becomes (png_uint_32)65536L, etc. (Glenn R-P)
   1.200 +  Minor corrections in libpng.txt
   1.201 +  Added simple sRGB support (Glenn R-P)
   1.202 +  Easier conditional compiling, e.g.,
   1.203 +    define PNG_READ/WRITE_NOT_FULLY_SUPPORTED;
   1.204 +    all configurable options can be selected from command-line instead
   1.205 +    of having to edit pngconf.h (Glenn R-P)
   1.206 +  Fixed memory leak in pngwrite.c (free info_ptr->text) (Glenn R-P)
   1.207 +  Added more conditions for png_do_background, to avoid changing
   1.208 +    black pixels to background when a background is supplied and
   1.209 +    no pixels are transparent
   1.210 +  Repaired PNG_NO_STDIO behavior
   1.211 +  Tested NODIV support and made it default behavior (Greg Roelofs)
   1.212 +  Added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler)
   1.213 +  Regularized version numbering scheme and bumped shared-library major
   1.214 +    version number to 2 to avoid problems with libpng 0.89 apps
   1.215 +    (Greg Roelofs)
   1.216 +
   1.217 +Version 0.98 [January, 1998]
   1.218 +  Cleaned up some typos in libpng.txt and in code documentation
   1.219 +  Fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler)
   1.220 +  Cosmetic change "display_gamma" to "screen_gamma" in pngrtran.c
   1.221 +  Changed recommendation about file_gamma for PC images to .51 from .45,
   1.222 +    in example.c and libpng.txt, added comments to distinguish between
   1.223 +    screen_gamma, viewing_gamma, and display_gamma.
   1.224 +  Changed all references to RFC1152 to read RFC1123 and changed the
   1.225 +    PNG_TIME_RFC1152_SUPPORTED macro to PNG_TIME_RFC1123_SUPPORTED
   1.226 +  Added png_invert_alpha capability (Glenn R-P -- suggestion by Jon Vincent)
   1.227 +  Changed srgb_intent from png_byte to int to avoid compiler bugs
   1.228 +
   1.229 +Version 0.99 [January 30, 1998]
   1.230 +  Free info_ptr->text instead of end_info_ptr->text in pngread.c (John Bowler)
   1.231 +  Fixed a longstanding "packswap" bug in pngtrans.c
   1.232 +  Fixed some inconsistencies in pngconf.h that prevented compiling with
   1.233 +    PNG_READ_GAMMA_SUPPORTED and PNG_READ_hIST_SUPPORTED undefined
   1.234 +  Fixed some typos and made other minor rearrangement of libpng.txt (Andreas)
   1.235 +  Changed recommendation about file_gamma for PC images to .50 from .51 in
   1.236 +    example.c and libpng.txt, and changed file_gamma for sRGB images to .45
   1.237 +  Added a number of functions to access information from the png structure
   1.238 +    png_get_image_height(), etc. (Glenn R-P, suggestion by Brad Pettit)
   1.239 +  Added TARGET_MACOS similar to zlib-1.0.8
   1.240 +  Define PNG_ALWAYS_EXTERN when __MWERKS__ && WIN32 are defined
   1.241 +  Added type casting to all png_malloc() function calls
   1.242 +
   1.243 +Version 0.99a [January 31, 1998]
   1.244 +  Added type casts and parentheses to all returns that return a value.(Tim W.)
   1.245 +
   1.246 +Version 0.99b [February 4, 1998]
   1.247 +  Added type cast png_uint_32 on malloc function calls where needed.
   1.248 +  Changed type of num_hist from png_uint_32 to int (same as num_palette).
   1.249 +  Added checks for rowbytes overflow, in case png_size_t is less than 32 bits.
   1.250 +  Renamed makefile.elf to makefile.lnx.
   1.251 +
   1.252 +Version 0.99c [February 7, 1998]
   1.253 +  More type casting.  Removed erroneous overflow test in pngmem.c.
   1.254 +  Added png_buffered_memcpy() and png_buffered_memset(), apply them to rowbytes.
   1.255 +  Added UNIX manual pages libpng.3 (incorporating libpng.txt) and  png.5.
   1.256 +
   1.257 +Version 0.99d [February 11, 1998]
   1.258 +  Renamed "far_to_near()" "png_far_to_near()"
   1.259 +  Revised libpng.3
   1.260 +  Version 99c "buffered" operations didn't work as intended.  Replaced them
   1.261 +    with png_memcpy_check() and png_memset_check().
   1.262 +  Added many "if (png_ptr == NULL) return" to quell compiler warnings about
   1.263 +    unused png_ptr, mostly in pngget.c and pngset.c.
   1.264 +  Check for overlength tRNS chunk present when indexed-color PLTE is read.
   1.265 +  Cleaned up spelling errors in libpng.3/libpng.txt
   1.266 +  Corrected a problem with png_get_tRNS() which returned undefined trans array
   1.267 +
   1.268 +Version 0.99e [February 28, 1998]
   1.269 +  Corrected png_get_tRNS() again.
   1.270 +  Add parentheses for easier reading of pngget.c, fixed "||" should be "&&".
   1.271 +  Touched up example.c to make more of it compileable, although the entire
   1.272 +    file still can't be compiled (Willem van Schaik)
   1.273 +  Fixed a bug in png_do_shift() (Bryan Tsai)
   1.274 +  Added a space in png.h prototype for png_write_chunk_start()
   1.275 +  Replaced pngtest.png with one created with zlib 1.1.1
   1.276 +  Changed pngtest to report PASS even when file size is different (Jean-loup G.)
   1.277 +  Corrected some logic errors in png_do_invert_alpha() (Chris Patterson)
   1.278 +
   1.279 +Version 0.99f [March 5, 1998]
   1.280 +  Corrected a bug in pngpread() introduced in version 99c (Kevin Bracey)
   1.281 +  Moved makefiles into a "scripts" directory, and added INSTALL instruction file
   1.282 +  Added makefile.os2 and pngos2.def (A. Zabolotny) and makefile.s2x (W. Sebok)
   1.283 +  Added pointers to "note on libpng versions" in makefile.lnx and README
   1.284 +  Added row callback feature when reading and writing nonprogressive rows
   1.285 +    and added a test of this feature in pngtest.c
   1.286 +  Added user transform callbacks, with test of the feature in pngtest.c
   1.287 +
   1.288 +Version 0.99g [March 6, 1998, morning]
   1.289 +  Minor changes to pngtest.c to suppress compiler warnings.
   1.290 +  Removed "beta" language from documentation.
   1.291 +
   1.292 +Version 0.99h [March 6, 1998, evening]
   1.293 +  Minor changes to previous minor changes to pngtest.c
   1.294 +  Changed PNG_READ_NOT_FULLY_SUPPORTED to PNG_READ_TRANSFORMS_NOT_SUPPORTED
   1.295 +    and added PNG_PROGRESSIVE_READ_NOT_SUPPORTED macro
   1.296 +  Added user transform capability
   1.297 +
   1.298 +Version 1.00 [March 7, 1998]
   1.299 +  Changed several typedefs in pngrutil.c
   1.300 +  Added makefile.wat (Pawel Mrochen), updated makefile.tc3 (Willem van Schaik)
   1.301 +  Replaced "while(1)" with "for(;;)"
   1.302 +  Added PNGARG() to prototypes in pngtest.c and removed some prototypes
   1.303 +  Updated some of the makefiles (Tom Lane)
   1.304 +  Changed some typedefs (s_start, etc.) in pngrutil.c
   1.305 +  Fixed dimensions of "short_months" array in pngwrite.c
   1.306 +  Replaced ansi2knr.c with the one from jpeg-v6
   1.307 +
   1.308 +Version 1.0.0 [March 8, 1998]
   1.309 +  Changed name from 1.00 to 1.0.0 (Adam Costello)
   1.310 +  Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert)
   1.311 +
   1.312 +Version 1.0.0a [March 9, 1998]
   1.313 +  Fixed three bugs in pngrtran.c to make gamma+background handling consistent
   1.314 +    (Greg Roelofs)
   1.315 +  Changed format of the PNG_LIBPNG_VER integer to xyyzz instead of xyz
   1.316 +    for major, minor, and bugfix releases.  This is 10001. (Adam Costello,
   1.317 +    Tom Lane)
   1.318 +  Make months range from 1-12 in png_convert_to_rfc1123
   1.319 +
   1.320 +Version 1.0.0b [March 13, 1998]
   1.321 +  Quieted compiler complaints about two empty "for" loops in pngrutil.c
   1.322 +  Minor changes to makefile.s2x
   1.323 +  Removed #ifdef/#endif around a png_free() in pngread.c
   1.324 +
   1.325 +Version 1.0.1 [March 14, 1998]
   1.326 +  Changed makefile.s2x to reduce security risk of using a relative pathname
   1.327 +  Fixed some typos in the documentation (Greg).
   1.328 +  Fixed a problem with value of "channels" returned by png_read_update_info()
   1.329 +
   1.330 +Version 1.0.1a [April 21, 1998]
   1.331 +  Optimized Paeth calculations by replacing abs() function calls with intrinsics
   1.332 +  plus other loop optimizations. Improves avg decoding speed by about 20%.
   1.333 +  Commented out i386istic "align" compiler flags in makefile.lnx.
   1.334 +  Reduced the default warning level in some makefiles, to make them consistent.
   1.335 +  Removed references to IJG and JPEG in the ansi2knr.c copyright statement.
   1.336 +  Fixed a bug in png_do_strip_filler with XXRRGGBB => RRGGBB transformation.
   1.337 +  Added grayscale and 16-bit capability to png_do_read_filler().
   1.338 +  Fixed a bug in pngset.c, introduced in version 0.99c, that sets rowbytes
   1.339 +    too large when writing an image with bit_depth < 8 (Bob Dellaca).
   1.340 +  Corrected some bugs in the experimental weighted filtering heuristics.
   1.341 +  Moved a misplaced pngrutil code block that truncates tRNS if it has more
   1.342 +    than num_palette entries -- test was done before num_palette was defined.
   1.343 +  Fixed a png_convert_to_rfc1123() bug that converts day 31 to 0 (Steve Eddins).
   1.344 +  Changed compiler flags in makefile.wat for better optimization
   1.345 +    (Pawel Mrochen).
   1.346 +
   1.347 +Version 1.0.1b [May 2, 1998]
   1.348 +  Relocated png_do_gray_to_rgb() within png_do_read_transformations() (Greg).
   1.349 +  Relocated the png_composite macros from pngrtran.c to png.h (Greg).
   1.350 +  Added makefile.sco (contributed by Mike Hopkirk).
   1.351 +  Fixed two bugs (missing definitions of "istop") introduced in libpng-1.0.1a.
   1.352 +  Fixed a bug in pngrtran.c that would set channels=5 under some circumstances.
   1.353 +  More work on the Paeth-filtering, achieving imperceptible speedup
   1.354 +    (A Kleinert).
   1.355 +  More work on loop optimization which may help when compiled with C++
   1.356 +    compilers.
   1.357 +  Added warnings when people try to use transforms they've defined out.
   1.358 +  Collapsed 4 "i" and "c" loops into single "i" loops in pngrtran and pngwtran.
   1.359 +  Revised paragraph about png_set_expand() in libpng.txt and libpng.3 (Greg)
   1.360 +
   1.361 +Version 1.0.1c [May 11, 1998]
   1.362 +  Fixed a bug in pngrtran.c (introduced in libpng-1.0.1a) where the masks for
   1.363 +    filler bytes should have been 0xff instead of 0xf.
   1.364 +  Added max_pixel_depth=32 in pngrutil.c when using FILLER with palette images.
   1.365 +  Moved PNG_WRITE_WEIGHTED_FILTER_SUPPORTED and PNG_WRITE_FLUSH_SUPPORTED
   1.366 +    out of the PNG_WRITE_TRANSFORMS_NOT_SUPPORTED block of pngconf.h
   1.367 +  Added "PNG_NO_WRITE_TRANSFORMS" etc., as alternatives for *_NOT_SUPPORTED,
   1.368 +    for consistency, in pngconf.h
   1.369 +  Added individual "ifndef PNG_NO_[CAPABILITY]" in pngconf.h to make it easier
   1.370 +    to remove unwanted capabilities via the compile line
   1.371 +  Made some corrections to grammar (which, it's) in documentation (Greg).
   1.372 +  Corrected example.c, use of row_pointers in png_write_image().
   1.373 +
   1.374 +Version 1.0.1d [May 24, 1998]
   1.375 +  Corrected several statements that used side effects illegally in pngrutil.c
   1.376 +    and pngtrans.c, that were introduced in version 1.0.1b
   1.377 +  Revised png_read_rows() to avoid repeated if-testing for NULL (A Kleinert)
   1.378 +  More corrections to example.c, use of row_pointers in png_write_image()
   1.379 +    and png_read_rows().
   1.380 +  Added pngdll.mak and pngdef.pas to scripts directory, contributed by
   1.381 +    Bob Dellaca, to make a png32bd.dll with Borland C++ 4.5
   1.382 +  Fixed error in example.c with png_set_text: num_text is 3, not 2 (Guido V.)
   1.383 +  Changed several loops from count-down to count-up, for consistency.
   1.384 +
   1.385 +Version 1.0.1e [June 6, 1998]
   1.386 +  Revised libpng.txt and libpng.3 description of png_set_read|write_fn(), and
   1.387 +    added warnings when people try to set png_read_fn and png_write_fn in
   1.388 +    the same structure.
   1.389 +  Added a test such that png_do_gamma will be done when num_trans==0
   1.390 +    for truecolor images that have defined a background.  This corrects an
   1.391 +    error that was introduced in libpng-0.90 that can cause gamma processing
   1.392 +    to be skipped.
   1.393 +  Added tests in png.h to include "trans" and "trans_values" in structures
   1.394 +    when PNG_READ_BACKGROUND_SUPPORTED or PNG_READ_EXPAND_SUPPORTED is defined.
   1.395 +  Add png_free(png_ptr->time_buffer) in png_destroy_read_struct()
   1.396 +  Moved png_convert_to_rfc_1123() from pngwrite.c to png.c
   1.397 +  Added capability for user-provided malloc_fn() and free_fn() functions,
   1.398 +    and revised pngtest.c to demonstrate their use, replacing the
   1.399 +    PNGTEST_DEBUG_MEM feature.
   1.400 +  Added makefile.w32, for Microsoft C++ 4.0 and later (Tim Wegner).
   1.401 +
   1.402 +Version 1.0.2 [June 14, 1998]
   1.403 +  Fixed two bugs in makefile.bor .
   1.404 +
   1.405 +Version 1.0.2a [December 30, 1998]
   1.406 +  Replaced and extended code that was removed from png_set_filler() in 1.0.1a.
   1.407 +  Fixed a bug in png_do_filler() that made it fail to write filler bytes in
   1.408 +    the left-most pixel of each row (Kevin Bracey).
   1.409 +  Changed "static pngcharp tIME_string" to "static char tIME_string[30]"
   1.410 +    in pngtest.c (Duncan Simpson).
   1.411 +  Fixed a bug in pngtest.c that caused pngtest to try to write a tIME chunk
   1.412 +    even when no tIME chunk was present in the source file.
   1.413 +  Fixed a problem in pngrutil.c: gray_to_rgb didn't always work with 16-bit.
   1.414 +  Fixed a problem in png_read_push_finish_row(), which would not skip some
   1.415 +    passes that it should skip, for images that are less than 3 pixels high.
   1.416 +  Interchanged the order of calls to png_do_swap() and png_do_shift()
   1.417 +    in pngwtran.c (John Cromer).
   1.418 +  Added #ifdef PNG_DEBUG/#endif surrounding use of PNG_DEBUG in png.h .
   1.419 +  Changed "bad adaptive filter type" from error to warning in pngrutil.c .
   1.420 +  Fixed a documentation error about default filtering with 8-bit indexed-color.
   1.421 +  Separated the PNG_NO_STDIO macro into PNG_NO_STDIO and PNG_NO_CONSOLE_IO
   1.422 +    (L. Peter Deutsch).
   1.423 +  Added png_set_rgb_to_gray() and png_get_rgb_to_gray_status() functions.
   1.424 +  Added png_get_copyright() and png_get_header_version() functions.
   1.425 +  Revised comments on png_set_progressive_read_fn() in libpng.txt and example.c
   1.426 +  Added information about debugging in libpng.txt and libpng.3 .
   1.427 +  Changed "ln -sf" to "ln -s -f" in makefile.s2x, makefile.lnx, and
   1.428 +    makefile.sco.
   1.429 +  Removed lines after Dynamic Dependencies" in makefile.aco .
   1.430 +  Revised makefile.dec to make a shared library (Jeremie Petit).
   1.431 +  Removed trailing blanks from all files.
   1.432 +
   1.433 +Version 1.0.2a [January 6, 1999]
   1.434 +  Removed misplaced #endif and #ifdef PNG_NO_EXTERN near the end of png.h
   1.435 +  Added "if" tests to silence complaints about unused png_ptr in png.h and png.c
   1.436 +  Changed "check_if_png" function in example.c to return true (nonzero) if PNG.
   1.437 +  Changed libpng.txt to demonstrate png_sig_cmp() instead of png_check_sig()
   1.438 +    which is obsolete.
   1.439 +
   1.440 +Version 1.0.3 [January 14, 1999]
   1.441 +  Added makefile.hux, for Hewlett Packard HPUX 10.20 and 11.00 (Jim Rice)
   1.442 +  Added a statement of Y2K compliance in png.h, libpng.3, and Y2KINFO.
   1.443 +
   1.444 +Version 1.0.3a [August 12, 1999]
   1.445 +  Added check for PNG_READ_INTERLACE_SUPPORTED in pngread.c; issue a warning
   1.446 +     if an attempt is made to read an interlaced image when it's not supported.
   1.447 +  Added check if png_ptr->trans is defined before freeing it in pngread.c
   1.448 +  Modified the Y2K statement to include versions back to version 0.71
   1.449 +  Fixed a bug in the check for valid IHDR bit_depth/color_types in pngrutil.c
   1.450 +  Modified makefile.wat (added -zp8 flag, ".symbolic", changed some comments)
   1.451 +  Replaced leading blanks with tab characters in makefile.hux
   1.452 +  Changed "dworkin.wustl.edu" to "ccrc.wustl.edu" in various documents.
   1.453 +  Changed (float)red and (float)green to (double)red, (double)green
   1.454 +     in png_set_rgb_to_gray() to avoid "promotion" problems in AIX.
   1.455 +  Fixed a bug in pngconf.h that omitted <stdio.h> when PNG_DEBUG==0 (K Bracey).
   1.456 +  Reformatted libpng.3 and libpngpf.3 with proper fonts (script by J. vanZandt).
   1.457 +  Updated documentation to refer to the PNG-1.2 specification.
   1.458 +  Removed ansi2knr.c and left pointers to the latest source for ansi2knr.c
   1.459 +    in makefile.knr, INSTALL, and README (L. Peter Deutsch)
   1.460 +  Fixed bugs in calculation of the length of rowbytes when adding alpha
   1.461 +    channels to 16-bit images, in pngrtran.c (Chris Nokleberg)
   1.462 +  Added function png_set_user_transform_info() to store user_transform_ptr,
   1.463 +    user_depth, and user_channels into the png_struct, and a function
   1.464 +    png_get_user_transform_ptr() to retrieve the pointer (Chris Nokleberg)
   1.465 +  Added function png_set_empty_plte_permitted() to make libpng useable
   1.466 +    in MNG applications.
   1.467 +  Corrected the typedef for png_free_ptr in png.h (Jesse Jones).
   1.468 +  Correct gamma with srgb is 45455 instead of 45000 in pngrutil.c, to be
   1.469 +    consistent with PNG-1.2, and allow variance of 500 before complaining.
   1.470 +  Added assembler code contributed by Intel in file pngvcrd.c and modified
   1.471 +    makefile.w32 to use it (Nirav Chhatrapati, INTEL Corporation,
   1.472 +    Gilles Vollant)
   1.473 +  Changed "ln -s -f" to "ln -f -s" in the makefiles to make Solaris happy.
   1.474 +  Added some aliases for png_set_expand() in pngrtran.c, namely
   1.475 +    png_set_expand_PLTE(), png_set_expand_depth(), and png_set_expand_tRNS()
   1.476 +    (Greg Roelofs, in "PNG: The Definitive Guide").
   1.477 +  Added makefile.beo for BEOS on X86, contributed by Sander Stok.
   1.478 +
   1.479 +Version 1.0.3b [August 26, 1999]
   1.480 +  Replaced 2147483647L several places with PNG_MAX_UINT macro, defined in png.h
   1.481 +  Changed leading blanks to tabs in all makefiles.
   1.482 +  Define PNG_USE_PNGVCRD in makefile.w32, to get MMX assembler code.
   1.483 +  Made alternate versions of  png_set_expand() in pngrtran.c, namely
   1.484 +    png_set_gray_1_2_4_to_8, png_set_palette_to_rgb, and png_set_tRNS_to_alpha
   1.485 +    (Greg Roelofs, in "PNG: The Definitive Guide").  Deleted the 1.0.3a aliases.
   1.486 +  Relocated start of 'extern "C"' block in png.h so it doesn't include pngconf.h
   1.487 +  Revised calculation of num_blocks in pngmem.c to avoid a potentially
   1.488 +    negative shift distance, whose results are undefined in the C language.
   1.489 +  Added a check in pngset.c to prevent writing multiple tIME chunks.
   1.490 +  Added a check in pngwrite.c to detect invalid small window_bits sizes.
   1.491 +
   1.492 +Version 1.0.3d [September 4, 1999]
   1.493 +  Fixed type casting of igamma in pngrutil.c
   1.494 +  Added new png_expand functions to scripts/pngdef.pas and pngos2.def
   1.495 +  Added a demo read_user_transform_fn that examines the row filters in pngtest.c
   1.496 +
   1.497 +Version 1.0.4 [September 24, 1999]
   1.498 +  Define PNG_ALWAYS_EXTERN in pngconf.h if __STDC__ is defined
   1.499 +  Delete #define PNG_INTERNAL and include "png.h" from pngasmrd.h
   1.500 +  Made several minor corrections to pngtest.c
   1.501 +  Renamed the makefiles with longer but more user friendly extensions.
   1.502 +  Copied the PNG copyright and license to a separate LICENSE file.
   1.503 +  Revised documentation, png.h, and example.c to remove reference to
   1.504 +    "viewing_gamma" which no longer appears in the PNG specification.
   1.505 +  Revised pngvcrd.c to use MMX code for interlacing only on the final pass.
   1.506 +  Updated pngvcrd.c to use the faster C filter algorithms from libpng-1.0.1a
   1.507 +  Split makefile.win32vc into two versions, makefile.vcawin32 (uses MMX
   1.508 +    assembler code) and makefile.vcwin32 (doesn't).
   1.509 +  Added a CPU timing report to pngtest.c (enabled by defining PNGTEST_TIMING)
   1.510 +  Added a copy of pngnow.png to the distribution.
   1.511 +
   1.512 +Version 1.0.4a [September 25, 1999]
   1.513 +  Increase max_pixel_depth in pngrutil.c if a user transform needs it.
   1.514 +  Changed several division operations to right-shifts in pngvcrd.c
   1.515 +
   1.516 +Version 1.0.4b [September 30, 1999]
   1.517 +  Added parentheses in line 3732 of pngvcrd.c
   1.518 +  Added a comment in makefile.linux warning about buggy -O3 in pgcc 2.95.1
   1.519 +
   1.520 +Version 1.0.4c [October 1, 1999]
   1.521 +  Added a "png_check_version" function in png.c and pngtest.c that will generate
   1.522 +    a helpful compiler error if an old png.h is found in the search path.
   1.523 +  Changed type of png_user_transform_depth|channels from int to png_byte.
   1.524 +
   1.525 +Version 1.0.4d [October 6, 1999]
   1.526 +  Changed 0.45 to 0.45455 in png_set_sRGB()
   1.527 +  Removed unused PLTE entries from pngnow.png
   1.528 +  Re-enabled some parts of pngvcrd.c (png_combine_row) that work properly.
   1.529 +
   1.530 +Version 1.0.4e [October 10, 1999]
   1.531 +  Fixed sign error in pngvcrd.c (Greg Roelofs)
   1.532 +  Replaced some instances of memcpy with simple assignments in pngvcrd (GR-P)
   1.533 +
   1.534 +Version 1.0.4f [October 15, 1999]
   1.535 +  Surrounded example.c code with #if 0 .. #endif to prevent people from
   1.536 +    inadvertently trying to compile it.
   1.537 +  Changed png_get_header_version() from a function to a macro in png.h
   1.538 +  Added type casting mostly in pngrtran.c and pngwtran.c
   1.539 +  Removed some pointless "ptr = NULL" in pngmem.c
   1.540 +  Added a "contrib" directory containing the source code from Greg's book.
   1.541 +
   1.542 +Version 1.0.5 [October 15, 1999]
   1.543 +  Minor editing of the INSTALL and README files.
   1.544 +
   1.545 +Version 1.0.5a [October 23, 1999]
   1.546 +  Added contrib/pngsuite and contrib/pngminus (Willem van Schaik)
   1.547 +  Fixed a typo in the png_set_sRGB() function call in example.c (Jan Nijtmans)
   1.548 +  Further optimization and bugfix of pngvcrd.c
   1.549 +  Revised pngset.c so that it does not allocate or free memory in the user's
   1.550 +    text_ptr structure.  Instead, it makes its own copy.
   1.551 +  Created separate write_end_info_struct in pngtest.c for a more severe test.
   1.552 +  Added code in pngwrite.c to free info_ptr->text[i].key to stop a memory leak.
   1.553 +
   1.554 +Version 1.0.5b [November 23, 1999]
   1.555 +  Moved PNG_FLAG_HAVE_CHUNK_HEADER, PNG_FLAG_BACKGROUND_IS_GRAY and
   1.556 +    PNG_FLAG_WROTE_tIME from flags to mode.
   1.557 +  Added png_write_info_before_PLTE() function.
   1.558 +  Fixed some typecasting in contrib/gregbook/*.c
   1.559 +  Updated scripts/makevms.com and added makevms.com to contrib/gregbook
   1.560 +    and contrib/pngminus (Martin Zinser)
   1.561 +
   1.562 +Version 1.0.5c [November 26, 1999]
   1.563 +  Moved png_get_header_version from png.h to png.c, to accommodate ansi2knr.
   1.564 +  Removed all global arrays (according to PNG_NO_GLOBAL_ARRAYS macro), to
   1.565 +    accommodate making DLL's: Moved usr_png_ver from global variable to function
   1.566 +    png_get_header_ver() in png.c.  Moved png_sig to png_sig_bytes in png.c and
   1.567 +    eliminated use of png_sig in pngwutil.c.  Moved the various png_CHNK arrays
   1.568 +    into pngtypes.h.  Eliminated use of global png_pass arrays.  Declared the
   1.569 +    png_CHNK and png_pass arrays to be "const".  Made the global arrays
   1.570 +    available to applications (although none are used in libpng itself) when
   1.571 +    PNG_NO_GLOBAL_ARRAYS is not defined or when PNG_GLOBAL_ARRAYS is defined.
   1.572 +  Removed some extraneous "-I" from contrib/pngminus/makefile.std
   1.573 +  Changed the PNG_sRGB_INTENT macros in png.h to be consistent with PNG-1.2.
   1.574 +  Change PNG_SRGB_INTENT to PNG_sRGB_INTENT in libpng.txt and libpng.3
   1.575 +
   1.576 +Version 1.0.5d [November 29, 1999]
   1.577 +  Add type cast (png_const_charp) two places in png.c
   1.578 +  Eliminated pngtypes.h; use macros instead to declare PNG_CHNK arrays.
   1.579 +  Renamed "PNG_GLOBAL_ARRAYS" to "PNG_USE_GLOBAL_ARRAYS" and made available
   1.580 +    to applications a macro "PNG_USE_LOCAL_ARRAYS".
   1.581 +  comment out (with #ifdef) all the new declarations when
   1.582 +    PNG_USE_GLOBAL_ARRAYS is defined.
   1.583 +  Added PNG_EXPORT_VAR macro to accommodate making DLL's.
   1.584 +
   1.585 +Version 1.0.5e [November 30, 1999]
   1.586 +  Added iCCP, iTXt, and sPLT support; added "lang" member to the png_text
   1.587 +    structure; refactored the inflate/deflate support to make adding new chunks
   1.588 +    with trailing compressed parts easier in the future, and added new functions
   1.589 +    png_free_iCCP, png_free_pCAL, png_free_sPLT, png_free_text, png_get_iCCP,
   1.590 +    png_get_spalettes, png_set_iCCP, png_set_spalettes (Eric S. Raymond).
   1.591 +  NOTE: Applications that write text chunks MUST define png_text->lang
   1.592 +    before calling png_set_text(). It must be set to NULL if you want to
   1.593 +    write tEXt or zTXt chunks.  If you want your application to be able to
   1.594 +    run with older versions of libpng, use
   1.595 +
   1.596 +      #ifdef PNG_iTXt_SUPPORTED
   1.597 +         png_text[i].lang = NULL;
   1.598 +      #endif
   1.599 +
   1.600 +  Changed png_get_oFFs() and png_set_oFFs() to use signed rather than unsigned
   1.601 +    offsets (Eric S. Raymond).
   1.602 +  Combined PNG_READ_cHNK_SUPPORTED and PNG_WRITE_cHNK_SUPPORTED macros into
   1.603 +    PNG_cHNK_SUPPORTED and combined the three types of PNG_text_SUPPORTED
   1.604 +    macros, leaving the separate macros also available.
   1.605 +  Removed comments on #endifs at the end of many short, non-nested #if-blocks.
   1.606 +
   1.607 +Version 1.0.5f [December 6, 1999]
   1.608 +  Changed makefile.solaris to issue a warning about potential problems when
   1.609 +    the ucb "ld" is in the path ahead of the ccs "ld".
   1.610 +  Removed "- [date]" from the "synopsis" line in libpng.3 and libpngpf.3.
   1.611 +  Added sCAL chunk support (Eric S. Raymond).
   1.612 +
   1.613 +Version 1.0.5g [December 7, 1999]
   1.614 +  Fixed "png_free_spallettes" typo in png.h
   1.615 +  Added code to handle new chunks in pngpread.c
   1.616 +  Moved PNG_CHNK string macro definitions outside of PNG_NO_EXTERN block
   1.617 +  Added "translated_key" to png_text structure and png_write_iTXt().
   1.618 +  Added code in pngwrite.c to work around a newly discovered zlib bug.
   1.619 +
   1.620 +Version 1.0.5h [December 10, 1999]
   1.621 +  NOTE: regarding the note for version 1.0.5e, the following must also
   1.622 +    be included in your code:
   1.623 +        png_text[i].translated_key = NULL;
   1.624 +  Unknown chunk handling is now supported.
   1.625 +  Option to eliminate all floating point support was added.  Some new
   1.626 +    fixed-point functions such as png_set_gAMA_fixed() were added.
   1.627 +  Expanded tabs and removed trailing blanks in source files.
   1.628 +
   1.629 +Version 1.0.5i [December 13, 1999]
   1.630 +  Added some type casts to silence compiler warnings.
   1.631 +  Renamed "png_free_spalette" to "png_free_spalettes" for consistency.
   1.632 +  Removed leading blanks from a #define in pngvcrd.c
   1.633 +  Added some parameters to the new png_set_keep_unknown_chunks() function.
   1.634 +  Added a test for up->location != 0 in the first instance of writing
   1.635 +    unknown chunks in pngwrite.c
   1.636 +  Changed "num" to "i" in png_free_spalettes() and png_free_unknowns() to
   1.637 +    prevent recursion.
   1.638 +  Added png_free_hIST() function.
   1.639 +  Various patches to fix bugs in the sCAL and integer cHRM processing,
   1.640 +    and to add some convenience macros for use with sCAL.
   1.641 +
   1.642 +Version 1.0.5j [December 21, 1999]
   1.643 +  Changed "unit" parameter of png_write_sCAL from png_byte to int, to work
   1.644 +    around buggy compilers.
   1.645 +  Added new type "png_fixed_point" for integers that hold float*100000 values
   1.646 +  Restored backward compatibility of tEXt/zTXt chunk processing:
   1.647 +    Restored the first four members of png_text to the same order as v.1.0.5d.
   1.648 +    Added members "lang_key" and "itxt_length" to png_text struct.  Set
   1.649 +    text_length=0 when "text" contains iTXt data.  Use the "compression"
   1.650 +    member to distinguish among tEXt/zTXt/iTXt types.  Added
   1.651 +    PNG_ITXT_COMPRESSION_NONE (1) and PNG_ITXT_COMPRESSION_zTXt(2) macros.
   1.652 +    The "Note" above, about backward incompatibility of libpng-1.0.5e, no
   1.653 +    longer applies.
   1.654 +  Fixed png_read|write_iTXt() to read|write parameters in the right order,
   1.655 +    and to write the iTXt chunk after IDAT if it appears in the end_ptr.
   1.656 +  Added pnggccrd.c, version of pngvcrd.c Intel assembler for gcc (Greg Roelofs)
   1.657 +  Reversed the order of trying to write floating-point and fixed-point gAMA.
   1.658 +
   1.659 +Version 1.0.5k [December 27, 1999]
   1.660 +  Added many parentheses, e.g., "if (a && b & c)" becomes "if (a && (b & c))"
   1.661 +  Added png_handle_as_unknown() function (Glenn)
   1.662 +  Added png_free_chunk_list() function and chunk_list and num_chunk_list members
   1.663 +    of png_ptr.
   1.664 +  Eliminated erroneous warnings about multiple sPLT chunks and sPLT-after-PLTE.
   1.665 +  Fixed a libpng-1.0.5h bug in pngrutil.c that was issuing erroneous warnings
   1.666 +    about ignoring incorrect gAMA with sRGB (gAMA was in fact not ignored)
   1.667 +  Added png_free_tRNS(); png_set_tRNS() now malloc's its own trans array (ESR).
   1.668 +  Define png_get_int_32 when oFFs chunk is supported as well as when pCAL is.
   1.669 +  Changed type of proflen from png_int_32 to png_uint_32 in png_get_iCCP().
   1.670 +
   1.671 +Version 1.0.5l [January 1, 2000]
   1.672 +  Added functions png_set_read_user_chunk_fn() and png_get_user_chunk_ptr()
   1.673 +    for setting a callback function to handle unknown chunks and for
   1.674 +    retrieving the associated user pointer (Glenn).
   1.675 +
   1.676 +Version 1.0.5m [January 7, 2000]
   1.677 +  Added high-level functions png_read_png(), png_write_png(), png_free_pixels().
   1.678 +
   1.679 +Version 1.0.5n [January 9, 2000]
   1.680 +  Added png_free_PLTE() function, and modified png_set_PLTE() to malloc its
   1.681 +    own memory for info_ptr->palette.  This makes it safe for the calling
   1.682 +    application to free its copy of the palette any time after it calls
   1.683 +    png_set_PLTE().
   1.684 +
   1.685 +Version 1.0.5o [January 20, 2000]
   1.686 +  Cosmetic changes only (removed some trailing blanks and TABs)
   1.687 +
   1.688 +Version 1.0.5p [January 31, 2000]
   1.689 +  Renamed pngdll.mak to makefile.bd32
   1.690 +  Cosmetic changes in pngtest.c
   1.691 +
   1.692 +Version 1.0.5q [February 5, 2000]
   1.693 +  Relocated the makefile.solaris warning about PATH problems.
   1.694 +  Fixed pngvcrd.c bug by pushing/popping registers in mmxsupport (Bruce Oberg)
   1.695 +  Revised makefile.gcmmx
   1.696 +  Added PNG_SETJMP_SUPPORTED, PNG_SETJMP_NOT_SUPPORTED, and PNG_ABORT() macros
   1.697 +
   1.698 +Version 1.0.5r [February 7, 2000]
   1.699 +  Removed superfluous prototype for png_get_itxt from png.h
   1.700 +  Fixed a bug in pngrtran.c that improperly expanded the background color.
   1.701 +  Return *num_text=0 from png_get_text() when appropriate, and fix documentation
   1.702 +    of png_get_text() in libpng.txt/libpng.3.
   1.703 +
   1.704 +Version 1.0.5s [February 18, 2000]
   1.705 +  Added "png_jmp_env()" macro to pngconf.h, to help people migrate to the
   1.706 +    new error handler that's planned for the next libpng release, and changed
   1.707 +    example.c, pngtest.c, and contrib programs to use this macro.
   1.708 +  Revised some of the DLL-export macros in pngconf.h (Greg Roelofs)
   1.709 +  Fixed a bug in png_read_png() that caused it to fail to expand some images
   1.710 +    that it should have expanded.
   1.711 +  Fixed some mistakes in the unused and undocumented INCH_CONVERSIONS functions
   1.712 +    in pngget.c
   1.713 +  Changed the allocation of palette, history, and trans arrays back to
   1.714 +    the version 1.0.5 method (linking instead of copying) which restores
   1.715 +    backward compatibility with version 1.0.5.  Added some remarks about
   1.716 +    that in example.c.  Added "free_me" member to info_ptr and png_ptr
   1.717 +    and added png_free_data() function.
   1.718 +  Updated makefile.linux and makefile.gccmmx to make directories conditionally.
   1.719 +  Made cosmetic changes to pngasmrd.h
   1.720 +  Added png_set_rows() and png_get_rows(), for use with png_read|write_png().
   1.721 +  Modified png_read_png() to allocate info_ptr->row_pointers only if it
   1.722 +    hasn't already been allocated.
   1.723 +
   1.724 +Version 1.0.5t [March 4, 2000]
   1.725 +  Changed png_jmp_env() migration aiding macro to png_jmpbuf().
   1.726 +  Fixed "interlace" typo (should be "interlaced") in contrib/gregbook/read2-x.c
   1.727 +  Fixed bug with use of PNG_BEFORE_IHDR bit in png_ptr->mode, introduced when
   1.728 +    PNG_FLAG_HAVE_CHUNK_HEADER was moved into png_ptr->mode in version 1.0.5b
   1.729 +  Files in contrib/gregbook were revised to use png_jmpbuf() and to select
   1.730 +    a 24-bit visual if one is available, and to allow abbreviated options.
   1.731 +  Files in contrib/pngminus were revised to use the png_jmpbuf() macro.
   1.732 +  Removed spaces in makefile.linux and makefile.gcmmx, introduced in 1.0.5s
   1.733 +
   1.734 +Version 1.0.5u [March 5, 2000]
   1.735 +  Simplified the code that detects old png.h in png.c and pngtest.c
   1.736 +  Renamed png_spalette (_p, _pp) to png_sPLT_t (_tp, _tpp)
   1.737 +  Increased precision of rgb_to_gray calculations from 8 to 15 bits and
   1.738 +    added png_set_rgb_to_gray_fixed() function.
   1.739 +  Added makefile.bc32 (32-bit Borland C++, C mode)
   1.740 +
   1.741 +Version 1.0.5v [March 11, 2000]
   1.742 +  Added some parentheses to the png_jmpbuf macro definition.
   1.743 +  Updated references to the zlib home page, which has moved to freesoftware.com.
   1.744 +  Corrected bugs in documentation regarding png_read_row() and png_write_row().
   1.745 +  Updated documentation of png_rgb_to_gray calculations in libpng.3/libpng.txt.
   1.746 +  Renamed makefile.borland,turboc3 back to makefile.bor,tc3 as in version 1.0.3,
   1.747 +    revised borland makefiles; added makefile.ibmvac3 and makefile.gcc (Cosmin)
   1.748 +
   1.749 +Version 1.0.6 [March 20, 2000]
   1.750 +  Minor revisions of makefile.bor, libpng.txt, and gregbook/rpng2-win.c
   1.751 +  Added makefile.sggcc (SGI IRIX with gcc)
   1.752 +
   1.753 +Version 1.0.6d [April 7, 2000]
   1.754 +  Changed sprintf() to strcpy() in png_write_sCAL_s() to work without STDIO
   1.755 +  Added data_length parameter to png_decompress_chunk() function
   1.756 +  Revised documentation to remove reference to abandoned png_free_chnk functions
   1.757 +  Fixed an error in png_rgb_to_gray_fixed()
   1.758 +  Revised example.c, usage of png_destroy_write_struct().
   1.759 +  Renamed makefile.ibmvac3 to makefile.ibmc, added libpng.icc IBM project file
   1.760 +  Added a check for info_ptr->free_me&PNG_FREE_TEXT when freeing text in png.c
   1.761 +  Simplify png_sig_bytes() function to remove use of non-ISO-C strdup().
   1.762 +
   1.763 +Version 1.0.6e [April 9, 2000]
   1.764 +  Added png_data_freer() function.
   1.765 +  In the code that checks for over-length tRNS chunks, added check of
   1.766 +    info_ptr->num_trans as well as png_ptr->num_trans (Matthias Benckmann)
   1.767 +  Minor revisions of libpng.txt/libpng.3.
   1.768 +  Check for existing data and free it if the free_me flag is set, in png_set_*()
   1.769 +    and png_handle_*().
   1.770 +  Only define PNG_WEIGHTED_FILTERS_SUPPORTED when PNG_FLOATING_POINT_SUPPORTED
   1.771 +    is defined.
   1.772 +  Changed several instances of PNG_NO_CONSOLE_ID to PNG_NO_STDIO in pngrutil.c
   1.773 +    and mentioned the purposes of the two macros in libpng.txt/libpng.3.
   1.774 +
   1.775 +Version 1.0.6f [April 14, 2000]
   1.776 +  Revised png_set_iCCP() and png_set_rows() to avoid prematurely freeing data.
   1.777 +  Add checks in png_set_text() for NULL members of the input text structure.
   1.778 +  Revised libpng.txt/libpng.3.
   1.779 +  Removed superfluous prototype for png_set_iTXt from png.h
   1.780 +  Removed "else" from pngread.c, after png_error(), and changed "0" to "length".
   1.781 +  Changed several png_errors about malformed ancillary chunks to png_warnings.
   1.782 +
   1.783 +Version 1.0.6g [April 24, 2000]
   1.784 +  Added png_pass-* arrays to pnggccrd.c when PNG_USE_LOCAL_ARRAYS is defined.
   1.785 +  Relocated paragraph about png_set_background() in libpng.3/libpng.txt
   1.786 +    and other revisions (Matthias Benckmann)
   1.787 +  Relocated info_ptr->free_me, png_ptr->free_me, and other info_ptr and
   1.788 +    png_ptr members to restore binary compatibility with libpng-1.0.5
   1.789 +    (breaks compatibility with libpng-1.0.6).
   1.790 +
   1.791 +Version 1.0.6h [April 24, 2000]
   1.792 +  Changed shared library so-number pattern from 2.x.y.z to xy.z (this builds
   1.793 +    libpng.so.10 & libpng.so.10.6h instead of libpng.so.2 & libpng.so.2.1.0.6h)
   1.794 +    This is a temporary change for test purposes.
   1.795 +
   1.796 +Version 1.0.6i [May 2, 2000]
   1.797 +  Rearranged some members at the end of png_info and png_struct, to put
   1.798 +    unknown_chunks_num and free_me within the original size of the png_structs
   1.799 +    and free_me, png_read_user_fn, and png_free_fn within the original png_info,
   1.800 +    because some old applications allocate the structs directly instead of
   1.801 +    using png_create_*().
   1.802 +  Added documentation of user memory functions in libpng.txt/libpng.3
   1.803 +  Modified png_read_png so that it will use user_allocated row_pointers
   1.804 +    if present, unless free_me directs that it be freed, and added description
   1.805 +    of the use of png_set_rows() and png_get_rows() in libpng.txt/libpng.3.
   1.806 +  Added PNG_LEGACY_SUPPORTED macro, and #ifdef out all new (since version
   1.807 +    1.00) members of png_struct and png_info, to regain binary compatibility
   1.808 +    when you define this macro.  Capabilities lost in this event
   1.809 +    are user transforms (new in version 1.0.0),the user transform pointer
   1.810 +    (new in version 1.0.2), rgb_to_gray (new in 1.0.5), iCCP, sCAL, sPLT,
   1.811 +    the high-level interface, and unknown chunks support (all new in 1.0.6).
   1.812 +    This was necessary because of old applications that allocate the structs
   1.813 +    directly as authors were instructed to do in libpng-0.88 and earlier,
   1.814 +    instead of using png_create_*().
   1.815 +  Added modes PNG_CREATED_READ_STRUCT and PNG_CREATED_WRITE_STRUCT which
   1.816 +    can be used to detect codes that directly allocate the structs, and
   1.817 +    code to check these modes in png_read_init() and png_write_init() and
   1.818 +    generate a libpng error if the modes aren't set and PNG_LEGACY_SUPPORTED
   1.819 +    was not defined.
   1.820 +  Added makefile.intel and updated makefile.watcom (Pawel Mrochen)
   1.821 +
   1.822 +Version 1.0.6j [May 3, 2000]
   1.823 +  Overloaded png_read_init() and png_write_init() with macros that convert
   1.824 +    calls to png_read_init_2() or png_write_init_2() that check the version
   1.825 +    and structure sizes.
   1.826 +
   1.827 +Version 1.0.7beta11 [May 7, 2000]
   1.828 +  Removed the new PNG_CREATED_READ_STRUCT and PNG_CREATED_WRITE_STRUCT modes
   1.829 +    which are no longer used.
   1.830 +  Eliminated the three new members of png_text when PNG_LEGACY_SUPPORTED is
   1.831 +    defined or when neither PNG_READ_iTXt_SUPPORTED nor PNG_WRITE_iTXT_SUPPORTED
   1.832 +    is defined.
   1.833 +  Made PNG_NO_READ|WRITE_iTXt the default setting, to avoid memory
   1.834 +    overrun when old applications fill the info_ptr->text structure directly.
   1.835 +  Added PNGAPI macro, and added it to the definitions of all exported functions.
   1.836 +  Relocated version macro definitions ahead of the includes of zlib.h and
   1.837 +    pngconf.h in png.h.
   1.838 +
   1.839 +Version 1.0.7beta12 [May 12, 2000]
   1.840 +  Revised pngset.c to avoid a problem with expanding the png_debug macro.
   1.841 +  Deleted some extraneous defines from pngconf.h
   1.842 +  Made PNG_NO_CONSOLE_IO the default condition when PNG_BUILD_DLL is defined.
   1.843 +  Use MSC _RPTn debugging instead of fprintf if _MSC_VER is defined.
   1.844 +  Added png_access_version_number() function.
   1.845 +  Check for mask&PNG_FREE_CHNK (for TEXT, SCAL, PCAL) in png_free_data().
   1.846 +  Expanded libpng.3/libpng.txt information about png_data_freer().
   1.847 +
   1.848 +Version 1.0.7beta14 [May 17, 2000] (beta13 was not published)
   1.849 +  Changed pnggccrd.c and pngvcrd.c to handle bad adaptive filter types as
   1.850 +    warnings instead of errors, as pngrutil.c does.
   1.851 +  Set the PNG_INFO_IDAT valid flag in png_set_rows() so png_write_png()
   1.852 +    will actually write IDATs.
   1.853 +  Made the default PNG_USE_LOCAL_ARRAYS depend on PNG_DLL instead of WIN32.
   1.854 +  Make png_free_data() ignore its final parameter except when freeing data
   1.855 +    that can have multiple instances (text, sPLT, unknowns).
   1.856 +  Fixed a new bug in png_set_rows().
   1.857 +  Removed info_ptr->valid tests from png_free_data(), as in version 1.0.5.
   1.858 +  Added png_set_invalid() function.
   1.859 +  Fixed incorrect illustrations of png_destroy_write_struct() in example.c.
   1.860 +
   1.861 +Version 1.0.7beta15 [May 30, 2000]
   1.862 +  Revised the deliberately erroneous Linux setjmp code in pngconf.h to produce
   1.863 +    fewer error messages.
   1.864 +  Rearranged checks for Z_OK to check the most likely path first in pngpread.c
   1.865 +    and pngwutil.c.
   1.866 +  Added checks in pngtest.c for png_create_*() returning NULL, and mentioned
   1.867 +    in libpng.txt/libpng.3 the need for applications to check this.
   1.868 +  Changed names of png_default_*() functions in pngtest to pngtest_*().
   1.869 +  Changed return type of png_get_x|y_offset_*() from png_uint_32 to png_int_32.
   1.870 +  Fixed some bugs in the unused PNG_INCH_CONVERSIONS functions in pngget.c
   1.871 +  Set each pointer to NULL after freeing it in png_free_data().
   1.872 +  Worked around a problem in pngconf.h; AIX's strings.h defines an "index"
   1.873 +    macro that conflicts with libpng's png_color_16.index. (Dimitri
   1.874 +    Papadapoulos)
   1.875 +  Added "msvc" directory with MSVC++ project files (Simon-Pierre Cadieux).
   1.876 +
   1.877 +Version 1.0.7beta16 [June 4, 2000]
   1.878 +  Revised the workaround of AIX string.h "index" bug.
   1.879 +  Added a check for overlength PLTE chunk in pngrutil.c.
   1.880 +  Added PNG_NO_POINTER_INDEXING macro to use array-indexing instead of pointer
   1.881 +    indexing in pngrutil.c and pngwutil.c to accommodate a buggy compiler.
   1.882 +  Added a warning in png_decompress_chunk() when it runs out of data, e.g.
   1.883 +    when it tries to read an erroneous PhotoShop iCCP chunk.
   1.884 +  Added PNG_USE_DLL macro.
   1.885 +  Revised the copyright/disclaimer/license notice.
   1.886 +  Added contrib/msvctest directory
   1.887 +
   1.888 +Version 1.0.7rc1 [June 9, 2000]
   1.889 +  Corrected the definition of PNG_TRANSFORM_INVERT_ALPHA  (0x0400 not 0x0200)
   1.890 +  Added contrib/visupng directory (Willem van Schaik)
   1.891 +
   1.892 +Version 1.0.7beta18 [June 23, 2000]
   1.893 +  Revised PNGAPI definition, and pngvcrd.c to work with __GCC__
   1.894 +    and do not redefine PNGAPI if it is passed in via a compiler directive.
   1.895 +  Revised visupng/PngFile.c to remove returns from within the Try block.
   1.896 +  Removed leading underscores from "_PNG_H" and "_PNG_SAVE_BSD_SOURCE" macros.
   1.897 +  Updated contrib/visupng/cexcept.h to version 1.0.0.
   1.898 +  Fixed bugs in pngwrite.c and pngwutil.c that prevented writing iCCP chunks.
   1.899 +
   1.900 +Version 1.0.7rc2 [June 28, 2000]
   1.901 +  Updated license to include disclaimers required by UCITA.
   1.902 +  Fixed "DJBPP" typo in pnggccrd.c introduced in beta18.
   1.903 +
   1.904 +Version 1.0.7 [July 1, 2000]
   1.905 +  Revised the definition of "trans_values" in libpng.3/libpng.txt
   1.906 +
   1.907 +Version 1.0.8beta1 [July 8, 2000]
   1.908 +  Added png_free(png_ptr, key) two places in pngpread.c to stop memory leaks.
   1.909 +  Changed PNG_NO_STDIO to PNG_NO_CONSOLE_IO, several places in pngrutil.c and
   1.910 +     pngwutil.c.
   1.911 +  Changed PNG_EXPORT_VAR to use PNG_IMPEXP, in pngconf.h.
   1.912 +  Removed unused "#include <assert.h>" from png.c
   1.913 +  Added WindowsCE support.
   1.914 +  Revised pnggccrd.c to work with gcc-2.95.2 and in the Cygwin environment.
   1.915 +
   1.916 +Version 1.0.8beta2 [July 10, 2000]
   1.917 +  Added project files to the wince directory and made further revisions
   1.918 +     of pngtest.c, pngrio.c, and pngwio.c in support of WindowsCE.
   1.919 +
   1.920 +Version 1.0.8beta3 [July 11, 2000]
   1.921 +  Only set the PNG_FLAG_FREE_TRNS or PNG_FREE_TRNS flag in png_handle_tRNS()
   1.922 +     for indexed-color input files to avoid potential double-freeing trans array
   1.923 +     under some unusual conditions; problem was introduced in version 1.0.6f.
   1.924 +  Further revisions to pngtest.c and files in the wince subdirectory.
   1.925 +
   1.926 +Version 1.0.8beta4 [July 14, 2000]
   1.927 +  Added the files pngbar.png and pngbar.jpg to the distribution.
   1.928 +  Added makefile.cygwin, and cygwin support in pngconf.h
   1.929 +  Added PNG_NO_ZALLOC_ZERO macro (makes png_zalloc skip zeroing memory)
   1.930 +
   1.931 +Version 1.0.8rc1 [July 16, 2000]
   1.932 +  Revised png_debug() macros and statements to eliminate compiler warnings.
   1.933 +
   1.934 +Version 1.0.8 [July 24, 2000]
   1.935 +  Added png_flush() in pngwrite.c, after png_write_IEND().
   1.936 +  Updated makefile.hpux to build a shared library.
   1.937 +
   1.938 +Version 1.0.9beta1 [November 10, 2000]
   1.939 +  Fixed typo in scripts/makefile.hpux
   1.940 +  Updated makevms.com in scripts and contrib/* and contrib/* (Martin Zinser)
   1.941 +  Fixed seqence-point bug in contrib/pngminus/png2pnm (Martin Zinser)
   1.942 +  Changed "cdrom.com" in documentation to "libpng.org"
   1.943 +  Revised pnggccrd.c to get it all working, and updated makefile.gcmmx (Greg).
   1.944 +  Changed type of "params" from voidp to png_voidp in png_read|write_png().
   1.945 +  Make sure PNGAPI and PNG_IMPEXP are defined in pngconf.h.
   1.946 +  Revised the 3 instances of WRITEFILE in pngtest.c.
   1.947 +  Relocated "msvc" and "wince" project subdirectories into "dll" subdirectory.
   1.948 +  Updated png.rc in dll/msvc project
   1.949 +  Revised makefile.dec to define and use LIBPATH and INCPATH
   1.950 +  Increased size of global png_libpng_ver[] array from 12 to 18 chars.
   1.951 +  Made global png_libpng_ver[], png_sig[] and png_pass_*[] arrays const.
   1.952 +  Removed duplicate png_crc_finish() from png_handle_bKGD() function.
   1.953 +  Added a warning when application calls png_read_update_info() multiple times.
   1.954 +  Revised makefile.cygwin
   1.955 +  Fixed bugs in iCCP support in pngrutil.c and pngwutil.c.
   1.956 +  Replaced png_set_empty_plte_permitted() with png_permit_mng_features().
   1.957 +
   1.958 +Version 1.0.9beta2 [November 19, 2000]
   1.959 +  Renamed the "dll" subdirectory "projects".
   1.960 +  Added borland project files to "projects" subdirectory.
   1.961 +  Set VS_FF_PRERELEASE and VS_FF_PATCHED flags in msvc/png.rc when appropriate.
   1.962 +  Add error message in png_set_compression_buffer_size() when malloc fails.
   1.963 +
   1.964 +Version 1.0.9beta3 [November 23, 2000]
   1.965 +  Revised PNG_LIBPNG_BUILD_TYPE macro in png.h, used in the msvc project.
   1.966 +  Removed the png_flush() in pngwrite.c that crashes some applications
   1.967 +    that don't set png_output_flush_fn.
   1.968 +  Added makefile.macosx and makefile.aix to scripts directory.
   1.969 +
   1.970 +Version 1.0.9beta4 [December 1, 2000]
   1.971 +  Change png_chunk_warning to png_warning in png_check_keyword().
   1.972 +  Increased the first part of msg buffer from 16 to 18 in png_chunk_error().
   1.973 +
   1.974 +Version 1.0.9beta5 [December 15, 2000]
   1.975 +  Added support for filter method 64 (for PNG datastreams embedded in MNG).
   1.976 +
   1.977 +Version 1.0.9beta6 [December 18, 2000]
   1.978 +  Revised png_set_filter() to accept filter method 64 when appropriate.
   1.979 +  Added new PNG_HAVE_PNG_SIGNATURE bit to png_ptr->mode and use it to
   1.980 +    help prevent applications from using MNG features in PNG datastreams.
   1.981 +  Added png_permit_mng_features() function.
   1.982 +  Revised libpng.3/libpng.txt.  Changed "filter type" to "filter method".
   1.983 +
   1.984 +Version 1.0.9rc1 [December 23, 2000]
   1.985 +  Revised test for PNG_HAVE_PNG_SIGNATURE in pngrutil.c
   1.986 +  Fixed error handling of unknown compression type in png_decompress_chunk().
   1.987 +  In pngconf.h, define __cdecl when _MSC_VER is defined.
   1.988 +
   1.989 +Version 1.0.9beta7 [December 28, 2000]
   1.990 +  Changed PNG_TEXT_COMPRESSION_zTXt to PNG_COMPRESSION_TYPE_BASE several places.
   1.991 +  Revised memory management in png_set_hIST and png_handle_hIST in a backward
   1.992 +    compatible manner.  PLTE and tRNS were revised similarly.
   1.993 +  Revised the iCCP chunk reader to ignore trailing garbage.
   1.994 +
   1.995 +Version 1.0.9beta8 [January 12, 2001]
   1.996 +  Moved pngasmrd.h into pngconf.h.
   1.997 +  Improved handling of out-of-spec garbage iCCP chunks generated by PhotoShop.
   1.998 +
   1.999 +Version 1.0.9beta9 [January 15, 2001]
  1.1000 +  Added png_set_invalid, png_permit_mng_features, and png_mmx_supported to
  1.1001 +    wince and msvc project module definition files.
  1.1002 +  Minor revision of makefile.cygwin.
  1.1003 +  Fixed bug with progressive reading of narrow interlaced images in pngpread.c
  1.1004 +
  1.1005 +Version 1.0.9beta10 [January 16, 2001]
  1.1006 +  Do not typedef png_FILE_p in pngconf.h when PNG_NO_STDIO is defined.
  1.1007 +  Fixed "png_mmx_supported" typo in project definition files.
  1.1008 +
  1.1009 +Version 1.0.9beta11 [January 19, 2001]
  1.1010 +  Updated makefile.sgi to make shared library.
  1.1011 +  Removed png_mmx_support() function and disabled PNG_MNG_FEATURES_SUPPORTED
  1.1012 +    by default, for the benefit of DLL forward compatibility.  These will
  1.1013 +    be re-enabled in version 1.2.0.
  1.1014 +
  1.1015 +Version 1.0.9rc2 [January 22, 2001]
  1.1016 +  Revised cygwin support.
  1.1017 +
  1.1018 +Version 1.0.9 [January 31, 2001]
  1.1019 +  Added check of cygwin's ALL_STATIC in pngconf.h
  1.1020 +  Added "-nommx" parameter to contrib/gregbook/rpng2-win and rpng2-x demos.
  1.1021 +
  1.1022 +Version 1.0.10beta1 [March 14, 2001]
  1.1023 +  Revised makefile.dec, makefile.sgi, and makefile.sggcc; added makefile.hpgcc.
  1.1024 +  Reformatted libpng.3 to eliminate bad line breaks.
  1.1025 +  Added checks for _mmx_supported in the read_filter_row function of pnggccrd.c
  1.1026 +  Added prototype for png_mmx_support() near the top of pnggccrd.c
  1.1027 +  Moved some error checking from png_handle_IHDR to png_set_IHDR.
  1.1028 +  Added PNG_NO_READ_SUPPORTED and PNG_NO_WRITE_SUPPORTED macros.
  1.1029 +  Revised png_mmx_support() function in pnggccrd.c
  1.1030 +  Restored version 1.0.8 PNG_WRITE_EMPTY_PLTE_SUPPORTED behavior in pngwutil.c
  1.1031 +  Fixed memory leak in contrib/visupng/PngFile.c
  1.1032 +  Fixed bugs in png_combine_row() in pnggccrd.c and pngvcrd.c (C version)
  1.1033 +  Added warnings when retrieving or setting gamma=0.
  1.1034 +  Increased the first part of msg buffer from 16 to 18 in png_chunk_warning().
  1.1035 +
  1.1036 +Version 1.0.10rc1 [March 23, 2001]
  1.1037 +  Changed all instances of memcpy, strcpy, and strlen to png_memcpy, png_strcpy,
  1.1038 +    and png_strlen.
  1.1039 +  Revised png_mmx_supported() function in pnggccrd.c to return proper value.
  1.1040 +  Fixed bug in progressive reading (pngpread.c) with small images (height < 8).
  1.1041 +
  1.1042 +Version 1.0.10 [March 30, 2001]
  1.1043 +  Deleted extraneous space (introduced in 1.0.9) from line 42 of makefile.cygwin
  1.1044 +  Added beos project files (Chris Herborth)
  1.1045 +
  1.1046 +Version 1.0.11beta1 [April 3, 2001]
  1.1047 +  Added type casts on several png_malloc() calls (Dimitri Papadapoulos).
  1.1048 +  Removed a no-longer needed AIX work-around from pngconf.h
  1.1049 +  Changed several "//" single-line comments to C-style in pnggccrd.c
  1.1050 +
  1.1051 +Version 1.0.11beta2 [April 11, 2001]
  1.1052 +  Removed PNGAPI from several functions whose prototypes did not have PNGAPI.
  1.1053 +  Updated scripts/pngos2.def
  1.1054 +
  1.1055 +Version 1.0.11beta3 [April 14, 2001]
  1.1056 +  Added checking the results of many instances of png_malloc() for NULL
  1.1057 +
  1.1058 +Version 1.0.11beta4 [April 20, 2001]
  1.1059 +  Undid the changes from version 1.0.11beta3.  Added a check for NULL return
  1.1060 +    from user's malloc_fn().
  1.1061 +  Removed some useless type casts of the NULL pointer.
  1.1062 +  Added makefile.netbsd
  1.1063 +
  1.1064 +Version 1.0.11 [April 27, 2001]
  1.1065 +  Revised makefile.netbsd
  1.1066 +
  1.1067 +Version 1.0.12beta1 [May 14, 2001]
  1.1068 +  Test for Windows platform in pngconf.h when including malloc.h (Emmanuel Blot)
  1.1069 +  Updated makefile.cygwin and handling of Cygwin's ALL_STATIC in pngconf.h
  1.1070 +  Added some never-to-be-executed code in pnggccrd.c to quiet compiler warnings.
  1.1071 +  Eliminated the png_error about apps using png_read|write_init().  Instead,
  1.1072 +    libpng will reallocate the png_struct and info_struct if they are too small.
  1.1073 +    This retains future binary compatibility for old applications written for
  1.1074 +    libpng-0.88 and earlier.
  1.1075 +
  1.1076 +Version 1.2.0beta1 [May 6, 2001]
  1.1077 +  Bumped DLLNUM to 2.
  1.1078 +  Re-enabled PNG_MNG_FEATURES_SUPPORTED and enabled PNG_ASSEMBLER_CODE_SUPPORTED
  1.1079 +    by default.
  1.1080 +  Added runtime selection of MMX features.
  1.1081 +  Added png_set_strip_error_numbers function and related macros.
  1.1082 +
  1.1083 +Version 1.2.0beta2 [May 7, 2001]
  1.1084 +  Finished merging 1.2.0beta1 with version 1.0.11
  1.1085 +  Added a check for attempts to read or write PLTE in grayscale PNG datastreams.
  1.1086 +
  1.1087 +Version 1.2.0beta3 [May 17, 2001]
  1.1088 +  Enabled user memory function by default.
  1.1089 +  Modified png_create_struct so it passes user mem_ptr to user memory allocator.
  1.1090 +  Increased png_mng_features flag from png_byte to png_uint_32.
  1.1091 +  Bumped shared-library (so-number) and dll-number to 3.
  1.1092 +
  1.1093 +Version 1.2.0beta4 [June 23, 2001]
  1.1094 +  Check for missing profile length field in iCCP chunk and free chunk_data
  1.1095 +     in case of truncated iCCP chunk.
  1.1096 +  Bumped shared-library number to 3 in makefile.sgi and makefile.sggcc
  1.1097 +  Bumped dll-number from 2 to 3 in makefile.cygwin
  1.1098 +  Revised contrib/gregbook/rpng*-x.c to avoid a memory leak and to exit cleanly
  1.1099 +     if user attempts to run it on an 8-bit display.
  1.1100 +  Updated contrib/gregbook
  1.1101 +  Use png_malloc instead of png_zalloc to allocate palette in pngset.c
  1.1102 +  Updated makefile.ibmc
  1.1103 +  Added some typecasts to eliminate gcc 3.0 warnings.  Changed prototypes
  1.1104 +     of png_write_oFFS width and height from png_uint_32 to png_int_32.
  1.1105 +  Updated example.c
  1.1106 +  Revised prototypes for png_debug_malloc and png_debug_free in pngtest.c
  1.1107 +
  1.1108 +Version 1.2.0beta5 [August 8, 2001]
  1.1109 +  Revised contrib/gregbook
  1.1110 +  Revised makefile.gcmmx
  1.1111 +  Revised pnggccrd.c to conditionally compile some thread-unsafe code only
  1.1112 +     when PNG_THREAD_UNSAFE_OK is defined.
  1.1113 +  Added tests to prevent pngwutil.c from writing a bKGD or tRNS chunk with
  1.1114 +     value exceeding 2^bit_depth-1
  1.1115 +  Revised makefile.sgi and makefile.sggcc
  1.1116 +  Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c
  1.1117 +  Removed restriction that do_invert_mono only operate on 1-bit opaque files
  1.1118 +
  1.1119 +Version 1.2.0 [September 1, 2001]
  1.1120 +  Changed a png_warning() to png_debug() in pnggccrd.c
  1.1121 +  Fixed contrib/gregbook/rpng-x.c, rpng2-x.c to avoid crash with XFreeGC().
  1.1122 +
  1.1123 +Version 1.2.1beta1 [October 19, 2001]
  1.1124 +  Revised makefile.std in contrib/pngminus
  1.1125 +  Include background_1 in png_struct regardless of gamma support.
  1.1126 +  Revised makefile.netbsd and makefile.macosx, added makefile.darwin.
  1.1127 +  Revised example.c to provide more details about using row_callback().
  1.1128 +
  1.1129 +Version 1.2.1beta2 [October 25, 2001]
  1.1130 +  Added type cast to each NULL appearing in a function call, except for
  1.1131 +    WINCE functions.
  1.1132 +  Added makefile.so9.
  1.1133 +
  1.1134 +Version 1.2.1beta3 [October 27, 2001]
  1.1135 +  Removed type casts from all NULLs.
  1.1136 +  Simplified png_create_struct_2().
  1.1137 +
  1.1138 +Version 1.2.1beta4 [November 7, 2001]
  1.1139 +  Revised png_create_info_struct() and png_creat_struct_2().
  1.1140 +  Added error message if png_write_info() was omitted.
  1.1141 +  Type cast NULLs appearing in function calls when _NO_PROTO or
  1.1142 +    PNG_TYPECAST_NULL is defined.
  1.1143 +
  1.1144 +Version 1.2.1rc1 [November 24, 2001]
  1.1145 +  Type cast NULLs appearing in function calls except when PNG_NO_TYPECAST_NULL
  1.1146 +    is defined.
  1.1147 +  Changed typecast of "size" argument to png_size_t in pngmem.c calls to
  1.1148 +    the user malloc_fn, to agree with the prototype in png.h
  1.1149 +  Added a pop/push operation to pnggccrd.c, to preserve Eflag (Maxim Sobolev)
  1.1150 +  Updated makefile.sgi to recognize LIBPATH and INCPATH.
  1.1151 +  Updated various makefiles so "make clean" does not remove previous major
  1.1152 +    version of the shared library.
  1.1153 +
  1.1154 +Version 1.2.1rc2 [December 4, 2001]
  1.1155 +  Always allocate 256-entry internal palette, hist, and trans arrays, to
  1.1156 +    avoid out-of-bounds memory reference caused by invalid PNG datastreams.
  1.1157 +  Added a check for prefix_length > data_length in iCCP chunk handler.
  1.1158 +
  1.1159 +Version 1.2.1 [December 7, 2001]
  1.1160 +  None.
  1.1161 +
  1.1162 +Version 1.2.2beta1 [February 22, 2002]
  1.1163 +  Fixed a bug with reading the length of iCCP profiles (Larry Reeves).
  1.1164 +  Revised makefile.linux, makefile.gcmmx, and makefile.sgi to generate
  1.1165 +    libpng.a, libpng12.so (not libpng.so.3), and libpng12/png.h
  1.1166 +  Revised makefile.darwin to remove "-undefined suppress" option.
  1.1167 +  Added checks for gamma and chromaticity values over 21474.83, which exceed
  1.1168 +    the limit for PNG unsigned 32-bit integers when encoded.
  1.1169 +  Revised calls to png_create_read_struct() and png_create_write_struct()
  1.1170 +    for simpler debugging.
  1.1171 +  Revised png_zalloc() so zlib handles errors (uses PNG_FLAG_MALLOC_NULL_MEM_OK)
  1.1172 +
  1.1173 +Version 1.2.2beta2 [February 23, 2002]
  1.1174 +  Check chunk_length and idat_size for invalid (over PNG_MAX_UINT) lengths.
  1.1175 +  Check for invalid image dimensions in png_get_IHDR.
  1.1176 +  Added missing "fi;" in the install target of the SGI makefiles.
  1.1177 +  Added install-static to all makefiles that make shared libraries.
  1.1178 +  Always do gamma compensation when image is partially transparent.
  1.1179 +
  1.1180 +Version 1.2.2beta3 [March 7, 2002]
  1.1181 +  Compute background.gray and background_1.gray even when color_type is RGB
  1.1182 +    in case image gets reduced to gray later.
  1.1183 +  Modified shared-library makefiles to install pkgconfig/libpngNN.pc.
  1.1184 +  Export (with PNGAPI) png_zalloc, png_zfree, and png_handle_as_unknown
  1.1185 +  Removed unused png_write_destroy_info prototype from png.h
  1.1186 +  Eliminated incorrect use of width_mmx from pnggccrd.c in pixel_bytes == 8 case
  1.1187 +  Added install-shared target to all makefiles that make shared libraries.
  1.1188 +  Stopped a double free of palette, hist, and trans when not using free_me.
  1.1189 +  Added makefile.32sunu for Sun Ultra 32 and makefile.64sunu for Sun Ultra 64.
  1.1190 +
  1.1191 +Version 1.2.2beta4 [March 8, 2002]
  1.1192 +  Compute background.gray and background_1.gray even when color_type is RGB
  1.1193 +    in case image gets reduced to gray later (Jason Summers).
  1.1194 +  Relocated a misplaced /bin/rm in the "install-shared" makefile targets
  1.1195 +  Added PNG_1_0_X macro which can be used to build a 1.0.x-compatible library.
  1.1196 +
  1.1197 +Version 1.2.2beta5 [March 26, 2002]
  1.1198 +  Added missing PNGAPI to several function definitions.
  1.1199 +  Check for invalid bit_depth or color_type in png_get_IHDR(), and
  1.1200 +    check for missing PLTE or IHDR in png_push_read_chunk() (Matthias Clasen).
  1.1201 +  Revised iTXt support to accept NULL for lang and lang_key.
  1.1202 +  Compute gamma for color components of background even when color_type is gray.
  1.1203 +  Changed "()" to "{}" in scripts/libpng.pc.in.
  1.1204 +  Revised makefiles to put png.h and pngconf.h only in $prefix/include/libpngNN
  1.1205 +  Revised makefiles to make symlink to libpng.so.NN in addition to libpngNN.so
  1.1206 +
  1.1207 +Version 1.2.2beta6 [March 31, 2002]
  1.1208 +
  1.1209 +Version 1.0.13beta1 [March 31, 2002]
  1.1210 +  Prevent png_zalloc() from trying to memset memory that it failed to acquire.
  1.1211 +  Add typecasts of PNG_MAX_UINT in pngset_cHRM_fixed() (Matt Holgate).
  1.1212 +  Ensure that the right function (user or default) is used to free the
  1.1213 +    png_struct after an error in png_create_read_struct_2().
  1.1214 +
  1.1215 +Version 1.2.2rc1 [April 7, 2002]
  1.1216 +
  1.1217 +Version 1.0.13rc1 [April 7, 2002]
  1.1218 +  Save the ebx register in pnggccrd.c (Sami Farin)
  1.1219 +  Add "mem_ptr = png_ptr->mem_ptr" in png_destroy_write_struct() (Paul Gardner).
  1.1220 +  Updated makefiles to put headers in include/libpng and remove old include/*.h.
  1.1221 +
  1.1222 +Version 1.2.2 [April 15, 2002]
  1.1223 +
  1.1224 +Version 1.0.13 [April 15, 2002]
  1.1225 +  Revised description of png_set_filter() in libpng.3/libpng.txt.
  1.1226 +  Revised makefile.netbsd and added makefile.neNNbsd and makefile.freebsd
  1.1227 +
  1.1228 +Version 1.0.13patch01 [April 17, 2002]
  1.1229 +
  1.1230 +Version 1.2.2patch01 [April 17, 2002]
  1.1231 +  Changed ${PNGMAJ}.${PNGVER} bug to ${PNGVER} in makefile.sgi and
  1.1232 +    makefile.sggcc
  1.1233 +  Fixed VER -> PNGVER typo in makefile.macosx and added install-static to
  1.1234 +    install
  1.1235 +  Added install: target to makefile.32sunu and makefile.64sunu
  1.1236 +
  1.1237 +Version 1.0.13patch03 [April 18, 2002]
  1.1238 +
  1.1239 +Version 1.2.2patch03 [April 18, 2002]
  1.1240 +  Revised 15 makefiles to link libpng.a to libpngNN.a and the include libpng
  1.1241 +  subdirectory to libpngNN subdirectory without the full pathname.
  1.1242 +  Moved generation of libpng.pc from "install" to "all" in 15 makefiles.
  1.1243 +
  1.1244 +Version 1.2.3rc1 [April 28, 2002]
  1.1245 +  Added install-man target to 15 makefiles (Dimitri Papadopolous-Orfanos).
  1.1246 +  Added $(DESTDIR) feature to 24 makefiles (Tim Mooney)
  1.1247 +  Fixed bug with $prefix, should be $(prefix) in makefile.hpux.
  1.1248 +  Updated cygwin-specific portion of pngconf.h and revised makefile.cygwin
  1.1249 +  Added a link from libpngNN.pc to libpng.pc in 15 makefiles.
  1.1250 +  Added links from include/libpngNN/*.h to include/*.h in 24 makefiles.
  1.1251 +  Revised makefile.darwin to make relative links without full pathname.
  1.1252 +  Added setjmp() at the end of png_create_*_struct_2() in case user forgets
  1.1253 +    to put one in their application.
  1.1254 +  Restored png_zalloc() and png_zfree() prototypes to version 1.2.1 and
  1.1255 +    removed them from module definition files.
  1.1256 +
  1.1257 +Version 1.2.3rc2 [May 1, 2002]
  1.1258 +  Fixed bug in reporting number of channels in pngget.c and pngset.c,
  1.1259 +    that was introduced in version 1.2.2beta5.
  1.1260 +  Exported png_zalloc(), png_zfree(), png_default_read(), png_default_write(),
  1.1261 +    png_default_flush(), and png_push_fill_buffer() and included them in
  1.1262 +    module definition files.
  1.1263 +  Added "libpng.pc" dependency to the "install-shared" target in 15 makefiles.
  1.1264 +
  1.1265 +Version 1.2.3rc3 [May 1, 2002]
  1.1266 +  Revised prototype for png_default_flush()
  1.1267 +  Remove old libpng.pc and libpngNN.pc before installing new ones.
  1.1268 +
  1.1269 +Version 1.2.3rc4 [May 2, 2002]
  1.1270 +  Typos in *.def files (png_default_read|write -> png_default_read|write_data)
  1.1271 +  In makefiles, changed rm libpng.NN.pc to rm libpngNN.pc
  1.1272 +  Added libpng-config and libpngNN-config and modified makefiles to install
  1.1273 +    them.
  1.1274 +  Changed $(MANPATH) to $(DESTDIR)$(MANPATH) in makefiles
  1.1275 +  Added "Win32 DLL VB" configuration to projects/msvc/libpng.dsp
  1.1276 +
  1.1277 +Version 1.2.3rc5 [May 11, 2002]
  1.1278 +  Changed "error" and "message" in prototypes to "error_message" and
  1.1279 +    "warning_message" to avoid namespace conflict.
  1.1280 +  Revised 15 makefiles to build libpng-config from libpng-config-*.in
  1.1281 +  Once more restored png_zalloc and png_zfree to regular nonexported form.
  1.1282 +  Restored png_default_read|write_data, png_default_flush, png_read_fill_buffer
  1.1283 +    to nonexported form, but with PNGAPI, and removed them from module def
  1.1284 +    files.
  1.1285 +
  1.1286 +Version 1.2.3rc6 [May 14, 2002]
  1.1287 +  Removed "PNGAPI" from png_zalloc() and png_zfree() in png.c
  1.1288 +  Changed "Gz" to "Gd" in projects/msvc/libpng.dsp and zlib.dsp.
  1.1289 +  Removed leftover libpng-config "sed" script from four makefiles.
  1.1290 +  Revised libpng-config creating script in 16 makefiles.
  1.1291 +
  1.1292 +Version 1.2.3 [May 22, 2002]
  1.1293 +  Revised libpng-config target in makefile.cygwin.
  1.1294 +  Removed description of png_set_mem_fn() from documentation.
  1.1295 +  Revised makefile.freebsd.
  1.1296 +  Minor cosmetic changes to 15 makefiles, e.g., $(DI) = $(DESTDIR)/$(INCDIR).
  1.1297 +  Revised projects/msvc/README.txt
  1.1298 +  Changed -lpng to -lpngNN in LDFLAGS in several makefiles.
  1.1299 +
  1.1300 +Version 1.2.4beta1 [May 24, 2002]
  1.1301 +  Added libpng.pc and libpng-config to "all:" target in 16 makefiles.
  1.1302 +  Fixed bug in 16 makefiles: $(DESTDIR)/$(LIBPATH) to $(DESTDIR)$(LIBPATH)
  1.1303 +  Added missing "\" before closing double quote in makefile.gcmmx.
  1.1304 +  Plugged various memory leaks; added png_malloc_warn() and png_set_text_2()
  1.1305 +    functions.
  1.1306 +
  1.1307 +Version 1.2.4beta2 [June 25, 2002]
  1.1308 +  Plugged memory leak of png_ptr->current_text (Matt Holgate).
  1.1309 +  Check for buffer overflow before reading CRC in pngpread.c (Warwick Allison)
  1.1310 +  Added -soname to the loader flags in makefile.dec, makefile.sgi, and
  1.1311 +    makefile.sggcc.
  1.1312 +  Added "test-installed" target to makefile.linux, makefile.gcmmx,
  1.1313 +    makefile.sgi, and makefile.sggcc.
  1.1314 +
  1.1315 +Version 1.2.4beta3 [June 28, 2002]
  1.1316 +  Plugged memory leak of row_buf in pngtest.c when there is a png_error().
  1.1317 +  Detect buffer overflow in pngpread.c when IDAT is corrupted with extra data.
  1.1318 +  Added "test-installed" target to makefile.32sunu, makefile.64sunu,
  1.1319 +    makefile.beos, makefile.darwin, makefile.dec, makefile.macosx,
  1.1320 +    makefile.solaris, makefile.hpux, makefile.hpgcc, and makefile.so9.
  1.1321 +
  1.1322 +Version 1.2.4rc1 and 1.0.14rc1 [July 2, 2002]
  1.1323 +  Added "test-installed" target to makefile.cygwin and makefile.sco.
  1.1324 +  Revised pnggccrd.c to be able to back out version 1.0.x via PNG_1_0_X macro.
  1.1325 +
  1.1326 +Version 1.2.4 and 1.0.14 [July 8, 2002]
  1.1327 +  Changed png_warning() to png_error() when width is too large to process.
  1.1328 +
  1.1329 +Version 1.2.4patch01 [July 20, 2002]
  1.1330 +  Revised makefile.cygwin to use DLL number 12 instead of 13.
  1.1331 +
  1.1332 +Version 1.2.5beta1 [August 6, 2002]
  1.1333 +  Added code to contrib/gregbook/readpng2.c to ignore unused chunks.
  1.1334 +  Replaced toucan.png in contrib/gregbook (it has been corrupt since 1.0.11)
  1.1335 +  Removed some stray *.o files from contrib/gregbook.
  1.1336 +  Changed png_error() to png_warning() about "Too much data" in pngpread.c
  1.1337 +    and about "Extra compressed data" in pngrutil.c.
  1.1338 +  Prevent png_ptr->pass from exceeding 7 in png_push_finish_row().
  1.1339 +  Updated makefile.hpgcc
  1.1340 +  Updated png.c and pnggccrd.c handling of return from png_mmx_support()
  1.1341 +
  1.1342 +Version 1.2.5beta2 [August 15, 2002]
  1.1343 +  Only issue png_warning() about "Too much data" in pngpread.c when avail_in
  1.1344 +    is nonzero.
  1.1345 +  Updated makefiles to install a separate libpng.so.3 with its own rpath.
  1.1346 +
  1.1347 +Version 1.2.5rc1 and 1.0.15rc1 [August 24, 2002]
  1.1348 +  Revised makefiles to not remove previous minor versions of shared libraries.
  1.1349 +
  1.1350 +Version 1.2.5rc2 and 1.0.15rc2 [September 16, 2002]
  1.1351 +  Revised 13 makefiles to remove "-lz" and "-L$(ZLIBLIB)", etc., from shared
  1.1352 +    library loader directive.
  1.1353 +  Added missing "$OBJSDLL" line to makefile.gcmmx.
  1.1354 +  Added missing "; fi" to makefile.32sunu.
  1.1355 +
  1.1356 +Version 1.2.5rc3 and 1.0.15rc3 [September 18, 2002]
  1.1357 +  Revised libpng-config script.
  1.1358 +
  1.1359 +Version 1.2.5 and 1.0.15 [October 3, 2002]
  1.1360 +  Revised makefile.macosx, makefile.darwin, makefile.hpgcc, and makefile.hpux,
  1.1361 +    and makefile.aix.
  1.1362 +  Relocated two misplaced PNGAPI lines in pngtest.c
  1.1363 +
  1.1364 +Version 1.2.6beta1 [October 22, 2002]
  1.1365 +  Commented out warning about uninitialized mmx_support in pnggccrd.c.
  1.1366 +  Changed "IBMCPP__" flag to "__IBMCPP__" in pngconf.h.
  1.1367 +  Relocated two more misplaced PNGAPI lines in pngtest.c
  1.1368 +  Fixed memory overrun bug in png_do_read_filler() with 16-bit datastreams,
  1.1369 +    introduced in version 1.0.2.
  1.1370 +  Revised makefile.macosx, makefile.dec, makefile.aix, and makefile.32sunu.
  1.1371 +
  1.1372 +Version 1.2.6beta2 [November 1, 2002]
  1.1373 +  Added libpng-config "--ldopts" output.
  1.1374 +  Added "AR=ar" and "ARFLAGS=rc" and changed "ar rc" to "$(AR) $(ARFLAGS)"
  1.1375 +    in makefiles.
  1.1376 +
  1.1377 +Version 1.2.6beta3 [July 18, 2004]
  1.1378 +  Reverted makefile changes from version 1.2.6beta2 and some of the changes
  1.1379 +    from version 1.2.6beta1; these will be postponed until version 1.2.7.
  1.1380 +    Version 1.2.6 is going to be a simple bugfix release.
  1.1381 +  Changed the one instance of "ln -sf" to "ln -f -s" in each Sun makefile.
  1.1382 +  Fixed potential overrun in pngerror.c by using strncpy instead of memcpy.
  1.1383 +  Added "#!/bin/sh" at the top of configure, for recognition of the
  1.1384 +    'x' flag under Cygwin (Cosmin).
  1.1385 +  Optimized vacuous tests that silence compiler warnings, in png.c (Cosmin).
  1.1386 +  Added support for PNG_USER_CONFIG, in pngconf.h (Cosmin).
  1.1387 +  Fixed the special memory handler for Borland C under DOS, in pngmem.c
  1.1388 +    (Cosmin).
  1.1389 +  Removed some spurious assignments in pngrutil.c (Cosmin).
  1.1390 +  Replaced 65536 with 65536L, and 0xffff with 0xffffL, to silence warnings
  1.1391 +    on 16-bit platforms (Cosmin).
  1.1392 +  Enclosed shift op expressions in parentheses, to silence warnings (Cosmin).
  1.1393 +  Used proper type png_fixed_point, to avoid problems on 16-bit platforms,
  1.1394 +    in png_handle_sRGB() (Cosmin).
  1.1395 +  Added compression_type to png_struct, and optimized the window size
  1.1396 +    inside the deflate stream (Cosmin).
  1.1397 +  Fixed definition of isnonalpha(), in pngerror.c and pngrutil.c (Cosmin).
  1.1398 +  Fixed handling of unknown chunks that come after IDAT (Cosmin).
  1.1399 +  Allowed png_error() and png_warning() to work even if png_ptr == NULL
  1.1400 +    (Cosmin).
  1.1401 +  Replaced row_info->rowbytes with row_bytes in png_write_find_filter()
  1.1402 +    (Cosmin).
  1.1403 +  Fixed definition of PNG_LIBPNG_VER_DLLNUM (Simon-Pierre).
  1.1404 +  Used PNG_LIBPNG_VER and PNG_LIBPNG_VER_STRING instead of the hardcoded
  1.1405 +    values in png.c (Simon-Pierre, Cosmin).
  1.1406 +  Initialized png_libpng_ver[] with PNG_LIBPNG_VER_STRING (Simon-Pierre).
  1.1407 +  Replaced PNG_LIBPNG_VER_MAJOR with PNG_LIBPNG_VER_DLLNUM in png.rc
  1.1408 +    (Simon-Pierre).
  1.1409 +  Moved the definition of PNG_HEADER_VERSION_STRING near the definitions
  1.1410 +    of the other PNG_LIBPNG_VER_... symbols in png.h (Cosmin).
  1.1411 +  Relocated #ifndef PNGAPI guards in pngconf.h (Simon-Pierre, Cosmin).
  1.1412 +  Updated scripts/makefile.vc(a)win32 (Cosmin).
  1.1413 +  Updated the MSVC project (Simon-Pierre, Cosmin).
  1.1414 +  Updated the Borland C++ Builder project (Cosmin).
  1.1415 +  Avoided access to asm_flags in pngvcrd.c, if PNG_1_0_X is defined (Cosmin).
  1.1416 +  Commented out warning about uninitialized mmx_support in pngvcrd.c (Cosmin).
  1.1417 +  Removed scripts/makefile.bd32 and scripts/pngdef.pas (Cosmin).
  1.1418 +  Added extra guard around inclusion of Turbo C memory headers, in pngconf.h
  1.1419 +    (Cosmin).
  1.1420 +  Renamed projects/msvc/ to projects/visualc6/, and projects/borland/ to
  1.1421 +    projects/cbuilder5/ (Cosmin).
  1.1422 +  Moved projects/visualc6/png32ms.def to scripts/pngw32.def,
  1.1423 +    and projects/visualc6/png.rc to scripts/pngw32.rc (Cosmin).
  1.1424 +  Added projects/visualc6/pngtest.dsp; removed contrib/msvctest/ (Cosmin).
  1.1425 +  Changed line endings to DOS style in cbuilder5 and visualc6 files, even
  1.1426 +    in the tar.* distributions (Cosmin).
  1.1427 +  Updated contrib/visupng/VisualPng.dsp (Cosmin).
  1.1428 +  Updated contrib/visupng/cexcept.h to version 2.0.0 (Cosmin).
  1.1429 +  Added a separate distribution with "configure" and supporting files (Junichi).
  1.1430 +
  1.1431 +Version 1.2.6beta4 [July 28, 2004]
  1.1432 +  Added user ability to change png_size_t via a PNG_SIZE_T macro.
  1.1433 +  Added png_sizeof() and png_convert_size() functions.
  1.1434 +  Added PNG_SIZE_MAX (maximum value of a png_size_t variable.
  1.1435 +  Added check in png_malloc_default() for (size_t)size != (png_uint_32)size
  1.1436 +    which would indicate an overflow.
  1.1437 +  Changed sPLT failure action from png_error to png_warning and abandon chunk.
  1.1438 +  Changed sCAL and iCCP failures from png_error to png_warning and abandon.
  1.1439 +  Added png_get_uint_31(png_ptr, buf) function.
  1.1440 +  Added PNG_UINT_32_MAX macro.
  1.1441 +  Renamed PNG_MAX_UINT to PNG_UINT_31_MAX.
  1.1442 +  Made png_zalloc() issue a png_warning and return NULL on potential
  1.1443 +    overflow.
  1.1444 +  Turn on PNG_NO_ZALLOC_ZERO by default in version 1.2.x
  1.1445 +  Revised "clobber list" in pnggccrd.c so it will compile under gcc-3.4.
  1.1446 +  Revised Borland portion of png_malloc() to return NULL or issue
  1.1447 +    png_error() according to setting of PNG_FLAG_MALLOC_NULL_MEM_OK.
  1.1448 +  Added PNG_NO_SEQUENTIAL_READ_SUPPORTED macro to conditionally remove
  1.1449 +    sequential read support.
  1.1450 +  Added some "#if PNG_WRITE_SUPPORTED" blocks.
  1.1451 +  Added #ifdef to remove some redundancy in png_malloc_default().
  1.1452 +  Use png_malloc instead of png_zalloc to allocate the pallete.
  1.1453 +
  1.1454 +Version 1.0.16rc1 and 1.2.6rc1 [August 4, 2004]
  1.1455 +  Fixed buffer overflow vulnerability in png_handle_tRNS()
  1.1456 +  Fixed integer arithmetic overflow vulnerability in png_read_png().
  1.1457 +  Fixed some harmless bugs in png_handle_sBIT, etc, that would cause
  1.1458 +    duplicate chunk types to go undetected.
  1.1459 +  Fixed some timestamps in the -config version
  1.1460 +  Rearranged order of processing of color types in png_handle_tRNS().
  1.1461 +  Added ROWBYTES macro to calculate rowbytes without integer overflow.
  1.1462 +  Updated makefile.darwin and removed makefile.macosx from scripts directory.
  1.1463 +  Imposed default one million column, one-million row limits on the image
  1.1464 +    dimensions, and added png_set_user_limits() function to override them.
  1.1465 +  Revised use of PNG_SET_USER_LIMITS_SUPPORTED macro.
  1.1466 +  Fixed wrong cast of returns from png_get_user_width|height_max().
  1.1467 +  Changed some "keep the compiler happy" from empty statements to returns,
  1.1468 +  Revised libpng.txt to remove 1.2.x stuff from the 1.0.x distribution
  1.1469 +
  1.1470 +Version 1.0.16rc2 and 1.2.6rc2 [August 7, 2004]
  1.1471 +  Revised makefile.darwin and makefile.solaris.  Removed makefile.macosx.
  1.1472 +  Revised pngtest's png_debug_malloc() to use png_malloc() instead of
  1.1473 +    png_malloc_default() which is not supposed to be exported.
  1.1474 +  Fixed off-by-one error in one of the conversions to PNG_ROWBYTES() in
  1.1475 +    pngpread.c.  Bug was introduced in 1.2.6rc1.
  1.1476 +  Fixed bug in RGB to RGBX transformation introduced in 1.2.6rc1.
  1.1477 +  Fixed old bug in RGB to Gray transformation.
  1.1478 +  Fixed problem with 64-bit compilers by casting arguments to abs()
  1.1479 +    to png_int_32.
  1.1480 +  Changed "ln -sf" to "ln -f -s" in three makefiles (solaris, sco, so9).
  1.1481 +  Changed "HANDLE_CHUNK_*" to "PNG_HANDLE_CHUNK_*" (Cosmin)
  1.1482 +  Added "-@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGMAJ)" to 15 *NIX makefiles.
  1.1483 +  Added code to update the row_info->colortype in png_do_read_filler() (MSB).
  1.1484 +
  1.1485 +Version 1.0.16rc3 and 1.2.6rc3 [August 9, 2004]
  1.1486 +  Eliminated use of "abs()" in testing cHRM and gAMA values, to avoid
  1.1487 +    trouble with some 64-bit compilers.  Created PNG_OUT_OF_RANGE() macro.
  1.1488 +  Revised documentation of png_set_keep_unknown_chunks().
  1.1489 +  Check handle_as_unknown status in pngpread.c, as in pngread.c previously.
  1.1490 +  Moved  "PNG_HANDLE_CHUNK_*" macros out of PNG_INTERNAL section of png.h
  1.1491 +  Added "rim" definitions for CONST4 and CONST6 in pnggccrd.c
  1.1492 +
  1.1493 +Version 1.0.16rc4 and 1.2.6rc4 [August 10, 2004]
  1.1494 +  Fixed mistake in pngtest.c introduced in 1.2.6rc2 (declaration of
  1.1495 +    "pinfo" was out of place).
  1.1496 +
  1.1497 +Version 1.0.16rc5 and 1.2.6rc5 [August 10, 2004]
  1.1498 +  Moved  "PNG_HANDLE_CHUNK_*" macros out of PNG_ASSEMBLER_CODE_SUPPORTED
  1.1499 +     section of png.h where they were inadvertently placed in version rc3.
  1.1500 +
  1.1501 +Version 1.2.6 and 1.0.16 [August 15, 2004]
  1.1502 +  Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1.
  1.1503 +
  1.1504 +Version 1.2.7beta1 [August 26, 2004]
  1.1505 +  Removed unused pngasmrd.h file.
  1.1506 +  Removed references to uu.net for archived files.  Added references to
  1.1507 +    PNG Spec (second edition) and the PNG ISO/IEC Standard.
  1.1508 +  Added "test-dd" target in 15 makefiles, to run pngtest in DESTDIR.
  1.1509 +  Fixed bug with "optimized window size" in the IDAT datastream, that
  1.1510 +    causes libpng to write PNG files with incorrect zlib header bytes.
  1.1511 +
  1.1512 +Version 1.2.7beta2 [August 28, 2004]
  1.1513 +  Fixed bug with sCAL chunk and big-endian machines (David Munro).
  1.1514 +  Undid new code added in 1.2.6rc2 to update the color_type in
  1.1515 +    png_set_filler().
  1.1516 +  Added png_set_add_alpha() that updates color type.
  1.1517 +
  1.1518 +Version 1.0.17rc1 and 1.2.7rc1 [September 4, 2004]
  1.1519 +  Revised png_set_strip_filler() to not remove alpha if color_type has alpha.
  1.1520 +
  1.1521 +Version 1.2.7 and 1.0.17 [September 12, 2004]
  1.1522 +  Added makefile.hp64
  1.1523 +  Changed projects/msvc/png32ms.def to scripts/png32ms.def in makefile.cygwin
  1.1524 +
  1.1525 +Version 1.2.8beta1 [November 1, 2004]
  1.1526 +  Fixed bug in png_text_compress() that would fail to complete a large block.
  1.1527 +  Fixed bug, introduced in libpng-1.2.7, that overruns a buffer during
  1.1528 +    strip alpha operation in png_do_strip_filler().
  1.1529 +  Added PNG_1_2_X definition in pngconf.h
  1.1530 +  Use #ifdef to comment out png_info_init in png.c and png_read_init in
  1.1531 +    pngread.c (as of 1.3.0)
  1.1532 +
  1.1533 +Version 1.2.8beta2 [November 2, 2004]
  1.1534 +  Reduce color_type to a nonalpha type after strip alpha operation in
  1.1535 +    png_do_strip_filler().
  1.1536 +
  1.1537 +Version 1.2.8beta3 [November 3, 2004]
  1.1538 +  Revised definitions of PNG_MAX_UINT_32, PNG_MAX_SIZE, and PNG_MAXSUM
  1.1539 +
  1.1540 +Version 1.2.8beta4 [November 12, 2004]
  1.1541 +  Fixed (again) definition of PNG_LIBPNG_VER_DLLNUM in png.h (Cosmin).
  1.1542 +  Added PNG_LIBPNG_BUILD_PRIVATE in png.h (Cosmin).
  1.1543 +  Set png_ptr->zstream.data_type to Z_BINARY, to avoid unnecessary detection
  1.1544 +    of data type in deflate (Cosmin).
  1.1545 +  Deprecated but continue to support SPECIALBUILD and PRIVATEBUILD in favor of
  1.1546 +    PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
  1.1547 +
  1.1548 +Version 1.2.8beta5 [November 20, 2004]
  1.1549 +  Use png_ptr->flags instead of png_ptr->transformations to pass
  1.1550 +    PNG_STRIP_ALPHA info to png_do_strip_filler(), to preserve ABI
  1.1551 +    compatibility.
  1.1552 +  Revised handling of SPECIALBUILD, PRIVATEBUILD,
  1.1553 +    PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
  1.1554 +
  1.1555 +Version 1.2.8rc1 [November 24, 2004]
  1.1556 +  Moved handling of BUILD macros from pngconf.h to png.h
  1.1557 +  Added definition of PNG_LIBPNG_BASE_TYPE in png.h, inadvertently
  1.1558 +    omitted from beta5.
  1.1559 +  Revised scripts/pngw32.rc
  1.1560 +  Despammed mailing addresses by masking "@" with "at".
  1.1561 +  Inadvertently installed a supposedly faster test version of pngrutil.c
  1.1562 +
  1.1563 +Version 1.2.8rc2 [November 26, 2004]
  1.1564 +  Added two missing "\" in png.h
  1.1565 +  Change tests in pngread.c and pngpread.c to
  1.1566 +    if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
  1.1567 +       png_do_read_transformations(png_ptr);
  1.1568 +
  1.1569 +Version 1.2.8rc3 [November 28, 2004]
  1.1570 +  Reverted pngrutil.c to version libpng-1.2.8beta5.
  1.1571 +  Added scripts/makefile.elf with supporting code in pngconf.h for symbol
  1.1572 +    versioning (John Bowler).
  1.1573 +
  1.1574 +Version 1.2.8rc4 [November 29, 2004]
  1.1575 +  Added projects/visualc7 (Simon-pierre).
  1.1576 +
  1.1577 +Version 1.2.8rc5 [November 29, 2004]
  1.1578 +  Fixed new typo in scripts/pngw32.rc
  1.1579 +
  1.1580 +Version 1.2.8 [December 3, 2004]
  1.1581 +  Removed projects/visualc7, added projects/visualc71.
  1.1582 +
  1.1583 +Version 1.2.9beta1 [February 21, 2006]
  1.1584 +  Initialized some structure members in pngwutil.c to avoid gcc-4.0.0 complaints
  1.1585 +  Revised man page and libpng.txt to make it clear that one should not call
  1.1586 +    png_read_end or png_write_end after png_read_png or png_write_png.
  1.1587 +  Updated references to png-mng-implement mailing list.
  1.1588 +  Fixed an incorrect typecast in pngrutil.c
  1.1589 +  Added PNG_NO_READ_SUPPORTED conditional for making a write-only library.
  1.1590 +  Added PNG_NO_WRITE_INTERLACING_SUPPORTED conditional.
  1.1591 +  Optimized alpha-inversion loops in pngwtran.c
  1.1592 +  Moved test for nonzero gamma outside of png_build_gamma_table() in pngrtran.c
  1.1593 +  Make sure num_trans is <= 256 before copying data in png_set_tRNS().
  1.1594 +  Make sure num_palette is <= 256 before copying data in png_set_PLTE().
  1.1595 +  Interchanged order of write_swap_alpha and write_invert_alpha transforms.
  1.1596 +  Added parentheses in the definition of PNG_LIBPNG_BUILD_TYPE (Cosmin).
  1.1597 +  Optimized zlib window flag (CINFO) in contrib/pngsuite/*.png (Cosmin).
  1.1598 +  Updated scripts/makefile.bc32 for Borland C++ 5.6 (Cosmin).
  1.1599 +  Exported png_get_uint_32, png_save_uint_32, png_get_uint_16, png_save_uint_16,
  1.1600 +    png_get_int_32, png_save_int_32, png_get_uint_31 (Cosmin).
  1.1601 +  Added type cast (png_byte) in png_write_sCAL() (Cosmin).
  1.1602 +  Fixed scripts/makefile.cygwin (Christian Biesinger, Cosmin).
  1.1603 +  Default iTXt support was inadvertently enabled.
  1.1604 +
  1.1605 +Version 1.2.9beta2 [February 21, 2006]
  1.1606 +  Check for png_rgb_to_gray and png_gray_to_rgb read transformations before
  1.1607 +    checking for png_read_dither in pngrtran.c
  1.1608 +  Revised checking of chromaticity limits to accommodate extended RGB
  1.1609 +    colorspace (John Denker).
  1.1610 +  Changed line endings in some of the project files to CRLF, even in the
  1.1611 +    "Unix" tar distributions (Cosmin).
  1.1612 +  Made png_get_int_32 and png_save_int_32 always available (Cosmin).
  1.1613 +  Updated scripts/pngos2.def, scripts/pngw32.def and projects/wince/png32ce.def
  1.1614 +    with the newly exported functions.
  1.1615 +  Eliminated distributions without the "configure" script.
  1.1616 +  Updated INSTALL instructions.
  1.1617 +
  1.1618 +Version 1.2.9beta3 [February 24, 2006]
  1.1619 +  Fixed CRCRLF line endings in contrib/visupng/VisualPng.dsp
  1.1620 +  Made libpng.pc respect EXEC_PREFIX (D. P. Kreil, J. Bowler)
  1.1621 +  Removed reference to pngasmrd.h from Makefile.am
  1.1622 +  Renamed CHANGES to ChangeLog.
  1.1623 +  Renamed LICENSE to COPYING.
  1.1624 +  Renamed ANNOUNCE to NEWS.
  1.1625 +  Created AUTHORS file.
  1.1626 +
  1.1627 +Version 1.2.9beta4 [March 3, 2006]
  1.1628 +  Changed definition of PKGCONFIG from $prefix/lib to $libdir in configure.ac
  1.1629 +  Reverted to filenames LICENSE and ANNOUNCE; removed AUTHORS and COPYING.
  1.1630 +  Removed newline from the end of some error and warning messages.
  1.1631 +  Removed test for sqrt() from configure.ac and configure.
  1.1632 +  Made swap tables in pngtrans.c PNG_CONST (Carlo Bramix).
  1.1633 +  Disabled default iTXt support that was inadvertently enabled in
  1.1634 +    libpng-1.2.9beta1.
  1.1635 +  Added "OS2" to list of systems that don't need underscores, in pnggccrd.c
  1.1636 +  Removed libpng version and date from *.c files.
  1.1637 +
  1.1638 +Version 1.2.9beta5 [March 4, 2006]
  1.1639 +  Removed trailing blanks from source files.
  1.1640 +  Put version and date of latest change in each source file, and changed
  1.1641 +    copyright year accordingly.
  1.1642 +  More cleanup of configure.ac, Makefile.am, and associated scripts.
  1.1643 +  Restored scripts/makefile.elf which was inadvertently deleted.
  1.1644 +
  1.1645 +Version 1.2.9beta6 [March 6, 2006]
  1.1646 +  Fixed typo (RELEASE) in configuration files.
  1.1647 +
  1.1648 +Version 1.2.9beta7 [March 7, 2006]
  1.1649 +  Removed libpng.vers and libpng.sym from libpng12_la_SOURCES in Makefile.am
  1.1650 +  Fixed inconsistent #ifdef's around png_sig_bytes() and png_set_sCAL_s()
  1.1651 +    in png.h.
  1.1652 +  Updated makefile.elf as suggested by debian.
  1.1653 +  Made cosmetic changes to some makefiles, adding LN_SF and other macros.
  1.1654 +  Made some makefiles accept "exec_prefix".
  1.1655 +
  1.1656 +Version 1.2.9beta8 [March 9, 2006]
  1.1657 +  Fixed some "#if defined (..." which should be "#if defined(..."
  1.1658 +    Bug introduced in libpng-1.2.8.
  1.1659 +  Fixed inconsistency in definition of png_default_read_data()
  1.1660 +  Restored blank that was lost from makefile.sggcc "clean" target in beta7.
  1.1661 +  Revised calculation of "current" and "major" for irix in ltmain.sh
  1.1662 +  Changed "mkdir" to "MKDIR_P" in some makefiles.
  1.1663 +  Separated PNG_EXPAND and PNG_EXPAND_tRNS.
  1.1664 +  Added png_set_expand_gray_1_2_4_to_8() and deprecated
  1.1665 +    png_set_gray_1_2_4_to_8() which also expands tRNS to alpha.
  1.1666 +
  1.1667 +Version 1.2.9beta9 [March 10, 2006]
  1.1668 +  Include "config.h" in pngconf.h when available.
  1.1669 +  Added some checks for NULL png_ptr or NULL info_ptr (timeless)
  1.1670 +
  1.1671 +Version 1.2.9beta10 [March 20, 2006]
  1.1672 +  Removed extra CR from contrib/visualpng/VisualPng.dsw (Cosmin)
  1.1673 +  Made pnggccrd.c PIC-compliant (Christian Aichinger).
  1.1674 +  Added makefile.mingw (Wolfgang Glas).
  1.1675 +  Revised pngconf.h MMX checking.
  1.1676 +
  1.1677 +Version 1.2.9beta11 [March 22, 2006]
  1.1678 +  Fixed out-of-order declaration in pngwrite.c that was introduced in beta9
  1.1679 +  Simplified some makefiles by using LIBSO, LIBSOMAJ, and LIBSOVER macros.
  1.1680 +
  1.1681 +Version 1.2.9rc1 [March 31, 2006]
  1.1682 +  Defined PNG_USER_PRIVATEBUILD when including "pngusr.h" (Cosmin).
  1.1683 +  Removed nonsensical assertion check from pngtest.c (Cosmin).
  1.1684 +
  1.1685 +Version 1.2.9 [April 14, 2006]
  1.1686 +  Revised makefile.beos and added "none" selector in ltmain.sh
  1.1687 +
  1.1688 +Version 1.2.10beta1 [April 15, 2006]
  1.1689 +  Renamed "config.h" to "png_conf.h" and revised Makefile.am to add
  1.1690 +    -DPNG_BUILDING_LIBPNG to compile directive, and modified pngconf.h
  1.1691 +    to include png_conf.h only when PNG_BUILDING_LIBPNG is defined.
  1.1692 +
  1.1693 +Version 1.2.10beta2 [April 15, 2006]
  1.1694 +  Manually updated Makefile.in and configure.  Changed png_conf.h.in
  1.1695 +    back to config.h.
  1.1696 +
  1.1697 +Version 1.2.10beta3 [April 15, 2006]
  1.1698 +  Change png_conf.h back to config.h in pngconf.h.
  1.1699 +
  1.1700 +Version 1.2.10beta4 [April 16, 2006]
  1.1701 +  Change PNG_BUILDING_LIBPNG to PNG_CONFIGURE_LIBPNG in config/Makefile*.
  1.1702 +
  1.1703 +Version 1.2.10beta5 [April 16, 2006]
  1.1704 +  Added a configure check for compiling assembler code in pnggccrd.c
  1.1705 +
  1.1706 +Version 1.2.10beta6 [April 17, 2006]
  1.1707 +  Revised the configure check for pnggccrd.c
  1.1708 +  Moved -DPNG_CONFIGURE_LIBPNG into @LIBPNG_DEFINES@
  1.1709 +  Added @LIBPNG_DEFINES@ to arguments when building libpng.sym
  1.1710 +
  1.1711 +Version 1.2.10beta7 [April 18, 2006]
  1.1712 +  Change "exec_prefix=$prefix" to "exec_prefix=$(prefix)" in makefiles.
  1.1713 +
  1.1714 +Version 1.2.10rc1 [April 19, 2006]
  1.1715 +  Ensure pngconf.h doesn't define both PNG_USE_PNGGCCRD and PNG_USE_PNGVCRD
  1.1716 +  Fixed "LN_FS" typo in makefile.sco and makefile.solaris.
  1.1717 +
  1.1718 +Version 1.2.10rc2 [April 20, 2006]
  1.1719 +  Added a backslash between -DPNG_CONFIGURE_LIBPNG and -DPNG_NO_ASSEMBLER_CODE
  1.1720 +   in configure.ac and configure
  1.1721 +  Made the configure warning about versioned symbols less arrogant.
  1.1722 +
  1.1723 +Version 1.2.10rc3 [April 21, 2006]
  1.1724 +  Added a note in libpng.txt that png_set_sig_bytes(8) can be used when
  1.1725 +    writing an embedded PNG without the 8-byte signature.
  1.1726 +  Revised makefiles and configure to avoid making links to libpng.so.*
  1.1727 +
  1.1728 +Version 1.2.10 [April 23, 2006]
  1.1729 +  Reverted configure to "rc2" state.
  1.1730 +
  1.1731 +Version 1.2.11beta1 [May 31, 2006]
  1.1732 +  scripts/libpng.pc.in contained "configure" style version info and would
  1.1733 +    not work with makefiles.
  1.1734 +  The shared-library makefiles were linking to libpng.so.0 instead of
  1.1735 +    libpng.so.3 compatibility as the library.
  1.1736 +
  1.1737 +Version 1.2.11beta2 [June 2, 2006]
  1.1738 +  Increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid
  1.1739 +    buffer overflow.
  1.1740 +  Fixed bug in example.c (png_set_palette_rgb -> png_set_palette_to_rgb)
  1.1741 +
  1.1742 +Version 1.2.11beta3 [June 5, 2006]
  1.1743 +  Prepended "#! /bin/sh" to ltmail.sh and contrib/pngminus/*.sh (Cosmin).
  1.1744 +  Removed the accidental leftover Makefile.in~ (Cosmin).
  1.1745 +  Avoided potential buffer overflow and optimized buffer in
  1.1746 +    png_write_sCAL(), png_write_sCAL_s() (Cosmin).
  1.1747 +  Removed the include directories and libraries from CFLAGS and LDFLAGS
  1.1748 +    in scripts/makefile.gcc (Nelson A. de Oliveira, Cosmin).
  1.1749 +
  1.1750 +Version 1.2.11beta4 [June 6, 2006]
  1.1751 +  Allow zero-length IDAT chunks after the entire zlib datastream, but not
  1.1752 +    after another intervening chunk type.
  1.1753 +
  1.1754 +Version 1.0.19rc1, 1.2.11rc1 [June 13, 2006]
  1.1755 +  Deleted extraneous square brackets from [config.h] in configure.ac
  1.1756 +
  1.1757 +Version 1.0.19rc2, 1.2.11rc2 [June 14, 2006]
  1.1758 +  Added prototypes for PNG_INCH_CONVERSIONS functions to png.h
  1.1759 +  Revised INSTALL and autogen.sh
  1.1760 +  Fixed typo in several makefiles (-W1 should be -Wl)
  1.1761 +  Added typedef for png_int_32 and png_uint_32 on 64-bit systems.
  1.1762 +
  1.1763 +Version 1.0.19rc3, 1.2.11rc3 [June 15, 2006]
  1.1764 +  Removed the new typedefs for 64-bit systems (delay until version 1.4.0)
  1.1765 +  Added one zero element to png_gamma_shift[] array in pngrtran.c to avoid
  1.1766 +    reading out of bounds.
  1.1767 +
  1.1768 +Version 1.0.19rc4, 1.2.11rc4 [June 15, 2006]
  1.1769 +  Really removed the new typedefs for 64-bit systems.
  1.1770 +
  1.1771 +Version 1.0.19rc5, 1.2.11rc5 [June 22, 2006]
  1.1772 +  Removed png_sig_bytes entry from scripts/pngw32.def
  1.1773 +
  1.1774 +Version 1.0.19, 1.2.11 [June 26, 2006]
  1.1775 +  None.
  1.1776 +
  1.1777 +Version 1.0.20, 1.2.12 [June 27, 2006]
  1.1778 +  Really increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid
  1.1779 +    buffer overflow.
  1.1780 +
  1.1781 +Version 1.2.13beta1 [October 2, 2006]
  1.1782 +  Removed AC_FUNC_MALLOC from configure.ac
  1.1783 +  Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h
  1.1784 +  Change "logical" to "bitwise" throughout documentation.
  1.1785 +  Detect and fix attempt to write wrong iCCP profile length (CVE-2006-7244)
  1.1786 +
  1.1787 +Version 1.0.21, 1.2.13 [November 14, 2006]
  1.1788 +  Fix potential buffer overflow in sPLT chunk handler.
  1.1789 +  Fix Makefile.am to not try to link to noexistent files.
  1.1790 +  Check all exported functions for NULL png_ptr.
  1.1791 +
  1.1792 +Version 1.2.14beta1 [November 17, 2006]
  1.1793 +  Relocated three misplaced tests for NULL png_ptr.
  1.1794 +  Built Makefile.in with automake-1.9.6 instead of 1.9.2.
  1.1795 +  Build configure with autoconf-2.60 instead of 2.59
  1.1796 +
  1.1797 +Version 1.2.14beta2 [November 17, 2006]
  1.1798 +  Added some typecasts in png_zalloc().
  1.1799 +
  1.1800 +Version 1.2.14rc1 [November 20, 2006]
  1.1801 +  Changed "strtod" to "png_strtod" in pngrutil.c
  1.1802 +
  1.1803 +Version 1.0.22, 1.2.14    [November 27, 2006]
  1.1804 +  Added missing "$(srcdir)" in Makefile.am and Makefile.in
  1.1805 +
  1.1806 +Version 1.2.15beta1 [December 3, 2006]
  1.1807 +  Generated configure with autoconf-2.61 instead of 2.60
  1.1808 +  Revised configure.ac to update libpng.pc and libpng-config.
  1.1809 +
  1.1810 +Version 1.2.15beta2 [December 3, 2006]
  1.1811 +  Always export MMX asm functions, just stubs if not building pnggccrd.c
  1.1812 +
  1.1813 +Version 1.2.15beta3 [December 4, 2006]
  1.1814 +  Add "png_bytep" typecast to profile while calculating length in pngwutil.c
  1.1815 +
  1.1816 +Version 1.2.15beta4 [December 7, 2006]
  1.1817 +  Added scripts/CMakeLists.txt
  1.1818 +  Changed PNG_NO_ASSEMBLER_CODE to PNG_NO_MMX_CODE in scripts, like 1.4.0beta
  1.1819 +
  1.1820 +Version 1.2.15beta5 [December 7, 2006]
  1.1821 +  Changed some instances of PNG_ASSEMBLER_* to PNG_MMX_* in pnggccrd.c
  1.1822 +  Revised scripts/CMakeLists.txt
  1.1823 +
  1.1824 +Version 1.2.15beta6 [December 13, 2006]
  1.1825 +  Revised scripts/CMakeLists.txt and configure.ac
  1.1826 +
  1.1827 +Version 1.2.15rc1 [December 18, 2006]
  1.1828 +  Revised scripts/CMakeLists.txt
  1.1829 +
  1.1830 +Version 1.2.15rc2 [December 21, 2006]
  1.1831 +  Added conditional #undef jmpbuf in pngtest.c to undo #define in AIX headers.
  1.1832 +  Added scripts/makefile.nommx
  1.1833 +
  1.1834 +Version 1.2.15rc3 [December 25, 2006]
  1.1835 +  Fixed shared library numbering error that was introduced in 1.2.15beta6.
  1.1836 +
  1.1837 +Version 1.2.15rc4 [December 27, 2006]
  1.1838 +  Fixed handling of rgb_to_gray when png_ptr->color.gray isn't set.
  1.1839 +
  1.1840 +Version 1.2.15rc5 [December 31, 2006]
  1.1841 +  Revised handling of rgb_to_gray.
  1.1842 +
  1.1843 +Version 1.2.15 [January 5, 2007]
  1.1844 +  Added some (unsigned long) typecasts in pngtest.c to avoid printing errors.
  1.1845 +
  1.1846 +Version 1.2.16beta1 [January 6, 2007]
  1.1847 +  Fix bugs in makefile.nommx
  1.1848 +
  1.1849 +Version 1.2.16beta2 [January 16, 2007]
  1.1850 +  Revised scripts/CMakeLists.txt
  1.1851 +
  1.1852 +Version 1.2.16 [January 31, 2007]
  1.1853 +  No changes.
  1.1854 +
  1.1855 +Version 1.2.17beta1 [March 6, 2007]
  1.1856 +  Revised scripts/CMakeLists.txt to install both shared and static libraries.
  1.1857 +  Deleted a redundant line from pngset.c.
  1.1858 +
  1.1859 +Version 1.2.17beta2 [April 26, 2007]
  1.1860 +  Relocated misplaced test for png_ptr == NULL in pngpread.c
  1.1861 +  Change "==" to "&" for testing PNG_RGB_TO_GRAY_ERR & PNG_RGB_TO_GRAY_WARN
  1.1862 +    flags.
  1.1863 +  Changed remaining instances of PNG_ASSEMBLER_* to PNG_MMX_*
  1.1864 +  Added pngerror() when write_IHDR fails in deflateInit2().
  1.1865 +  Added "const" to some array declarations.
  1.1866 +  Mention examples of libpng usage in the libpng*.txt and libpng.3 documents.
  1.1867 +
  1.1868 +Version 1.2.17rc1 [May 4, 2007]
  1.1869 +  No changes.
  1.1870 +
  1.1871 +Version 1.2.17rc2 [May 8, 2007]
  1.1872 +  Moved several PNG_HAVE_* macros out of PNG_INTERNAL because applications
  1.1873 +    calling set_unknown_chunk_location() need them.
  1.1874 +  Changed transformation flag from PNG_EXPAND_tRNS to PNG_EXPAND in
  1.1875 +    png_set_expand_gray_1_2_4_to_8().
  1.1876 +  Added png_ptr->unknown_chunk to hold working unknown chunk data, so it
  1.1877 +    can be free'ed in case of error.  Revised unknown chunk handling in
  1.1878 +    pngrutil.c and pngpread.c to use this structure.
  1.1879 +
  1.1880 +Version 1.2.17rc3 [May 8, 2007]
  1.1881 +  Revised symbol-handling in configure script.
  1.1882 +
  1.1883 +Version 1.2.17rc4 [May 10, 2007]
  1.1884 +  Revised unknown chunk handling to avoid storing unknown critical chunks.
  1.1885 +
  1.1886 +Version 1.0.25 [May 15, 2007]
  1.1887 +Version 1.2.17 [May 15, 2007]
  1.1888 +  Added "png_ptr->num_trans=0" before error return in png_handle_tRNS,
  1.1889 +    to eliminate a vulnerability (CVE-2007-2445, CERT VU#684664)
  1.1890 +
  1.1891 +Version 1.0.26 [May 15, 2007]
  1.1892 +Version 1.2.18 [May 15, 2007]
  1.1893 +  Reverted the libpng-1.2.17rc3 change to symbol-handling in configure script
  1.1894 +
  1.1895 +Version 1.2.19beta1 [May 18, 2007]
  1.1896 +  Changed "const static" to "static PNG_CONST" everywhere, mostly undoing
  1.1897 +    change of libpng-1.2.17beta2.  Changed other "const" to "PNG_CONST"
  1.1898 +  Changed some handling of unused parameters, to avoid compiler warnings.
  1.1899 +    "if (unused == NULL) return;" becomes "unused = unused".
  1.1900 +
  1.1901 +Version 1.2.19beta2 [May 18, 2007]
  1.1902 +  Only use the valid bits of tRNS value in png_do_expand() (Brian Cartier)
  1.1903 +
  1.1904 +Version 1.2.19beta3 [May 19, 2007]
  1.1905 +  Add some "png_byte" typecasts in png_check_keyword() and write new_key
  1.1906 +  instead of key in zTXt chunk (Kevin Ryde).
  1.1907 +
  1.1908 +Version 1.2.19beta4 [May 21, 2007]
  1.1909 +  Add png_snprintf() function and use it in place of sprint() for improved
  1.1910 +    defense against buffer overflows.
  1.1911 +
  1.1912 +Version 1.2.19beta5 [May 21, 2007]
  1.1913 +  Fixed png_handle_tRNS() to only use the valid bits of tRNS value.
  1.1914 +  Changed handling of more unused parameters, to avoid compiler warnings.
  1.1915 +  Removed some PNG_CONST in pngwutil.c to avoid compiler warnings.
  1.1916 +
  1.1917 +Version 1.2.19beta6 [May 22, 2007]
  1.1918 +  Added some #ifdef PNG_MMX_CODE_SUPPORTED where needed in pngvcrd.c
  1.1919 +  Added a special "_MSC_VER" case that defines png_snprintf to _snprintf
  1.1920 +
  1.1921 +Version 1.2.19beta7 [May 22, 2007]
  1.1922 +  Squelched png_squelch_warnings() in pnggccrd.c and added
  1.1923 +    an #ifdef PNG_MMX_CODE_SUPPORTED block around the declarations that caused
  1.1924 +    the warnings that png_squelch_warnings was squelching.
  1.1925 +
  1.1926 +Version 1.2.19beta8 [May 22, 2007]
  1.1927 +  Removed __MMX__ from test in pngconf.h.
  1.1928 +
  1.1929 +Version 1.2.19beta9 [May 23, 2007]
  1.1930 +  Made png_squelch_warnings() available via PNG_SQUELCH_WARNINGS macro.
  1.1931 +  Revised png_squelch_warnings() so it might work.
  1.1932 +  Updated makefile.sgcc and makefile.solaris; added makefile.solaris-x86.
  1.1933 +
  1.1934 +Version 1.2.19beta10 [May 24, 2007]
  1.1935 +  Resquelched png_squelch_warnings(), use "__attribute__((used))" instead.
  1.1936 +
  1.1937 +Version 1.4.0beta1 [April 20, 2006]
  1.1938 +  Enabled iTXt support (changes png_struct, thus requires so-number change).
  1.1939 +  Cleaned up PNG_ASSEMBLER_CODE_SUPPORTED vs PNG_MMX_CODE_SUPPORTED
  1.1940 +  Eliminated PNG_1_0_X and PNG_1_2_X macros.
  1.1941 +  Removed deprecated functions png_read_init, png_write_init, png_info_init,
  1.1942 +    png_permit_empty_plte, png_set_gray_1_2_4_to_8, png_check_sig, and
  1.1943 +    removed the deprecated macro PNG_MAX_UINT.
  1.1944 +  Moved "PNG_INTERNAL" parts of png.h and pngconf.h into pngintrn.h
  1.1945 +  Removed many WIN32_WCE #ifdefs (Cosmin).
  1.1946 +  Reduced dependency on C-runtime library when on Windows (Simon-Pierre)
  1.1947 +  Replaced sprintf() with png_sprintf() (Simon-Pierre)
  1.1948 +
  1.1949 +Version 1.4.0beta2 [April 20, 2006]
  1.1950 +  Revised makefiles and configure to avoid making links to libpng.so.*
  1.1951 +  Moved some leftover MMX-related defines from pngconf.h to pngintrn.h
  1.1952 +  Updated scripts/pngos2.def, pngw32.def, and projects/wince/png32ce.def
  1.1953 +
  1.1954 +Version 1.4.0beta3 [May 10, 2006]
  1.1955 +  Updated scripts/pngw32.def to comment out MMX functions.
  1.1956 +  Added PNG_NO_GET_INT_32 and PNG_NO_SAVE_INT_32 macros.
  1.1957 +  Scripts/libpng.pc.in contained "configure" style version info and would
  1.1958 +    not work with makefiles.
  1.1959 +  Revised pngconf.h and added pngconf.h.in, so makefiles and configure can
  1.1960 +    pass defines to libpng and applications.
  1.1961 +
  1.1962 +Version 1.4.0beta4 [May 11, 2006]
  1.1963 +  Revised configure.ac, Makefile.am, and many of the makefiles to write
  1.1964 +    their defines in pngconf.h.
  1.1965 +
  1.1966 +Version 1.4.0beta5 [May 15, 2006]
  1.1967 +  Added a missing semicolon in Makefile.am and Makefile.in
  1.1968 +  Deleted extraneous square brackets from configure.ac
  1.1969 +
  1.1970 +Version 1.4.0beta6 [June 2, 2006]
  1.1971 +  Increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid
  1.1972 +    buffer overflow.
  1.1973 +  Changed sonum from 0 to 1.
  1.1974 +  Removed unused prototype for png_check_sig() from png.h
  1.1975 +
  1.1976 +Version 1.4.0beta7 [June 16, 2006]
  1.1977 +  Exported png_write_sig (Cosmin).
  1.1978 +  Optimized buffer in png_handle_cHRM() (Cosmin).
  1.1979 +  Set pHYs = 2835 x 2835 pixels per meter, and added
  1.1980 +    sCAL = 0.352778e-3 x 0.352778e-3 meters, in pngtest.png (Cosmin).
  1.1981 +  Added png_set_benign_errors(), png_benign_error(), png_chunk_benign_error().
  1.1982 +  Added typedef for png_int_32 and png_uint_32 on 64-bit systems.
  1.1983 +  Added "(unsigned long)" typecast on png_uint_32 variables in printf lists.
  1.1984 +
  1.1985 +Version 1.4.0beta8 [June 22, 2006]
  1.1986 +  Added demonstration of user chunk support in pngtest.c, to support the
  1.1987 +    public sTER chunk and a private vpAg chunk.
  1.1988 +
  1.1989 +Version 1.4.0beta9 [July 3, 2006]
  1.1990 +  Removed ordinals from scripts/pngw32.def and removed png_info_int and
  1.1991 +    png_set_gray_1_2_4_to_8 entries.
  1.1992 +  Inline call of png_get_uint_32() in png_get_uint_31().
  1.1993 +  Use png_get_uint_31() to get vpAg width and height in pngtest.c
  1.1994 +  Removed WINCE and Netware projects.
  1.1995 +  Removed standalone Y2KINFO file.
  1.1996 +
  1.1997 +Version 1.4.0beta10 [July 12, 2006]
  1.1998 +  Eliminated automatic copy of pngconf.h to pngconf.h.in from configure and
  1.1999 +    some makefiles, because it was not working reliably.  Instead, distribute
  1.2000 +    pngconf.h.in along with pngconf.h and cause configure and some of the
  1.2001 +    makefiles to update pngconf.h from pngconf.h.in.
  1.2002 +  Added pngconf.h to DEPENDENCIES in Makefile.am
  1.2003 +
  1.2004 +Version 1.4.0beta11 [August 19, 2006]
  1.2005 +  Removed AC_FUNC_MALLOC from configure.ac.
  1.2006 +  Added a warning when writing iCCP profile with mismatched profile length.
  1.2007 +  Patched pnggccrd.c to assemble on x86_64 platforms.
  1.2008 +  Moved chunk header reading into a separate function png_read_chunk_header()
  1.2009 +    in pngrutil.c.  The chunk header (len+sig) is now serialized in a single
  1.2010 +    operation (Cosmin).
  1.2011 +  Implemented support for I/O states. Added png_ptr member io_state, and
  1.2012 +    functions png_get_io_chunk_name() and png_get_io_state() in pngget.c
  1.2013 +    (Cosmin).
  1.2014 +  Added png_get_io_chunk_name and png_get_io_state to scripts/*.def (Cosmin).
  1.2015 +  Renamed scripts/pngw32.* to scripts/pngwin.* (Cosmin).
  1.2016 +  Removed the include directories and libraries from CFLAGS and LDFLAGS
  1.2017 +    in scripts/makefile.gcc (Cosmin).
  1.2018 +  Used png_save_uint_32() to set vpAg width and height in pngtest.c (Cosmin).
  1.2019 +  Cast to proper type when getting/setting vpAg units in pngtest.c (Cosmin).
  1.2020 +  Added pngintrn.h to the Visual C++ projects (Cosmin).
  1.2021 +  Removed scripts/list (Cosmin).
  1.2022 +  Updated copyright year in scripts/pngwin.def (Cosmin).
  1.2023 +  Removed PNG_TYPECAST_NULL and used standard NULL consistently (Cosmin).
  1.2024 +  Disallowed the user to redefine png_size_t, and enforced a consistent use
  1.2025 +    of png_size_t across libpng (Cosmin).
  1.2026 +  Changed the type of png_ptr->rowbytes, PNG_ROWBYTES() and friends
  1.2027 +    to png_size_t (Cosmin).
  1.2028 +  Removed png_convert_size() and replaced png_sizeof with sizeof (Cosmin).
  1.2029 +  Removed some unnecessary type casts (Cosmin).
  1.2030 +  Changed prototype of png_get_compression_buffer_size() and
  1.2031 +    png_set_compression_buffer_size() to work with png_size_t instead of
  1.2032 +    png_uint_32 (Cosmin).
  1.2033 +  Removed png_memcpy_check() and png_memset_check() (Cosmin).
  1.2034 +  Fixed a typo (png_byte --> png_bytep) in libpng.3 and libpng.txt (Cosmin).
  1.2035 +  Clarified that png_zalloc() does not clear the allocated memory,
  1.2036 +    and png_zalloc() and png_zfree() cannot be PNGAPI (Cosmin).
  1.2037 +  Renamed png_mem_size_t to png_alloc_size_t, fixed its definition in
  1.2038 +    pngconf.h, and used it in all memory allocation functions (Cosmin).
  1.2039 +  Renamed pngintrn.h to pngpriv.h, added a comment at the top of the file
  1.2040 +    mentioning that the symbols declared in that file are private, and
  1.2041 +    updated the scripts and the Visual C++ projects accordingly (Cosmin).
  1.2042 +  Removed circular references between pngconf.h and pngconf.h.in in
  1.2043 +    scripts/makefile.vc*win32 (Cosmin).
  1.2044 +  Removing trailing '.' from the warning and error messages (Cosmin).
  1.2045 +  Added pngdefs.h that is built by makefile or configure, instead of
  1.2046 +    pngconf.h.in (Glenn).
  1.2047 +  Detect and fix attempt to write wrong iCCP profile length.
  1.2048 +
  1.2049 +Version 1.4.0beta12 [October 19, 2006]
  1.2050 +  Changed "logical" to "bitwise" in the documentation.
  1.2051 +  Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h
  1.2052 +  Add a typecast to stifle compiler warning in pngrutil.c
  1.2053 +
  1.2054 +Version 1.4.0beta13 [November 10, 2006]
  1.2055 +  Fix potential buffer overflow in sPLT chunk handler.
  1.2056 +  Fix Makefile.am to not try to link to noexistent files.
  1.2057 +
  1.2058 +Version 1.4.0beta14 [November 15, 2006]
  1.2059 +  Check all exported functions for NULL png_ptr.
  1.2060 +
  1.2061 +Version 1.4.0beta15 [November 17, 2006]
  1.2062 +  Relocated two misplaced tests for NULL png_ptr.
  1.2063 +  Built Makefile.in with automake-1.9.6 instead of 1.9.2.
  1.2064 +  Build configure with autoconf-2.60 instead of 2.59
  1.2065 +  Add "install: all" in Makefile.am so "configure; make install" will work.
  1.2066 +
  1.2067 +Version 1.4.0beta16 [November 17, 2006]
  1.2068 +  Added a typecast in png_zalloc().
  1.2069 +
  1.2070 +Version 1.4.0beta17 [December 4, 2006]
  1.2071 +  Changed "new_key[79] = '\0';" to "(*new_key)[79] = '\0';" in pngwutil.c
  1.2072 +  Add "png_bytep" typecast to profile while calculating length in pngwutil.c
  1.2073 +
  1.2074 +Version 1.4.0beta18 [December 7, 2006]
  1.2075 +  Added scripts/CMakeLists.txt
  1.2076 +
  1.2077 +Version 1.4.0beta19 [May 16, 2007]
  1.2078 +  Revised scripts/CMakeLists.txt
  1.2079 +  Rebuilt configure and Makefile.in with newer tools.
  1.2080 +  Added conditional #undef jmpbuf in pngtest.c to undo #define in AIX headers.
  1.2081 +  Added scripts/makefile.nommx
  1.2082 +
  1.2083 +Version 1.4.0beta20 [July 9, 2008]
  1.2084 +  Moved several PNG_HAVE_* macros from pngpriv.h to png.h because applications
  1.2085 +    calling set_unknown_chunk_location() need them.
  1.2086 +  Moved several macro definitions from pngpriv.h to pngconf.h
  1.2087 +  Merge with changes to the 1.2.X branch, as of 1.2.30beta04.
  1.2088 +  Deleted all use of the MMX assembler code and Intel-licensed optimizations.
  1.2089 +  Revised makefile.mingw
  1.2090 +
  1.2091 +Version 1.4.0beta21 [July 21, 2008]
  1.2092 +  Moved local array "chunkdata" from pngrutil.c to the png_struct, so
  1.2093 +    it will be freed by png_read_destroy() in case of a read error (Kurt
  1.2094 +    Christensen).
  1.2095 +
  1.2096 +Version 1.4.0beta22 [July 21, 2008]
  1.2097 +  Change "purpose" and "buffer" to png_ptr->chunkdata to avoid memory leaking.
  1.2098 +
  1.2099 +Version 1.4.0beta23 [July 22, 2008]
  1.2100 +  Change "chunkdata = NULL" to "png_ptr->chunkdata = NULL" several places in
  1.2101 +    png_decompress_chunk().
  1.2102 +
  1.2103 +Version 1.4.0beta24 [July 25, 2008]
  1.2104 +  Change all remaining "chunkdata" to "png_ptr->chunkdata" in
  1.2105 +    png_decompress_chunk(), and remove "chunkdata" from parameter list.
  1.2106 +  Put a call to png_check_chunk_name() in png_read_chunk_header().
  1.2107 +  Revised png_check_chunk_name() to reject a name with a lowercase 3rd byte.
  1.2108 +  Removed two calls to png_check_chunk_name() occuring later in the process.
  1.2109 +  Define PNG_NO_ERROR_NUMBERS by default in pngconf.h
  1.2110 +
  1.2111 +Version 1.4.0beta25 [July 30, 2008]
  1.2112 +  Added a call to png_check_chunk_name() in pngpread.c
  1.2113 +  Reverted png_check_chunk_name() to accept a name with a lowercase 3rd byte.
  1.2114 +  Added png_push_have_buffer() function to pngpread.c
  1.2115 +  Eliminated PNG_BIG_ENDIAN_SUPPORTED and associated png_get_* macros.
  1.2116 +  Made inline expansion of png_get_*() optional with PNG_USE_READ_MACROS.
  1.2117 +  Eliminated all PNG_USELESS_TESTS and PNG_CORRECT_PALETTE_SUPPORTED code.
  1.2118 +  Synced contrib directory and configure files with libpng-1.2.30beta06.
  1.2119 +  Eliminated no-longer-used pngdefs.h (but it's still built in the makefiles)
  1.2120 +  Relocated a misplaced "#endif /* PNG_NO_WRITE_FILTER */" in pngwutil.c
  1.2121 +
  1.2122 +Version 1.4.0beta26 [August 4, 2008]
  1.2123 +  Removed png_push_have_buffer() function in pngpread.c.  It increased the
  1.2124 +    compiled library size slightly.
  1.2125 +  Changed "-Wall" to "-W -Wall" in the CFLAGS in all makefiles (Cosmin Truta)
  1.2126 +  Declared png_ptr "volatile" in pngread.c and pngwrite.c to avoid warnings.
  1.2127 +  Updated contrib/visupng/cexcept.h to version 2.0.1
  1.2128 +  Added PNG_LITERAL_CHARACTER macros for #, [, and ].
  1.2129 +
  1.2130 +Version 1.4.0beta27 [August 5, 2008]
  1.2131 +  Revised usage of PNG_LITERAL_SHARP in pngerror.c.
  1.2132 +  Moved newline character from individual png_debug messages into the
  1.2133 +    png_debug macros.
  1.2134 +  Allow user to #define their own png_debug, png_debug1, and png_debug2.
  1.2135 +
  1.2136 +Version 1.4.0beta28 [August 5, 2008]
  1.2137 +  Revised usage of PNG_LITERAL_SHARP in pngerror.c.
  1.2138 +  Added PNG_STRING_NEWLINE macro
  1.2139 +
  1.2140 +Version 1.4.0beta29 [August 9, 2008]
  1.2141 +  Revised usage of PNG_STRING_NEWLINE to work on non-ISO compilers.
  1.2142 +  Added PNG_STRING_COPYRIGHT macro.
  1.2143 +  Added non-ISO versions of png_debug macros.
  1.2144 +
  1.2145 +Version 1.4.0beta30 [August 14, 2008]
  1.2146 +  Added premultiplied alpha feature (Volker Wiendl).
  1.2147 +
  1.2148 +Version 1.4.0beta31 [August 18, 2008]
  1.2149 +  Moved png_set_premultiply_alpha from pngtrans.c to pngrtran.c
  1.2150 +  Removed extra crc check at the end of png_handle_cHRM().  Bug introduced
  1.2151 +    in libpng-1.4.0beta20.
  1.2152 +
  1.2153 +Version 1.4.0beta32 [August 19, 2008]
  1.2154 +  Added PNG_WRITE_FLUSH_SUPPORTED block around new png_flush() call.
  1.2155 +  Revised PNG_NO_STDIO version of png_write_flush()
  1.2156 +
  1.2157 +Version 1.4.0beta33 [August 20, 2008]
  1.2158 +  Added png_get|set_chunk_cache_max() to limit the total number of sPLT,
  1.2159 +    text, and unknown chunks that can be stored.
  1.2160 +
  1.2161 +Version 1.4.0beta34 [September 6, 2008]
  1.2162 +  Shortened tIME_string to 29 bytes in pngtest.c
  1.2163 +  Fixed off-by-one error introduced in png_push_read_zTXt() function in
  1.2164 +    libpng-1.2.30beta04/pngpread.c (Harald van Dijk)
  1.2165 +
  1.2166 +Version 1.4.0beta35 [October 6, 2008]
  1.2167 +  Changed "trans_values" to "trans_color".
  1.2168 +  Changed so-number from 0 to 14.  Some OS do not like 0.
  1.2169 +  Revised makefile.darwin to fix shared library numbering.
  1.2170 +  Change png_set_gray_1_2_4_to_8() to png_set_expand_gray_1_2_4_to_8()
  1.2171 +    in example.c (debian bug report)
  1.2172 +
  1.2173 +Version 1.4.0beta36 [October 25, 2008]
  1.2174 +  Sync with tEXt vulnerability fix in libpng-1.2.33rc02.
  1.2175 +
  1.2176 +Version 1.4.0beta37 [November 13, 2008]
  1.2177 +  Added png_check_cHRM in png.c and moved checking from pngget.c, pngrutil.c,
  1.2178 +    and pngwrite.c
  1.2179 +
  1.2180 +Version 1.4.0beta38 [November 22, 2008]
  1.2181 +  Added check for zero-area RGB cHRM triangle in png_check_cHRM() and
  1.2182 +    png_check_cHRM_fixed().
  1.2183 +
  1.2184 +Version 1.4.0beta39 [November 23, 2008]
  1.2185 +  Revised png_warning() to write its message on standard output by default
  1.2186 +    when warning_fn is NULL.
  1.2187 +
  1.2188 +Version 1.4.0beta40 [November 24, 2008]
  1.2189 +  Eliminated png_check_cHRM().  Instead, always use png_check_cHRM_fixed().
  1.2190 +  In png_check_cHRM_fixed(), ensure white_y is > 0, and removed redundant
  1.2191 +    check for all-zero coordinates that is detected by the triangle check.
  1.2192 +
  1.2193 +Version 1.4.0beta41 [November 26, 2008]
  1.2194 +  Fixed string vs pointer-to-string error in png_check_keyword().
  1.2195 +  Rearranged test expressions in png_check_cHRM_fixed() to avoid internal
  1.2196 +    overflows.
  1.2197 +  Added PNG_NO_CHECK_cHRM conditional.
  1.2198 +
  1.2199 +Version 1.4.0beta42, 43 [December 1, 2008]
  1.2200 +  Merge png_debug with version 1.2.34beta04.
  1.2201 +
  1.2202 +Version 1.4.0beta44 [December 6, 2008]
  1.2203 +  Removed redundant check for key==NULL before calling png_check_keyword()
  1.2204 +    to ensure that new_key gets initialized and removed extra warning
  1.2205 +    (Merge with version 1.2.34beta05 -- Arvan Pritchard).
  1.2206 +
  1.2207 +Version 1.4.0beta45 [December 9, 2008]
  1.2208 +  In png_write_png(), respect the placement of the filler bytes in an earlier
  1.2209 +    call to png_set_filler() (Jim Barry).
  1.2210 +
  1.2211 +Version 1.4.0beta46 [December 10, 2008]
  1.2212 +  Undid previous change and added PNG_TRANSFORM_STRIP_FILLER_BEFORE and
  1.2213 +    PNG_TRANSFORM_STRIP_FILLER_AFTER conditionals and deprecated
  1.2214 +    PNG_TRANSFORM_STRIP_FILLER (Jim Barry).
  1.2215 +
  1.2216 +Version 1.4.0beta47 [December 15, 2008]
  1.2217 +  Support for dithering was disabled by default, because it has never
  1.2218 +    been well tested and doesn't work very well.  The code has not
  1.2219 +    been removed, however, and can be enabled by building libpng with
  1.2220 +    PNG_READ_DITHER_SUPPORTED defined.
  1.2221 +
  1.2222 +Version 1.4.0beta48 [February 14, 2009]
  1.2223 +  Added new exported function png_calloc().
  1.2224 +  Combined several instances of png_malloc(); png_memset() into png_calloc().
  1.2225 +  Removed prototype for png_freeptr() that was added in libpng-1.4.0beta24
  1.2226 +    but was never defined.
  1.2227 +
  1.2228 +Version 1.4.0beta49 [February 28, 2009]
  1.2229 +  Added png_fileno() macro to pngconf.h, used in pngwio.c
  1.2230 +  Corrected order of #ifdef's in png_debug definition in png.h
  1.2231 +  Fixed bug introduced in libpng-1.4.0beta48 with the memset arguments
  1.2232 +    for pcal_params.
  1.2233 +  Fixed order of #ifdef directives in the png_debug defines in png.h
  1.2234 +    (bug introduced in libpng-1.2.34/1.4.0beta29).
  1.2235 +  Revised comments in png_set_read_fn() and png_set_write_fn().
  1.2236 +
  1.2237 +Version 1.4.0beta50 [March 18, 2009]
  1.2238 +  Use png_calloc() instead of png_malloc() to allocate big_row_buf when
  1.2239 +    reading an interlaced file, to avoid a possible UMR.
  1.2240 +  Undid revision of PNG_NO_STDIO version of png_write_flush().  Users
  1.2241 +    having trouble with fflush() can build with PNG_NO_WRITE_FLUSH defined
  1.2242 +    or supply their own flush_fn() replacement.
  1.2243 +  Revised libpng*.txt and png.h documentation about use of png_write_flush()
  1.2244 +    and png_set_write_fn().
  1.2245 +  Removed fflush() from pngtest.c.
  1.2246 +  Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h
  1.2247 +
  1.2248 +Version 1.4.0beta51 [March 21, 2009]
  1.2249 +  Removed new png_fileno() macro from pngconf.h .
  1.2250 +
  1.2251 +Version 1.4.0beta52 [March 27, 2009]
  1.2252 +  Relocated png_do_chop() ahead of building gamma tables in pngrtran.c
  1.2253 +    This avoids building 16-bit gamma tables unnecessarily.
  1.2254 +  Removed fflush() from pngtest.c.
  1.2255 +  Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h
  1.2256 +  Added a section on differences between 1.0.x and 1.2.x to libpng.3/libpng.txt
  1.2257 +
  1.2258 +Version 1.4.0beta53 [April 1, 2009]
  1.2259 +  Removed some remaining MMX macros from pngpriv.h
  1.2260 +  Fixed potential memory leak of "new_name" in png_write_iCCP() (Ralph Giles)
  1.2261 +
  1.2262 +Version 1.4.0beta54 [April 13, 2009]
  1.2263 +  Added "ifndef PNG_SKIP_SETJMP_CHECK" block in pngconf.h to allow
  1.2264 +    application code writers to bypass the check for multiple inclusion
  1.2265 +    of setjmp.h when they know that it is safe to ignore the situation.
  1.2266 +  Eliminated internal use of setjmp() in pngread.c and pngwrite.c
  1.2267 +  Reordered ancillary chunks in pngtest.png to be the same as what
  1.2268 +    pngtest now produces, and made some cosmetic changes to pngtest output.
  1.2269 +  Eliminated deprecated png_read_init_3() and png_write_init_3() functions.
  1.2270 +
  1.2271 +Version 1.4.0beta55 [April 15, 2009]
  1.2272 +  Simplified error handling in pngread.c and pngwrite.c by putting
  1.2273 +    the new png_read_cleanup() and png_write_cleanup() functions inline.
  1.2274 +
  1.2275 +Version 1.4.0beta56 [April 25, 2009]
  1.2276 +  Renamed "user_chunk_data" to "my_user_chunk_data" in pngtest.c to suppress
  1.2277 +    "shadowed declaration" warning from gcc-4.3.3.
  1.2278 +  Renamed "gamma" to "png_gamma" in pngset.c to avoid "shadowed declaration"
  1.2279 +    warning about a global "gamma" variable in math.h on some platforms.
  1.2280 +
  1.2281 +Version 1.4.0beta57 [May 2, 2009]
  1.2282 +  Removed prototype for png_freeptr() that was added in libpng-1.4.0beta24
  1.2283 +    but was never defined (again).
  1.2284 +  Rebuilt configure scripts with autoconf-2.63 instead of 2.62
  1.2285 +  Removed pngprefs.h and MMX from makefiles
  1.2286 +
  1.2287 +Version 1.4.0beta58 [May 14, 2009]
  1.2288 +  Changed pngw32.def to pngwin.def in makefile.mingw (typo was introduced
  1.2289 +    in beta57).
  1.2290 +  Clarified usage of sig_bit versus sig_bit_p in example.c (Vincent Torri)
  1.2291 +
  1.2292 +Version 1.4.0beta59 [May 15, 2009]
  1.2293 +  Reformated sources in libpng style (3-space intentation, comment format)
  1.2294 +  Fixed typo in libpng docs (PNG_FILTER_AVE should be PNG_FILTER_AVG)
  1.2295 +  Added sections about the git repository and our coding style to the
  1.2296 +    documentation
  1.2297 +  Relocated misplaced #endif in pngwrite.c, sCAL chunk handler.
  1.2298 +
  1.2299 +Version 1.4.0beta60 [May 19, 2009]
  1.2300 +  Conditionally compile png_read_finish_row() which is not used by
  1.2301 +    progressive readers.
  1.2302 +  Added contrib/pngminim/preader to demonstrate building minimal progressive
  1.2303 +    decoder, based on contrib/gregbook with embedded libpng and zlib.
  1.2304 +
  1.2305 +Version 1.4.0beta61 [May 20, 2009]
  1.2306 +  In contrib/pngminim/*, renamed "makefile.std" to "makefile", since there
  1.2307 +    is only one makefile in those directories, and revised the README files
  1.2308 +    accordingly.
  1.2309 +  More reformatting of comments, mostly to capitalize sentences.
  1.2310 +
  1.2311 +Version 1.4.0beta62 [June 2, 2009]
  1.2312 +  Added "#define PNG_NO_WRITE_SWAP" to contrib/pngminim/encoder/pngusr.h
  1.2313 +    and "define PNG_NO_READ_SWAP" to decoder/pngusr.h and preader/pngusr.h
  1.2314 +  Reformatted several remaining "else statement" into two lines.
  1.2315 +  Added a section to the libpng documentation about using png_get_io_ptr()
  1.2316 +    in configure scripts to detect the presence of libpng.
  1.2317 +
  1.2318 +Version 1.4.0beta63 [June 15, 2009]
  1.2319 +  Revised libpng*.txt and libpng.3 to mention calling png_set_IHDR()
  1.2320 +    multiple times and to specify the sample order in the tRNS chunk,
  1.2321 +    because the ISO PNG specification has a typo in the tRNS table.
  1.2322 +  Changed several PNG_UNKNOWN_CHUNK_SUPPORTED to
  1.2323 +    PNG_HANDLE_AS_UNKNOWN_SUPPORTED, to make the png_set_keep mechanism
  1.2324 +    available for ignoring known chunks even when not saving unknown chunks.
  1.2325 +  Adopted preference for consistent use of "#ifdef" and "#ifndef" versus
  1.2326 +    "#if defined()" and "if !defined()" where possible.
  1.2327 +
  1.2328 +Version 1.4.0beta64 [June 24, 2009]
  1.2329 +  Eliminated PNG_LEGACY_SUPPORTED code.
  1.2330 +  Moved the various unknown chunk macro definitions outside of the
  1.2331 +     PNG_READ|WRITE_ANCILLARY_CHUNK_SUPPORTED blocks.
  1.2332 +
  1.2333 +Version 1.4.0beta65 [June 26, 2009]
  1.2334 +  Added a reference to the libpng license in each file.
  1.2335 +
  1.2336 +Version 1.4.0beta66 [June 27, 2009]
  1.2337 +  Refer to the libpng license instead of the libpng license in each file.
  1.2338 +
  1.2339 +Version 1.4.0beta67 [July 6, 2009]
  1.2340 +  Relocated INVERT_ALPHA within png_read_png() and png_write_png().
  1.2341 +  Added high-level API transform PNG_TRANSFORM_GRAY_TO_RGB.
  1.2342 +  Added an "xcode" project to the projects directory (Alam Arias).
  1.2343 +
  1.2344 +Version 1.4.0beta68 [July 19, 2009]
  1.2345 +  Avoid some tests in filter selection in pngwutil.c
  1.2346 +
  1.2347 +Version 1.4.0beta69 [July 25, 2009]
  1.2348 +  Simplified the new filter-selection test.  This runs faster in the
  1.2349 +    common "PNG_ALL_FILTERS" and PNG_FILTER_NONE cases.
  1.2350 +  Removed extraneous declaration from the new call to png_read_gray_to_rgb()
  1.2351 +    (bug introduced in libpng-1.4.0beta67).
  1.2352 +  Fixed up xcode project (Alam Arias)
  1.2353 +  Added a prototype for png_64bit_product() in png.c
  1.2354 +
  1.2355 +Version 1.4.0beta70 [July 27, 2009]
  1.2356 +  Avoid a possible NULL dereference in debug build, in png_set_text_2().
  1.2357 +    (bug introduced in libpng-0.95, discovered by Evan Rouault)
  1.2358 +
  1.2359 +Version 1.4.0beta71 [July 29, 2009]
  1.2360 +  Rebuilt configure scripts with autoconf-2.64.
  1.2361 +
  1.2362 +Version 1.4.0beta72 [August 1, 2009]
  1.2363 +  Replaced *.tar.lzma with *.tar.xz in distribution.  Get the xz codec
  1.2364 +    from <http://tukaani.org/xz>.
  1.2365 +
  1.2366 +Version 1.4.0beta73 [August 1, 2009]
  1.2367 +  Reject attempt to write iCCP chunk with negative embedded profile length
  1.2368 +    (JD Chen) (CVE-2009-5063).
  1.2369 +
  1.2370 +Version 1.4.0beta74 [August 8, 2009]
  1.2371 +  Changed png_ptr and info_ptr member "trans" to "trans_alpha".
  1.2372 +
  1.2373 +Version 1.4.0beta75 [August 21, 2009]
  1.2374 +  Removed an extra png_debug() recently added to png_write_find_filter().
  1.2375 +  Fixed incorrect #ifdef in pngset.c regarding unknown chunk support.
  1.2376 +
  1.2377 +Version 1.4.0beta76 [August 22, 2009]
  1.2378 +  Moved an incorrectly located test in png_read_row() in pngread.c
  1.2379 +
  1.2380 +Version 1.4.0beta77 [August 27, 2009]
  1.2381 +  Removed lpXYZ.tar.bz2 (with CRLF), KNOWNBUG, libpng-x.y.z-KNOWNBUG.txt,
  1.2382 +    and the "noconfig" files from the distribution.
  1.2383 +  Moved CMakeLists.txt from scripts into the main libpng directory.
  1.2384 +  Various bugfixes and improvements to CMakeLists.txt (Philip Lowman)
  1.2385 +
  1.2386 +Version 1.4.0beta78 [August 31, 2009]
  1.2387 +  Converted all PNG_NO_* tests to PNG_*_SUPPORTED everywhere except pngconf.h
  1.2388 +  Eliminated PNG_NO_FREE_ME and PNG_FREE_ME_SUPPORTED macros.
  1.2389 +  Use png_malloc plus a loop instead of png_calloc() to initialize
  1.2390 +    row_pointers in png_read_png().
  1.2391 +
  1.2392 +Version 1.4.0beta79 [September 1, 2009]
  1.2393 +  Eliminated PNG_GLOBAL_ARRAYS and PNG_LOCAL_ARRAYS; always use local arrays.
  1.2394 +  Eliminated PNG_CALLOC_SUPPORTED macro and always provide png_calloc().
  1.2395 +
  1.2396 +Version 1.4.0beta80 [September 17, 2009]
  1.2397 +  Removed scripts/libpng.icc
  1.2398 +  Changed typecast of filler from png_byte to png_uint_16 in png_set_filler().
  1.2399 +    (Dennis Gustafsson)
  1.2400 +  Fixed typo introduced in beta78 in pngtest.c ("#if def " should be "#ifdef ")
  1.2401 +
  1.2402 +Version 1.4.0beta81 [September 23, 2009]
  1.2403 +  Eliminated unused PNG_FLAG_FREE_* defines from pngpriv.h
  1.2404 +  Expanded TAB characters in pngrtran.c
  1.2405 +  Removed PNG_CONST from all "PNG_CONST PNG_CHNK" declarations to avoid
  1.2406 +    compiler complaints about doubly declaring things "const".
  1.2407 +  Changed all "#if [!]defined(X)" to "if[n]def X" where possible.
  1.2408 +  Eliminated unused png_ptr->row_buf_size
  1.2409 +
  1.2410 +Version 1.4.0beta82 [September 25, 2009]
  1.2411 +  Moved redundant IHDR checking into new png_check_IHDR() in png.c
  1.2412 +    and report all errors found in the IHDR data.
  1.2413 +  Eliminated useless call to png_check_cHRM() from pngset.c
  1.2414 +
  1.2415 +Version 1.4.0beta83 [September 25, 2009]
  1.2416 +  Revised png_check_IHDR() to eliminate bogus complaint about filter_type.
  1.2417 +
  1.2418 +Version 1.4.0beta84 [September 30, 2009]
  1.2419 +  Fixed some inconsistent indentation in pngconf.h
  1.2420 +  Revised png_check_IHDR() to add a test for width variable less than 32-bit.
  1.2421 +
  1.2422 +Version 1.4.0beta85 [October 1, 2009]
  1.2423 +  Revised png_check_IHDR() again, to check info_ptr members instead of
  1.2424 +    the contents of the returned parameters.
  1.2425 +
  1.2426 +Version 1.4.0beta86 [October 9, 2009]
  1.2427 +  Updated the "xcode" project (Alam Arias).
  1.2428 +  Eliminated a shadowed declaration of "pp" in png_handle_sPLT().
  1.2429 +
  1.2430 +Version 1.4.0rc01 [October 19, 2009]
  1.2431 +  Trivial cosmetic changes.
  1.2432 +
  1.2433 +Version 1.4.0beta87 [October 30, 2009]
  1.2434 +  Moved version 1.4.0 back into beta.
  1.2435 +
  1.2436 +Version 1.4.0beta88 [October 30, 2009]
  1.2437 +  Revised libpng*.txt section about differences between 1.2.x and 1.4.0
  1.2438 +    because most of the new features have now been ported back to 1.2.41
  1.2439 +
  1.2440 +Version 1.4.0beta89 [November 1, 2009]
  1.2441 +  More bugfixes and improvements to CMakeLists.txt (Philip Lowman)
  1.2442 +  Removed a harmless extra png_set_invert_alpha() from pngwrite.c
  1.2443 +  Apply png_user_chunk_cache_max within png_decompress_chunk().
  1.2444 +  Merged libpng-1.2.41.txt with libpng-1.4.0.txt where appropriate.
  1.2445 +
  1.2446 +Version 1.4.0beta90 [November 2, 2009]
  1.2447 +  Removed all remaining WIN32_WCE #ifdefs except those involving the
  1.2448 +    time.h "tm" structure
  1.2449 +
  1.2450 +Version 1.4.0beta91 [November 3, 2009]
  1.2451 +  Updated scripts/pngw32.def and projects/wince/png32ce.def
  1.2452 +  Copied projects/wince/png32ce.def to the scripts directory.
  1.2453 +  Added scripts/makefile.wce
  1.2454 +  Patched ltmain.sh for wince support.
  1.2455 +  Added PNG_CONVERT_tIME_SUPPORTED macro.
  1.2456 +
  1.2457 +Version 1.4.0beta92 [November 4, 2009]
  1.2458 +  Make inclusion of time.h in pngconf.h depend on PNG_CONVERT_tIME_SUPPORTED
  1.2459 +  Make #define PNG_CONVERT_tIME_SUPPORTED depend on PNG_WRITE_tIME_SUPPORTED
  1.2460 +  Revised libpng*.txt to describe differences from 1.2.40 to 1.4.0 (instead
  1.2461 +    of differences from 1.2.41 to 1.4.0)
  1.2462 +
  1.2463 +Version 1.4.0beta93 [November 7, 2009]
  1.2464 +  Added PNG_DEPSTRUCT, PNG_DEPRECATED, PNG_USE_RESULT, PNG_NORETURN, and
  1.2465 +    PNG_ALLOCATED macros to detect deprecated direct access to the
  1.2466 +    png_struct or info_struct members and other deprecated usage in
  1.2467 +    applications (John Bowler).
  1.2468 +  Updated scripts/makefile* to add "-DPNG_CONFIGURE_LIBPNG" to CFLAGS,
  1.2469 +    to prevent warnings about direct access to png structs by libpng
  1.2470 +    functions while building libpng.  They need to be tested, especially
  1.2471 +    those using compilers other than gcc.
  1.2472 +  Updated projects/visualc6 and visualc71 with "/d PNG_CONFIGURE_LIBPNG".
  1.2473 +    They should work but still need to be updated to remove
  1.2474 +    references to pnggccrd.c or pngvcrd.c and ASM building.
  1.2475 +  Added README.txt to the beos, cbuilder5, netware, and xcode projects warning
  1.2476 +    that they need to be updated, to remove references to pnggccrd.c and
  1.2477 +    pngvcrd.c and to depend on pngpriv.h
  1.2478 +  Removed three direct references to read_info_ptr members in pngtest.c
  1.2479 +    that were detected by the new PNG_DEPSTRUCT macro.
  1.2480 +  Moved the png_debug macro definitions and the png_read_destroy(),
  1.2481 +    png_write_destroy() and png_far_to_near() prototypes from png.h
  1.2482 +    to pngpriv.h (John Bowler)
  1.2483 +  Moved the synopsis lines for png_read_destroy(), png_write_destroy()
  1.2484 +    png_debug(), png_debug1(), and png_debug2() from libpng.3 to libpngpf.3.
  1.2485 +
  1.2486 +Version 1.4.0beta94 [November 9, 2009]
  1.2487 +  Removed the obsolete, unused pnggccrd.c and pngvcrd.c files.
  1.2488 +  Updated CMakeLists.txt to add "-DPNG_CONFIGURE_LIBPNG" to the definitions.
  1.2489 +  Removed dependency of pngtest.o on pngpriv.h in the makefiles.
  1.2490 +  Only #define PNG_DEPSTRUCT, etc. in pngconf.h if not already defined.
  1.2491 +
  1.2492 +Version 1.4.0beta95 [November 10, 2009]
  1.2493 +  Changed png_check_sig() to !png_sig_cmp() in contrib programs.
  1.2494 +  Added -DPNG_CONFIGURE_LIBPNG to contrib/pngminm/*/makefile
  1.2495 +  Changed png_check_sig() to !png_sig_cmp() in contrib programs.
  1.2496 +  Corrected the png_get_IHDR() call in contrib/gregbook/readpng2.c
  1.2497 +  Changed pngminim/*/gather.sh to stop trying to remove pnggccrd.c and pngvcrd.c
  1.2498 +  Added dependency on pngpriv.h in contrib/pngminim/*/makefile
  1.2499 +
  1.2500 +Version 1.4.0beta96 [November 12, 2009]
  1.2501 +  Renamed scripts/makefile.wce to scripts/makefile.cegcc
  1.2502 +  Revised Makefile.am to use libpng.sys while building libpng.so
  1.2503 +    so that only PNG_EXPORT functions are exported.
  1.2504 +  Removed the deprecated png_check_sig() function/macro.
  1.2505 +  Removed recently removed function names from scripts/*.def
  1.2506 +  Revised pngtest.png to put chunks in the same order written by pngtest
  1.2507 +    (evidently the same change made in libpng-1.0beta54 was lost).
  1.2508 +  Added PNG_PRIVATE macro definition in pngconf.h for possible future use.
  1.2509 +
  1.2510 +Version 1.4.0beta97 [November 13, 2009]
  1.2511 +  Restored pngtest.png to the libpng-1.4.0beta7 version.
  1.2512 +  Removed projects/beos and netware.txt; no one seems to be supporting them.
  1.2513 +  Revised Makefile.in
  1.2514 +
  1.2515 +Version 1.4.0beta98 [November 13, 2009]
  1.2516 +  Added the "xcode" project to zip distributions,
  1.2517 +  Fixed a typo in scripts/pngwin.def introduced in beta97.
  1.2518 +
  1.2519 +Version 1.4.0beta99 [November 14, 2009]
  1.2520 +  Moved libpng-config.in and libpng.pc-configure.in out of the scripts
  1.2521 +    directory, to libpng-config.in and libpng-pc.in, respectively, and
  1.2522 +    modified Makefile.am and configure.ac accordingly.  Now "configure"
  1.2523 +    needs nothing from the "scripts" directory.
  1.2524 +  Avoid redefining PNG_CONST in pngconf.h
  1.2525 +
  1.2526 +Version 1.4.0beta100 [November 14, 2009]
  1.2527 +  Removed ASM builds from projects/visualc6 and projects/visualc71
  1.2528 +  Removed scripts/makefile.nommx and makefile.vcawin32
  1.2529 +  Revised CMakeLists.txt to account for new location of libpng-config.in
  1.2530 +    and libpng-pc.in
  1.2531 +  Updated INSTALL to reflect removal and relocation of files.
  1.2532 +
  1.2533 +Version 1.4.0beta101 [November 14, 2009]
  1.2534 +  Restored the binary files (*.jpg, *.png, some project files) that were
  1.2535 +    accidentally deleted from the zip and 7z distributions when the xcode
  1.2536 +    project was added.
  1.2537 +
  1.2538 +Version 1.4.0beta102 [November 18, 2009]
  1.2539 +  Added libpng-config.in and libpng-pc.in to the zip and 7z distributions.
  1.2540 +  Fixed a typo in projects/visualc6/pngtest.dsp, introduced in beta100.
  1.2541 +  Moved descriptions of makefiles and other scripts out of INSTALL into
  1.2542 +    scripts/README.txt
  1.2543 +  Updated the copyright year in scripts/pngwin.rc from 2006 to 2009.
  1.2544 +
  1.2545 +Version 1.4.0beta103 [November 21, 2009]
  1.2546 +  Removed obsolete comments about ASM from projects/visualc71/README_zlib.txt
  1.2547 +  Align row_buf on 16-byte boundary in memory.
  1.2548 +  Restored the PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED guard around the call
  1.2549 +    to png_flush() after png_write_IEND().  See 1.4.0beta32, 1.4.0beta50
  1.2550 +    changes above and 1.2.30, 1.2.30rc01 and rc03 in 1.2.41 CHANGES.  Someone
  1.2551 +    needs this feature.
  1.2552 +  Make the 'png_jmpbuf' macro expand to a call that records the correct
  1.2553 +    longjmp function as well as returning a pointer to the setjmp
  1.2554 +    jmp_buf buffer, and marked direct access to jmpbuf 'deprecated'.
  1.2555 +    (John Bowler)
  1.2556 +
  1.2557 +Version 1.4.0beta104 [November 22, 2009]
  1.2558 +  Removed png_longjmp_ptr from scripts/*.def and libpng.3
  1.2559 +  Rebuilt configure scripts with autoconf-2.65
  1.2560 +
  1.2561 +Version 1.4.0beta105 [November 25, 2009]
  1.2562 +  Use fast integer PNG_DIVIDE_BY_255() or PNG_DIVIDE_BY_65535()
  1.2563 +    to accomplish alpha premultiplication when
  1.2564 +    PNG_READ_COMPOSITE_NODIV_SUPPORTED is defined.
  1.2565 +  Changed "/255" to "/255.0" in background calculations to make it clear
  1.2566 +    that the 255 is used as a double.
  1.2567 +
  1.2568 +Version 1.4.0beta106 [November 27, 2009]
  1.2569 +  Removed premultiplied alpha feature.
  1.2570 +
  1.2571 +Version 1.4.0beta107 [December 4, 2009]
  1.2572 +  Updated README
  1.2573 +  Added "#define PNG_NO_PEDANTIC_WARNINGS" in the libpng source files.
  1.2574 +  Removed "-DPNG_CONFIGURE_LIBPNG" from the makefiles and projects.
  1.2575 +  Revised scripts/makefile.netbsd, makefile.openbsd, and makefile.sco
  1.2576 +    to put png.h and pngconf.h in $prefix/include, like the other scripts,
  1.2577 +    instead of in $prefix/include/libpng.  Also revised makefile.sco
  1.2578 +    to put them in $prefix/include/libpng15 instead of in
  1.2579 +    $prefix/include/libpng/libpng15.
  1.2580 +
  1.2581 +Version 1.4.0beta108 [December 11, 2009]
  1.2582 +  Removed leftover "-DPNG_CONFIGURE_LIBPNG" from contrib/pngminim/*/makefile
  1.2583 +  Relocated png_do_chop() to its original position in pngrtran.c; the
  1.2584 +    change in version 1.2.41beta08 caused transparency to be handled wrong
  1.2585 +    in some 16-bit datastreams (Yusaku Sugai).
  1.2586 +
  1.2587 +Version 1.4.0beta109 [December 13, 2009]
  1.2588 +  Added "bit_depth" parameter to the private png_build_gamma_table() function.
  1.2589 +  Pass bit_depth=8 to png_build_gamma_table() when bit_depth is 16 but the
  1.2590 +    PNG_16_TO_8 transform has been set, to avoid unnecessary build of 16-bit
  1.2591 +    tables.
  1.2592 +
  1.2593 +Version 1.4.0rc02 [December 20, 2009]
  1.2594 +  Declared png_cleanup_needed "volatile" in pngread.c and pngwrite.c
  1.2595 +
  1.2596 +Version 1.4.0rc03 [December 22, 2009]
  1.2597 +  Renamed libpng-pc.in back to libpng.pc.in and revised CMakeLists.txt
  1.2598 +    (revising the change in 1.4.0beta99)
  1.2599 +
  1.2600 +Version 1.4.0rc04 [December 25, 2009]
  1.2601 +  Swapped PNG_UNKNOWN_CHUNKS_SUPPORTED and PNG_HANDLE_AS_UNKNOWN_SUPPORTED
  1.2602 +    in pngset.c to be consistent with other changes in version 1.2.38.
  1.2603 +
  1.2604 +Version 1.4.0rc05 [December 25, 2009]
  1.2605 +  Changed "libpng-pc.in" to "libpng.pc.in" in configure.ac, configure, and
  1.2606 +    Makefile.in to be consistent with changes in libpng-1.4.0rc03
  1.2607 +
  1.2608 +Version 1.4.0rc06 [December 29, 2009]
  1.2609 +  Reverted the gamma_table changes from libpng-1.4.0beta109.
  1.2610 +  Fixed some indentation errors.
  1.2611 +
  1.2612 +Version 1.4.0rc07 [January 1, 2010]
  1.2613 +  Revised libpng*.txt and libpng.3 about 1.2.x->1.4.x differences.
  1.2614 +  Use png_calloc() instead of png_malloc(); png_memset() in pngrutil.c
  1.2615 +  Update copyright year to 2010.
  1.2616 +
  1.2617 +Version 1.4.0rc08 [January 2, 2010]
  1.2618 +  Avoid deprecated references to png_ptr-io_ptr and png_ptr->error_ptr
  1.2619 +    in pngtest.c
  1.2620 +
  1.2621 +Version 1.4.0 [January 3, 2010]
  1.2622 +  No changes.
  1.2623 +
  1.2624 +Version 1.4.1beta01 [January 8, 2010]
  1.2625 +  Updated CMakeLists.txt for consistent indentation and to avoid an
  1.2626 +    unclosed if-statement warning (Philip Lowman).
  1.2627 +  Revised Makefile.am and Makefile.in to remove references to Y2KINFO,
  1.2628 +    KNOWNBUG, and libpng.la (Robert Schwebel).
  1.2629 +  Revised the makefiles to install the same files and symbolic
  1.2630 +    links as configure, except for libpng.la and libpng14.la.
  1.2631 +  Make png_set|get_compression_buffer_size() available even when
  1.2632 +    PNG_WRITE_SUPPORTED is not enabled.
  1.2633 +  Revised Makefile.am and Makefile.in to simplify their maintenance.
  1.2634 +  Revised scripts/makefile.linux to install a link to libpng14.so.14.1
  1.2635 +
  1.2636 +Version 1.4.1beta02 [January 9, 2010]
  1.2637 +  Revised the rest of the makefiles to install a link to libpng14.so.14.1
  1.2638 +
  1.2639 +Version 1.4.1beta03 [January 10, 2010]
  1.2640 +  Removed png_set_premultiply_alpha() from scripts/*.def
  1.2641 +
  1.2642 +Version 1.4.1rc01 [January 16, 2010]
  1.2643 +  No changes.
  1.2644 +
  1.2645 +Version 1.4.1beta04 [January 23, 2010]
  1.2646 +  Revised png_decompress_chunk() to improve speed and memory usage when
  1.2647 +    decoding large chunks.
  1.2648 +  Added png_set|get_chunk_malloc_max() functions.
  1.2649 +
  1.2650 +Version 1.4.1beta05 [January 26, 2010]
  1.2651 +  Relocated "int k" declaration in pngtest.c to minimize its scope.
  1.2652 +
  1.2653 +Version 1.4.1beta06 [January 28, 2010]
  1.2654 +  Revised png_decompress_chunk() to use a two-pass method suggested by
  1.2655 +    John Bowler.
  1.2656 +
  1.2657 +Version 1.4.1beta07 [February 6, 2010]
  1.2658 +  Folded some long lines in the source files.
  1.2659 +  Added defineable PNG_USER_CHUNK_CACHE_MAX, PNG_USER_CHUNK_MALLOC_MAX,
  1.2660 +    and a PNG_USER_LIMITS_SUPPORTED flag.
  1.2661 +  Eliminated use of png_ptr->irowbytes and reused the slot in png_ptr as
  1.2662 +    png_ptr->png_user_chunk_malloc_max.
  1.2663 +  Revised png_push_save_buffer() to do fewer but larger png_malloc() calls.
  1.2664 +
  1.2665 +Version 1.4.1beta08 [February 6, 2010]
  1.2666 +  Minor cleanup and updating of dates and copyright year.
  1.2667 +
  1.2668 +Version 1.5.0beta01 [February 7, 2010]
  1.2669 +  Moved declaration of png_struct into private pngstruct.h and png_info
  1.2670 +    into pnginfo.h
  1.2671 +
  1.2672 +Version 1.4.1beta09 and 1.5.0beta02 [February 7, 2010]
  1.2673 +  Reverted to original png_push_save_buffer() code.
  1.2674 +
  1.2675 +Version 1.4.1beta10 and 1.5.0beta03 [February 8, 2010]
  1.2676 +  Return allocated "old_buffer" in png_push_save_buffer() before
  1.2677 +    calling png_error(), to avoid a potential memory leak.
  1.2678 +  Updated configure script to use SO number 15.
  1.2679 +
  1.2680 +Version 1.5.0beta04 [February 9, 2010]
  1.2681 +  Removed malformed "incomplete struct declaration" of png_info from png.h
  1.2682 +
  1.2683 +Version 1.5.0beta05 [February 12, 2010]
  1.2684 +  Removed PNG_DEPSTRUCT markup in pngstruct.h and pnginfo.h, and undid the
  1.2685 +    linewrapping that it entailed.
  1.2686 +  Revised comments in pngstruct.h and pnginfo.h and added pointers to
  1.2687 +    the libpng license.
  1.2688 +  Changed PNG_INTERNAL to PNG_EXPOSE_INTERNAL_STRUCTURES
  1.2689 +  Removed the cbuilder5 project, which has not been updated to 1.4.0.
  1.2690 +
  1.2691 +Version 1.4.1beta12 and 1.5.0beta06 [February 14, 2010]
  1.2692 +  Fixed type declaration of png_get_chunk_malloc_max() in pngget.c (Daisuke
  1.2693 +    Nishikawa)
  1.2694 +
  1.2695 +Version 1.5.0beta07 [omitted]
  1.2696 +
  1.2697 +Version 1.5.0beta08 [February 19, 2010]
  1.2698 +  Changed #ifdef PNG_NO_STDIO_SUPPORTED to #ifdef PNG_NO_CONSOLE_IO_SUPPORTED
  1.2699 +    wherever png_snprintf() is used to construct error and warning messages.
  1.2700 +  Noted in scripts/makefile.mingw that it expects to be run under MSYS.
  1.2701 +  Removed obsolete unused MMX-querying support from contrib/gregbook
  1.2702 +  Added exported png_longjmp() function.
  1.2703 +  Removed the AIX redefinition of jmpbuf in png.h
  1.2704 +  Added -D_ALLSOURCE in configure.ac, makefile.aix, and CMakeLists.txt
  1.2705 +    when building on AIX.
  1.2706 +
  1.2707 +Version 1.5.0beta09 [February 19, 2010]
  1.2708 +  Removed -D_ALLSOURCE from configure.ac, makefile.aix, and CMakeLists.txt.
  1.2709 +  Changed the name of png_ptr->jmpbuf to png_ptr->png_jmpbuf in pngstruct.h
  1.2710 +
  1.2711 +Version 1.5.0beta10 [February 25, 2010]
  1.2712 +  Removed unused gzio.c from contrib/pngminim gather and makefile scripts
  1.2713 +  Removed replacement error handlers from contrib/gregbook.  Because of
  1.2714 +    the new png_longjmp() function they are no longer needed.
  1.2715 +
  1.2716 +Version 1.5.0beta11 [March 6, 2010]
  1.2717 +  Removed checking for already-included setjmp.h from pngconf.h
  1.2718 +  Fixed inconsistent indentations and made numerous cosmetic changes.
  1.2719 +  Revised the "SEE ALSO" style of libpng.3, libpngpf.3, and png.5
  1.2720 +
  1.2721 +Version 1.5.0beta12 [March 9, 2010]
  1.2722 +  Moved "#include png.h" inside pngpriv.h and removed "#include png.h" from
  1.2723 +    the source files, along with "#define PNG_EXPOSE_INTERNAL_STRUCTURES"
  1.2724 +    and "#define PNG_NO_PEDANTIC_WARNINGS" (John Bowler).
  1.2725 +  Created new pngdebug.h and moved debug definitions there.
  1.2726 +
  1.2727 +Version 1.5.0beta13 [March 10, 2010]
  1.2728 +  Protect pngstruct.h, pnginfo.h, and pngdebug.h from being included twice.
  1.2729 +  Revise the "#ifdef" blocks in png_inflate() so it will compile when neither
  1.2730 +    PNG_USER_CHUNK_MALLOC_MAX nor PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
  1.2731 +    is defined.
  1.2732 +  Removed unused png_measure_compressed_chunk() from pngpriv.h and libpngpf.3
  1.2733 +  Moved the 'config.h' support from pngconf.h to pngpriv.h
  1.2734 +  Removed PNGAPI from the png_longjmp_ptr typedef.
  1.2735 +  Eliminated dependence of pngtest.c on the private pngdebug.h file.
  1.2736 +  Make all png_debug macros into *unterminated* statements or
  1.2737 +    expressions (i.e. a trailing ';' must always be added) and correct
  1.2738 +    the format statements in various png_debug messages.
  1.2739 +
  1.2740 +Version 1.5.0beta14 [March 14, 2010]
  1.2741 +  Removed direct access to png_ptr->io_ptr from the Windows code in pngtest.c
  1.2742 +  Revised Makefile.am to account for recent additions and replacements.
  1.2743 +  Corrected CE and OS/2 DEF files (scripts/png*def) for symbols removed and
  1.2744 +    added ordinal numbers to the Windows DEF file and corrected the duplicated
  1.2745 +    ordinal numbers on CE symbols that are commented out.
  1.2746 +  Added back in export symbols that can be present in the Windows build but
  1.2747 +    are disabled by default.
  1.2748 +  PNG_EXPORT changed to include an 'ordinal' field for DEF file generation.
  1.2749 +    PNG_CALLBACK added to make callback definitions uniform.  PNGAPI split
  1.2750 +    into PNGCAPI (base C form), PNGAPI (exports) and PNGCBAPI (callbacks),
  1.2751 +    and appropriate changes made to all files.  Cygwin builds re-hinged to
  1.2752 +    allow procedure call standard changes and to remove the need for the DEF
  1.2753 +    file (fixes build on Cygwin).
  1.2754 +  Enabled 'attribute' warnings that are relevant to library APIs and callbacks.
  1.2755 +  Changed rules for generation of the various symbol files and added a new
  1.2756 +    rule for a DEF file (which is also added to the distribution).
  1.2757 +  Updated the symbol file generation to stop it adding spurious spaces
  1.2758 +    to EOL (coming from preprocessor macro expansion).  Added a facility
  1.2759 +    to join tokens in the output and rewrite *.dfn to use this.
  1.2760 +  Eliminated scripts/*.def in favor of libpng.def; updated projects/visualc71
  1.2761 +    and removed scripts/makefile.cygwin.
  1.2762 +  Made PNG_BUILD_DLL safe: it can be set whenever a DLL is being built.
  1.2763 +  Removed the include of sys/types.h - apparently unnecessary now on the
  1.2764 +    platforms on which it happened (all but Mac OS and RISC OS).
  1.2765 +  Moved the Mac OS test into pngpriv.h (the only place it is used.)
  1.2766 +
  1.2767 +Version 1.5.0beta15 [March 17, 2010]
  1.2768 +  Added symbols.chk target to Makefile.am to validate the symbols in png.h
  1.2769 +    against the new DEF file scripts/symbols.def.
  1.2770 +  Changed the default DEF file back to pngwin.def.
  1.2771 +  Removed makefile.mingw.
  1.2772 +  Eliminated PNG_NO_EXTERN and PNG_ALL_EXTERN
  1.2773 +
  1.2774 +Version 1.5.0beta16 [April 1, 2010]
  1.2775 +  Make png_text_struct independent of PNG_iTXt_SUPPORTED, so that
  1.2776 +    fields are initialized in all configurations.  The READ/WRITE
  1.2777 +    macros (PNG_(READ|WRITE)_iTXt_SUPPORTED) still function as
  1.2778 +    before to disable code to actually read or write iTXt chunks
  1.2779 +    and iTXt_SUPPORTED can be used to detect presence of either
  1.2780 +    read or write support (but it is probably better to check for
  1.2781 +    the one actually required - read or write.)
  1.2782 +  Combined multiple png_warning() calls for a single error.
  1.2783 +  Restored the macro definition of png_check_sig().
  1.2784 +
  1.2785 +Version 1.5.0beta17 [April 17, 2010]
  1.2786 +  Added some "(long)" typecasts to printf calls in png_handle_cHRM().
  1.2787 +  Documented the fact that png_set_dither() was disabled since libpng-1.4.0.
  1.2788 +  Reenabled png_set_dither() but renamed it to png_set_quantize() to reflect
  1.2789 +    more accurately what it actually does.  At the same time, renamed
  1.2790 +    the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros to
  1.2791 +    PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS.
  1.2792 +  Added some "(long)" typecasts to printf calls in png_handle_cHRM().
  1.2793 +  Freeze build-time only configuration in the build.
  1.2794 +    In all prior versions of libpng most configuration options
  1.2795 +    controlled by compiler #defines had to be repeated by the
  1.2796 +    application code that used libpng.  This patch changes this
  1.2797 +    so that compilation options that can only be changed at build
  1.2798 +    time are frozen in the build.  Options that are compiler
  1.2799 +    dependent (and those that are system dependent) are evaluated
  1.2800 +    each time - pngconf.h holds these.  Options that can be changed
  1.2801 +    per-file in the application are in png.h.  Frozen options are
  1.2802 +    in the new installed header file pnglibconf.h (John Bowler)
  1.2803 +  Removed the xcode project because it has not been updated to work
  1.2804 +    with libpng-1.5.0.
  1.2805 +  Removed the ability to include optional pngusr.h
  1.2806 +
  1.2807 +Version 1.5.0beta18 [April 17, 2010]
  1.2808 +  Restored the ability to include optional pngusr.h
  1.2809 +  Moved replacements for png_error() and png_warning() from the
  1.2810 +    contrib/pngminim project to pngerror.c, for use when warnings or
  1.2811 +    errors are disabled via PNG_NO_WARN or PNG_NO_ERROR_TEXT, to avoid
  1.2812 +    storing unneeded error/warning text.
  1.2813 +  Updated contrib/pngminim project to work with the new pnglibconf.h
  1.2814 +  Added some PNG_NO_* defines to contrib/pngminim/*/pngusr.h to save space.
  1.2815 +
  1.2816 +Version 1.5.0beta19 [April 24, 2010]
  1.2817 +  Added PNG_{READ,WRITE}_INT_FUNCTIONS_SUPPORTED.  This allows the functions
  1.2818 +    to read and write ints to be disabled independently of PNG_USE_READ_MACROS,
  1.2819 +    which allows libpng to be built with the functions even though the default
  1.2820 +    is to use the macros - this allows applications to choose at app build
  1.2821 +    time whether or not to use macros (previously impossible because the
  1.2822 +    functions weren't in the default build.)
  1.2823 +  Changed Windows calling convention back to __cdecl for API functions.
  1.2824 +    For Windows/x86 platforms only:
  1.2825 +      __stdcall is no longer needed for Visual Basic, so libpng-1.5.0 uses
  1.2826 +      __cdecl throughout (both API functions and callbacks) on Windows/x86
  1.2827 +      platforms.
  1.2828 +  Replaced visualc6 and visualc71 projects with new vstudio project
  1.2829 +  Relaxed the overly-restrictive permissions of some files.
  1.2830 +
  1.2831 +Version 1.5.0beta20 [April 24, 2010]
  1.2832 +  Relaxed more overly-restrictive permissions of some files.
  1.2833 +
  1.2834 +Version 1.5.0beta21 [April 27, 2010]
  1.2835 +  Removed some unwanted binary bytes and changed CRLF to NEWLINE in the new
  1.2836 +    vstudio project files, and some trivial editing of some files in the
  1.2837 +    scripts directory.
  1.2838 +  Set PNG_NO_READ_BGR, PNG_NO_IO_STATE, and PNG_NO_TIME_RFC1123 in
  1.2839 +    contrib/pngminim/decoder/pngusr.h to make a smaller decoder application.
  1.2840 +
  1.2841 +Version 1.5.0beta22 [April 28, 2010]
  1.2842 +  Fixed dependencies of GET_INT_32 - it does not require READ_INT_FUNCTIONS
  1.2843 +    because it has a macro equivalent.
  1.2844 +  Improved the options.awk script; added an "everything off" option.
  1.2845 +  Revised contrib/pngminim to use the "everything off" option in pngusr.dfa.
  1.2846 +
  1.2847 +Version 1.5.0beta23 [April 29, 2010]
  1.2848 +  Corrected PNG_REMOVED macro to take five arguments.
  1.2849 +    The macro was documented with two arguments (name,ordinal), however
  1.2850 +    the symbol checking .dfn files assumed five arguments.  The five
  1.2851 +    argument form seems more useful so it is changed to that.
  1.2852 +  Corrected PNG_UNKNOWN_CHUNKS_SUPPORTED to PNG_HANDLE_AS_UNKNOWN_SUPPORTED
  1.2853 +    in gregbook/readpng2.c
  1.2854 +  Corrected protection of png_get_user_transform_ptr. The API declaration in
  1.2855 +    png.h is removed if both READ and WRITE USER_TRANSFORM are turned off
  1.2856 +    but was left defined in pngtrans.c
  1.2857 +  Added logunsupported=1 to cause pnglibconf.h to document disabled options.
  1.2858 +    This makes the installed pnglibconf.h more readable but causes no
  1.2859 +    other change.  The intention is that users of libpng will find it
  1.2860 +    easier to understand if an API they need is missing.
  1.2861 +  Include png_reset_zstream() in png.c only when PNG_READ_SUPPORTED is defined.
  1.2862 +  Removed dummy_inflate.c from contrib/pngminim/encoder
  1.2863 +  Removed contrib/pngminim/*/gather.sh; gathering is now done in the makefile.
  1.2864 +
  1.2865 +Version 1.5.0beta24 [May 7, 2010]
  1.2866 +  Use bitwise "&" instead of arithmetic mod in pngrutil.c calculation of the
  1.2867 +    offset of the png_ptr->rowbuf pointer into png_ptr->big_row_buf.
  1.2868 +  Added more blank lines for readability.
  1.2869 +
  1.2870 +Version 1.5.0beta25 [June 18, 2010]
  1.2871 +  In pngpread.c: png_push_have_row() add check for new_row > height
  1.2872 +  Removed the now-redundant check for out-of-bounds new_row from example.c
  1.2873 +
  1.2874 +Version 1.5.0beta26 [June 18, 2010]
  1.2875 +  In pngpread.c: png_push_process_row() add check for too many rows.
  1.2876 +
  1.2877 +Version 1.5.0beta27 [June 18, 2010]
  1.2878 +  Removed the check added in beta25 as it is now redundant.
  1.2879 +
  1.2880 +Version 1.5.0beta28 [June 20, 2010]
  1.2881 +  Rewrote png_process_IDAT_data to consistently treat extra data as warnings
  1.2882 +    and handle end conditions more cleanly.
  1.2883 +  Removed the new (beta26) check in png_push_process_row().
  1.2884 +
  1.2885 +Version 1.5.0beta29 [June 21, 2010]
  1.2886 +  Revised scripts/options.awk to work on Sunos (but still doesn't work)
  1.2887 +  Added comment to options.awk and contrib/pngminim/*/makefile to try nawk.
  1.2888 +
  1.2889 +Version 1.5.0beta30 [June 22, 2010]
  1.2890 +  Stop memory leak when reading a malformed sCAL chunk.
  1.2891 +
  1.2892 +Version 1.5.0beta31 [June 26, 2010]
  1.2893 +  Revised pngpread.c patch of beta28 to avoid an endless loop.
  1.2894 +  Removed some trailing blanks.
  1.2895 +
  1.2896 +Version 1.5.0beta32 [June 26, 2010]
  1.2897 +  Removed leftover scripts/options.patch and scripts/options.rej
  1.2898 +
  1.2899 +Version 1.5.0beta33 [July 6, 3010]
  1.2900 +  Made FIXED and FLOATING options consistent in the APIs they enable and
  1.2901 +    disable.  Corrected scripts/options.awk to handle both command line
  1.2902 +    options and options specified in the .dfa files.
  1.2903 +  Changed char *msg to PNG_CONST char *msg in pngrutil.c
  1.2904 +  Make png_set_sRGB_gAMA_and_cHRM set values using either the fixed or
  1.2905 +    floating point APIs, but not both.
  1.2906 +  Reversed patch to remove error handler when the jmp_buf is stored in the
  1.2907 +    main program structure, not the png_struct.
  1.2908 +    The error handler is needed because the default handler in libpng will
  1.2909 +    always use the jmp_buf in the library control structure; this is never
  1.2910 +    set.  The gregbook code is a useful example because, even though it
  1.2911 +    uses setjmp/longjmp, it shows how error handling can be implemented
  1.2912 +    using control mechanisms not directly supported by libpng.  The
  1.2913 +    technique will work correctly with mechanisms such as Microsoft
  1.2914 +    Structure Exceptions or C++ exceptions (compiler willing - note that gcc
  1.2915 +    does not by default support interworking of C and C++ error handling.)
  1.2916 +  Reverted changes to call png_longjmp in contrib/gregbook where it is not
  1.2917 +    appropriate.  If mainprog->jmpbuf is used by setjmp, then png_longjmp
  1.2918 +    cannot be used.
  1.2919 +  Changed "extern PNG_EXPORT" to "PNG_EXPORT" in png.h (Jan Nijtmans)
  1.2920 +  Changed "extern" to "PNG_EXTERN" in pngpriv.h (except for the 'extern "C" {')
  1.2921 +
  1.2922 +Version 1.5.0beta34 [July 12, 2010]
  1.2923 +  Put #ifndef PNG_EXTERN, #endif around the define PNG_EXTERN in pngpriv.h
  1.2924 +
  1.2925 +Version 1.5.0beta35 [July 24, 2010]
  1.2926 +  Removed some newly-added TAB characters.
  1.2927 +  Added -DNO_PNG_SNPRINTF to CFLAGS in scripts/makefile.dj2
  1.2928 +  Moved the definition of png_snprintf() outside of the enclosing
  1.2929 +    #ifdef blocks in pngconf.h
  1.2930 +
  1.2931 +Version 1.5.0beta36 [July 29, 2010]
  1.2932 +  Patches by John Bowler:
  1.2933 +  Fixed point APIs are now supported throughout (no missing APIs).
  1.2934 +  Internal fixed point arithmetic support exists for all internal floating
  1.2935 +    point operations.
  1.2936 +  sCAL validates the floating point strings it is passed.
  1.2937 +  Safe, albeit rudimentary, Watcom support is provided by PNG_API_RULE==2
  1.2938 +  Two new APIs exist to get the number of passes without turning on the
  1.2939 +    PNG_INTERLACE transform and to get the number of rows in the current
  1.2940 +    pass.
  1.2941 +  A new test program, pngvalid.c, validates the gamma code.
  1.2942 +  Errors in the 16-bit gamma correction (overflows) have been corrected.
  1.2943 +  cHRM chunk testing is done consistently (previously the floating point
  1.2944 +    API bypassed it, because the test really didn't work on FP, now the test
  1.2945 +    is performed on the actual values to be stored in the PNG file so it
  1.2946 +    works in the FP case too.)
  1.2947 +  Most floating point APIs now simply call the fixed point APIs after
  1.2948 +    converting the values to the fixed point form used in the PNG file.
  1.2949 +  The standard headers no longer include zlib.h, which is currently only
  1.2950 +    required for pngstruct.h and can therefore be internal.
  1.2951 +  Revised png_get_int_32 to undo the PNG two's complement representation of
  1.2952 +    negative numbers.
  1.2953 +
  1.2954 +Version 1.5.0beta37 [July 30, 2010]
  1.2955 +  Added a typecast in png_get_int_32() in png.h and pngrutil.h to avoid
  1.2956 +    a compiler warning.
  1.2957 +  Replaced oFFs 0,0 with oFFs -10,20 in pngtest.png
  1.2958 +
  1.2959 +Version 1.5.0beta38 [July 31, 2010]
  1.2960 +  Implemented remaining "_fixed" functions.
  1.2961 +  Corrected a number of recently introduced warnings mostly resulting from
  1.2962 +    safe but uncast assignments to shorter integers.  Also added a zlib
  1.2963 +    VStudio release library project because the latest zlib Official Windows
  1.2964 +    build does not include such a thing.
  1.2965 +  Revised png_get_int_16() to be similar to png_get_int_32().
  1.2966 +  Restored projects/visualc71.
  1.2967 +
  1.2968 +Version 1.5.0beta39 [August 2, 2010]
  1.2969 +  VisualC/GCC warning fixes, VisualC build fixes
  1.2970 +  The changes include support for function attributes in VC in addition to
  1.2971 +    those already present in GCC - necessary because without these some
  1.2972 +    warnings are unavoidable.  Fixes include signed/unsigned fixes in
  1.2973 +    pngvalid and checks with gcc -Wall -Wextra -Wunused.
  1.2974 +  VC requires function attributes on function definitions as well as
  1.2975 +    declarations, PNG_FUNCTION has been added to enable this and the
  1.2976 +    relevant function definitions changed.
  1.2977 +
  1.2978 +Version 1.5.0beta40 [August 6, 2010]
  1.2979 +  Correct use of _WINDOWS_ in pngconf.h
  1.2980 +  Removed png_mem_ #defines; they are no longer used.
  1.2981 +  Added the sRGB chunk to pngtest.png
  1.2982 +
  1.2983 +Version 1.5.0beta41 [August 11, 2010]
  1.2984 +  Added the cHRM chunk to pngtest.png
  1.2985 +  Don't try to use version-script with cygwin/mingw.
  1.2986 +  Revised contrib/gregbook to work under cygwin/mingw.
  1.2987 +
  1.2988 +Version 1.5.0beta42 [August 18, 2010]
  1.2989 +  Add .dll.a to the list of extensions to be symlinked by Makefile.am (Yaakov)
  1.2990 +  Made all API functions that have const arguments and constant string
  1.2991 +    literal pointers declare them (John Bowler).
  1.2992 +
  1.2993 +Version 1.5.0beta43 [August 20, 2010]
  1.2994 +  Removed spurious tabs, shorten long lines (no source change)
  1.2995 +    Also added scripts/chkfmt to validate the format of all the files that can
  1.2996 +    reasonably be validated (it is suggested to run "make distclean" before
  1.2997 +    checking, because some machine generated files have long lines.)
  1.2998 +  Reformatted the CHANGES file to be more consistent throughout.
  1.2999 +  Made changes to address various issues identified by GCC, mostly
  1.3000 +    signed/unsigned and shortening problems on assignment but also a few
  1.3001 +    difficult to optimize (for GCC) loops.
  1.3002 +  Fixed non-GCC fixed point builds.  In png.c a declaration was misplaced
  1.3003 +    in an earlier update.  Fixed to declare the auto variables at the head.
  1.3004 +  Use cexcept.h in pngvalid.c.
  1.3005 +
  1.3006 +Version 1.5.0beta44 [August 24, 2010]
  1.3007 +  Updated CMakeLists.txt to use CMAKE_INSTALL_LIBDIR variable; useful for
  1.3008 +    installing libpng in /usr/lib64 (Funda Wang).
  1.3009 +  Revised CMakeLists.txt to put the man pages in share/man/man* not man/man*
  1.3010 +  Revised CMakeLists.txt to make symlinks instead of copies when installing.
  1.3011 +  Changed PNG_LIB_NAME from pngNN to libpngNN in CMakeLists.txt (Philip Lowman)
  1.3012 +  Implemented memory checks within pngvalid
  1.3013 +  Reformatted/rearranged pngvalid.c to assist use of progressive reader.
  1.3014 +  Check interlaced images in pngvalid
  1.3015 +  Clarified pngusr.h comments in pnglibconf.dfa
  1.3016 +  Simplified the pngvalid error-handling code now that cexcept.h is in place.
  1.3017 +  Implemented progressive reader in pngvalid.c for standard tests
  1.3018 +  Implemented progressive read in pngvalid.c gamma tests
  1.3019 +  Turn on progressive reader in pngvalid.c by default and tidy code.
  1.3020 +
  1.3021 +Version 1.5.0beta45 [August 26, 2010]
  1.3022 +  Added an explicit make step to projects/vstudio for pnglibconf.h
  1.3023 +    Also corrected zlib.vcxproj into which Visual Studio had introduced
  1.3024 +    what it calls an "authoring error".  The change to make pnglibconf.h
  1.3025 +    simply copies the file; in the future it may actually generate the
  1.3026 +    file from scripts/pnglibconf.dfa as the other build systems do.
  1.3027 +  Changed pngvalid to work when floating point APIs are disabled
  1.3028 +  Renamed the prebuilt scripts/pnglibconf.h to scripts/pnglibconf.h.prebuilt
  1.3029 +  Supply default values for PNG_USER_PRIVATEBUILD and PNG_USER_DLLFNAME_POSTFIX
  1.3030 +    in pngpriv.h in case the user neglected to define them in their pngusr.h
  1.3031 +
  1.3032 +Version 1.5.0beta46 [August 28, 2010]
  1.3033 +  Added new private header files to libpng_sources in CMakeLists.txt
  1.3034 +  Added PNG_READ_16BIT, PNG_WRITE_16BIT, and PNG_16BIT options.
  1.3035 +  Added reference to scripts/pnglibconf.h.prebuilt in the visualc71 project.
  1.3036 +
  1.3037 +Version 1.5.0beta47 [September 11, 2010]
  1.3038 +  Fixed a number of problems with 64-bit compilation reported by Visual
  1.3039 +    Studio 2010 (John Bowler).
  1.3040 +
  1.3041 +Version 1.5.0beta48 [October 4, 2010]
  1.3042 +  Updated CMakeLists.txt (Philip Lowman).
  1.3043 +  Revised autogen.sh to recognize and use $AUTOCONF, $AUTOMAKE, $AUTOHEADER,
  1.3044 +    $AUTOPOINT, $ACLOCAL and $LIBTOOLIZE
  1.3045 +  Fixed problem with symbols creation in Makefile.am which was assuming that
  1.3046 +    all versions of ccp write to standard output by default (Martin Banky). The
  1.3047 +    bug was introduced in libpng-1.2.9beta5.
  1.3048 +  Removed unused mkinstalldirs.
  1.3049 +
  1.3050 +Version 1.5.0beta49 [October 8, 2010]
  1.3051 +  Undid Makefile.am revision of 1.5.0beta48.
  1.3052 +
  1.3053 +Version 1.5.0beta50 [October 14, 2010]
  1.3054 +  Revised Makefile.in to account for mkinstalldirs being removed.
  1.3055 +  Added some "(unsigned long)" typecasts in printf statements in pngvalid.c.
  1.3056 +  Suppressed a compiler warning in png_handle_sPLT().
  1.3057 +  Check for out-of-range text compression mode in png_set_text().
  1.3058 +
  1.3059 +Version 1.5.0beta51 [October 15, 2010]
  1.3060 +  Changed embedded dates to "(PENDING RELEASE) in beta releases (and future
  1.3061 +    rc releases) to minimize the difference between releases.
  1.3062 +
  1.3063 +Version 1.5.0beta52 [October 16, 2010]
  1.3064 +  Restored some of the embedded dates (in png.h, png.c, documentation, etc.)
  1.3065 +
  1.3066 +Version 1.5.0beta53 [October 18, 2010]
  1.3067 +  Updated INSTALL to mention using "make maintainer-clean" and to remove
  1.3068 +    obsolete statement about a custom ltmain.sh
  1.3069 +  Disabled "color-tests" by default in Makefile.am so it will work with
  1.3070 +    automake versions earlier than 1.11.1
  1.3071 +  Use document name "libpng-manual.txt" instead of "libpng-<version>.txt"
  1.3072 +    to simplify version differences.
  1.3073 +  Removed obsolete remarks about setjmp handling from INSTALL.
  1.3074 +  Revised and renamed the typedef in png.h and png.c that was designed
  1.3075 +    to catch library and header mismatch.
  1.3076 +
  1.3077 +Version 1.5.0beta54 [November 10, 2010]
  1.3078 +  Require 48 bytes, not 64 bytes, for big_row_buf in overflow checks.
  1.3079 +  Used a consistent structure for the pngget.c functions.
  1.3080 +
  1.3081 +Version 1.5.0beta55 [November 21, 2010]
  1.3082 +  Revised png_get_uint_32, png_get_int_32, png_get_uint_16 (Cosmin)
  1.3083 +  Moved reading of file signature into png_read_sig (Cosmin)
  1.3084 +  Fixed atomicity of chunk header serialization (Cosmin)
  1.3085 +  Added test for io_state in pngtest.c (Cosmin)
  1.3086 +  Added "#!/bin/sh" at the top of contrib/pngminim/*/gather.sh scripts.
  1.3087 +  Changes to remove gcc warnings (John Bowler)
  1.3088 +    Certain optional gcc warning flags resulted in warnings in libpng code.
  1.3089 +    With these changes only -Wconversion and -Wcast-qual cannot be turned on.
  1.3090 +    Changes are trivial rearrangements of code.  -Wconversion is not possible
  1.3091 +    for pngrutil.c (because of the widespread use of += et al on variables
  1.3092 +    smaller than (int) or (unsigned int)) and -Wcast-qual is not possible
  1.3093 +    with pngwio.c and pngwutil.c because the 'write' callback and zlib
  1.3094 +    compression both fail to declare their input buffers with 'const'.
  1.3095 +
  1.3096 +Version 1.5.0beta56 [December 7, 2010]
  1.3097 +  Added the private PNG_UNUSED() macro definition in pngpriv.h.
  1.3098 +  Added some commentary about PNG_EXPORT in png.h and pngconf.h
  1.3099 +  Revised PNG_EXPORT() macro and added PNG_EXPORTA() macro, with the
  1.3100 +    objective of simplifying and improving the cosmetic appearance of png.h.
  1.3101 +  Fixed some incorrect "=" macro names in pnglibconf.dfa
  1.3102 +  Included documentation of changes in 1.5.0 from 1.4.x in libpng-manual.txt
  1.3103 +
  1.3104 +Version 1.5.0beta57 [December 9, 2010]
  1.3105 +  Documented the pngvalid gamma error summary with additional comments and
  1.3106 +    print statements.
  1.3107 +  Improved missing symbol handling in checksym.awk; symbols missing in both
  1.3108 +    the old and new files can now be optionally ignored, treated as errors
  1.3109 +    or warnings.
  1.3110 +  Removed references to pngvcrd.c and pnggccrd.c from the vstudio project.
  1.3111 +  Updated "libpng14" to "libpng15" in the visualc71 project.
  1.3112 +  Enabled the strip16 tests in pngvalid.`
  1.3113 +  Don't display test results (except PASS/FAIL) when running "make test".
  1.3114 +    Instead put them in pngtest-log.txt
  1.3115 +  Added "--with-zprefix=<string>" to configure.ac
  1.3116 +  Updated the prebuilt configuration files to autoconf version 2.68
  1.3117 +
  1.3118 +Version 1.5.0beta58 [December 19, 2010]
  1.3119 +  Fixed interlace image handling and add test cases (John Bowler)
  1.3120 +  Fixed the clean rule in Makefile.am to remove pngtest-log.txt
  1.3121 +  Made minor changes to work around warnings in gcc 3.4
  1.3122 +
  1.3123 +Version 1.5.0rc01 [December 27, 2010]
  1.3124 +  No changes.
  1.3125 +
  1.3126 +Version 1.5.0rc02 [December 27, 2010]
  1.3127 +  Eliminated references to the scripts/*.def files in project/visualc71.
  1.3128 +
  1.3129 +Version 1.5.0rc03 [December 28, 2010]
  1.3130 +  Eliminated scripts/*.def and revised Makefile.am accordingly
  1.3131 +
  1.3132 +Version 1.5.0rc04 [December 29, 2010]
  1.3133 +  Fixed bug in background transformation handling in pngrtran.c (it was
  1.3134 +    looking for the flag in png_ptr->transformations instead of in
  1.3135 +    png_ptr->flags) (David Raymond).
  1.3136 +
  1.3137 +Version 1.5.0rc05 [December 31, 2010]
  1.3138 +  Fixed typo in a comment in CMakeLists.txt (libpng14 => libpng15) (Cosmin)
  1.3139 +
  1.3140 +Version 1.5.0rc06 [January 4, 2011]
  1.3141 +  Changed the new configure option "zprefix=string" to "zlib-prefix=string"
  1.3142 +
  1.3143 +Version 1.5.0rc07 [January 4, 2011]
  1.3144 +  Updated copyright year.
  1.3145 +
  1.3146 +Version 1.5.0 [January 6, 2011]
  1.3147 +  No changes.
  1.3148 +
  1.3149 +version 1.5.1beta01 [January 8, 2011]
  1.3150 +  Added description of png_set_crc_action() to the manual.
  1.3151 +  Added a note in the manual that the type of the iCCP profile was changed
  1.3152 +    from png_charpp to png_bytepp in png_get_iCCP().  This change happened
  1.3153 +    in version 1.5.0beta36 but is not noted in the CHANGES.  Similarly,
  1.3154 +    it was changed from png_charpp to png_const_bytepp in png_set_iCCP().
  1.3155 +  Ensure that png_rgb_to_gray ignores palette mapped images, if libpng
  1.3156 +    internally happens to call it with one, and fixed a failure to handle
  1.3157 +    palette mapped images correctly.  This fixes CVE-2690.
  1.3158 +
  1.3159 +Version 1.5.1beta02 [January 14, 2011]
  1.3160 +  Fixed a bug in handling of interlaced images (bero at arklinux.org).
  1.3161 +  Updated CMakeLists.txt (Clifford Yapp)
  1.3162 +
  1.3163 +Version 1.5.1beta03 [January 14, 2011]
  1.3164 +  Fixed typecasting of some png_debug() statements (Cosmin)
  1.3165 +
  1.3166 +Version 1.5.1beta04 [January 16, 2011]
  1.3167 +  Updated documentation of png_set|get_tRNS() (Thomas Klausner).
  1.3168 +  Mentioned in the documentation that applications must #include "zlib.h"
  1.3169 +    if they need access to anything in zlib.h, and that a number of
  1.3170 +    macros such as png_memset() are no longer accessible by applications.
  1.3171 +  Corrected pngvalid gamma test "sample" function to access all of the color
  1.3172 +    samples of each pixel, instead of sampling the red channel three times.
  1.3173 +  Prefixed variable names index, div, exp, gamma with "png_" to avoid "shadow"
  1.3174 +    warnings, and (mistakenly) changed png_exp() to exp().
  1.3175 +
  1.3176 +Version 1.5.1beta05 [January 16, 2011]
  1.3177 +  Changed variable names png_index, png_div, png_exp, and png_gamma to
  1.3178 +    char_index, divisor, exp_b10, and gamma_val, respectively, and
  1.3179 +    changed exp() back to png_exp().
  1.3180 +
  1.3181 +Version 1.5.1beta06 [January 20, 2011]
  1.3182 +  Prevent png_push_crc_skip() from hanging while reading an unknown chunk
  1.3183 +    or an over-large compressed zTXt chunk with the progressive reader.
  1.3184 +  Eliminated more GCC "shadow" warnings.
  1.3185 +  Revised png_fixed() in png.c to avoid compiler warning about reaching the
  1.3186 +    end without returning anything.
  1.3187 +
  1.3188 +Version 1.5.1beta07 [January 22, 2011]
  1.3189 +  In the manual, describe the png_get_IHDR() arguments in the correct order.
  1.3190 +  Added const_png_structp and const_png_infop types, and used them in
  1.3191 +    prototypes for most png_get_*() functions.
  1.3192 +
  1.3193 +Version 1.5.1beta08 [January 23, 2011]
  1.3194 +  Added png_get_io_chunk_type() and deprecated png_get_io_chunk_name()
  1.3195 +  Added synopses for the IO_STATE functions and other missing synopses
  1.3196 +    to the manual. Removed the synopses from libpngpf.3 because they
  1.3197 +    were out of date and no longer useful.  Better information can be
  1.3198 +    obtained by reading the prototypes and comments in pngpriv.h
  1.3199 +  Attempted to fix cpp on Solaris with S. Studio 12 cc, fix build
  1.3200 +    Added a make macro DFNCPP that is a CPP that will accept the tokens in
  1.3201 +    a .dfn file and adds configure stuff to test for such a CPP.  ./configure
  1.3202 +    should fail if one is not available.
  1.3203 +  Corrected const_png_ in png.h to png_const_ to avoid polluting the namespace.
  1.3204 +  Added png_get_current_row_number and png_get_current_pass_number for the
  1.3205 +    benefit of the user transform callback.
  1.3206 +  Added png_process_data_pause and png_process_data_skip for the benefit of
  1.3207 +    progressive readers that need to stop data processing or want to optimize
  1.3208 +    skipping of unread data (e.g., if the reader marks a chunk to be skipped.)
  1.3209 +
  1.3210 +Version 1.5.1beta09 [January 24, 2011]
  1.3211 +  Enhanced pngvalid, corrected an error in gray_to_rgb, corrected doc error.
  1.3212 +    pngvalid contains tests of transforms, which tests are currently disabled
  1.3213 +    because they are incompletely tested.  gray_to_rgb was failing to expand
  1.3214 +    the bit depth for smaller bit depth images; this seems to be a long
  1.3215 +    standing error and resulted, apparently, in invalid output
  1.3216 +    (CVE-2011-0408, CERT VU#643140).  The documentation did not accurately
  1.3217 +    describe what libpng really does when converting RGB to gray.
  1.3218 +
  1.3219 +Version 1.5.1beta10 [January 27, 2010]
  1.3220 +  Fixed incorrect examples of callback prototypes in the manual, that were
  1.3221 +    introduced in libpng-1.0.0.
  1.3222 +  In addition the order of the png_get_uint macros with respect to the
  1.3223 +    relevant function definitions has been reversed.  This helps the
  1.3224 +    preprocessing of the symbol files be more robust.  Furthermore, the
  1.3225 +    symbol file preprocessing now uses -DPNG_NO_USE_READ_MACROS even when
  1.3226 +    the library may actually be built with PNG_USE_READ_MACROS; this stops
  1.3227 +    the read macros interfering with the symbol file format.
  1.3228 +  Made the manual, synopses, and function prototypes use the function
  1.3229 +    argument names file_gamma, int_file_gamma, and srgb_intent consistently.
  1.3230 +
  1.3231 +Version 1.5.1beta11 [January 28, 2011]
  1.3232 +  Changed PNG_UNUSED from "param=param;" to "{if(param){}}".
  1.3233 +  Corrected local variable type in new API png_process_data_skip()
  1.3234 +    The type was self-evidently incorrect but only causes problems on 64-bit
  1.3235 +    architectures.
  1.3236 +  Added transform tests to pngvalid and simplified the arguments.
  1.3237 +
  1.3238 +Version 1.5.1rc01 [January 29, 2011]
  1.3239 +  No changes.
  1.3240 +
  1.3241 +Version 1.5.1rc02 [January 31, 2011]
  1.3242 +  Added a request in the manual that applications do not use "png_" or
  1.3243 +    "PNG_" to begin any of their own symbols.
  1.3244 +  Changed PNG_UNUSED to "(void)param;" and updated the commentary in pngpriv.h
  1.3245 +
  1.3246 +Version 1.5.1 [February 3, 2011]
  1.3247 +  No changes.
  1.3248 +
  1.3249 +Version 1.5.2beta01 [February 13, 2011]
  1.3250 +  More -Wshadow fixes for older gcc compilers.  Older gcc versions apparently
  1.3251 +    check formal parameters names in function declarations (as well as
  1.3252 +    definitions) to see if they match a name in the global namespace.
  1.3253 +  Revised PNG_EXPORTA macro to not use an empty parameter, to accommodate the
  1.3254 +    old VisualC++ preprocessor.
  1.3255 +  Turned on interlace handling in png_read_png().
  1.3256 +  Fixed gcc pendantic warnings.
  1.3257 +  Handle longjmp in Cygwin.
  1.3258 +  Fixed png_get_current_row_number() in the interlaced case.
  1.3259 +  Cleaned up ALPHA flags and transformations.
  1.3260 +  Implemented expansion to 16 bits.
  1.3261 +
  1.3262 +Version 1.5.2beta02 [February 19, 2011]
  1.3263 +  Fixed mistake in the descriptions of user read_transform and write_transform
  1.3264 +    function prototypes in the manual.  The row_info struct is png_row_infop.
  1.3265 +  Reverted png_get_current_row_number() to previous (1.5.2beta01) behavior.
  1.3266 +  Corrected png_get_current_row_number documentation
  1.3267 +  Fixed the read/write row callback documentation.
  1.3268 +    This documents the current behavior, where the callback is called after
  1.3269 +    every row with information pertaining to the next row.
  1.3270 +
  1.3271 +Version 1.5.2beta03 [March 3, 2011]
  1.3272 +  Fixed scripts/makefile.vcwin32
  1.3273 +  Updated contrib/pngsuite/README to add the word "modify".
  1.3274 +  Define PNG_ALLOCATED to blank when _MSC_VER<1300.
  1.3275 +
  1.3276 +Version 1.5.2rc01 [March 19, 2011]
  1.3277 +  Define remaining attributes to blank when MSC_VER<1300.
  1.3278 +  ifdef out mask arrays in pngread.c when interlacing is not supported.
  1.3279 +
  1.3280 +Version 1.5.2rc02 [March 22, 2011]
  1.3281 +  Added a hint to try CPP=/bin/cpp if "cpp -E" fails in scripts/pnglibconf.mak
  1.3282 +    and in contrib/pngminim/*/makefile, eg., on SunOS 5.10, and removed "strip"
  1.3283 +    from the makefiles.
  1.3284 +  Fixed a bug (present since libpng-1.0.7) that makes png_handle_sPLT() fail
  1.3285 +    to compile when PNG_NO_POINTER_INDEXING is defined (Chubanov Kirill)
  1.3286 +
  1.3287 +Version 1.5.2rc03 [March 24, 2011]
  1.3288 +  Don't include standard header files in png.h while building the symbol table,
  1.3289 +    to avoid cpp failure on SunOS (introduced PNG_BUILDING_SYMBOL_TABLE macro).
  1.3290 +
  1.3291 +Version 1.5.2 [March 31, 2011]
  1.3292 +  No changes.
  1.3293 +
  1.3294 +Version 1.5.3beta01 [April 1, 2011]
  1.3295 +  Re-initialize the zlib compressor before compressing non-IDAT chunks.
  1.3296 +  Added API functions (png_set_text_compression_level() and four others) to
  1.3297 +    set parameters for zlib compression of non-IDAT chunks.
  1.3298 +
  1.3299 +Version 1.5.3beta02 [April 3, 2011]
  1.3300 +  Updated scripts/symbols.def with new API functions.
  1.3301 +  Only compile the new zlib re-initializing code when text or iCCP is
  1.3302 +    supported, using PNG_WRITE_COMPRESSED_TEXT_SUPPORTED macro.
  1.3303 +  Improved the optimization of the zlib CMF byte (see libpng-1.2.6beta03).
  1.3304 +  Optimize the zlib CMF byte in non-IDAT compressed chunks
  1.3305 +
  1.3306 +Version 1.5.3beta03 [April 16, 2011]
  1.3307 +  Fixed gcc -ansi -pedantic compile. A strict ANSI system does not have
  1.3308 +    snprintf, and the "__STRICT_ANSI__" detects that condition more reliably
  1.3309 +    than __STDC__ (John Bowler).
  1.3310 +  Removed the PNG_PTR_NORETURN attribute because it too dangerous. It tells
  1.3311 +    the compiler that a user supplied callback (the error handler) does not
  1.3312 +    return, yet there is no guarantee in practice that the application code
  1.3313 +    will correctly implement the error handler because the compiler only
  1.3314 +    issues a warning if there is a mistake (John Bowler).
  1.3315 +  Removed the no-longer-used PNG_DEPSTRUCT macro.
  1.3316 +  Updated the zlib version to 1.2.5 in the VStudio project.
  1.3317 +  Fixed 64-bit builds where png_uint_32 is smaller than png_size_t in
  1.3318 +    pngwutil.c (John Bowler).
  1.3319 +  Fixed bug with stripping the filler or alpha channel when writing, that
  1.3320 +    was introduced in libpng-1.5.2beta01 (bug report by Andrew Church).
  1.3321 +
  1.3322 +Version 1.5.3beta04 [April 27, 2011]
  1.3323 +  Updated pngtest.png with the new zlib CMF optimization.
  1.3324 +  Cleaned up conditional compilation code and of background/gamma handling
  1.3325 +    Internal changes only except a new option to avoid compiling the
  1.3326 +    png_build_grayscale_palette API (which is not used at all internally.)
  1.3327 +    The main change is to move the transform tests (READ_TRANSFORMS,
  1.3328 +    WRITE_TRANSFORMS) up one level to the caller of the APIs.  This avoids
  1.3329 +    calls to spurious functions if all transforms are disabled and slightly
  1.3330 +    simplifies those functions.  Pngvalid modified to handle this.
  1.3331 +    A minor change is to stop the strip_16 and expand_16 interfaces from
  1.3332 +    disabling each other; this allows the future alpha premultiplication
  1.3333 +    code to use 16-bit intermediate values while still producing 8-bit output.
  1.3334 +    png_do_background and png_do_gamma have been simplified to take a single
  1.3335 +    pointer to the png_struct rather than pointers to every item required
  1.3336 +    from the png_struct. This makes no practical difference to the internal
  1.3337 +    code.
  1.3338 +  A serious bug in the pngvalid internal routine 'standard_display_init' has
  1.3339 +    been fixed - this failed to initialize the red channel and accidentally
  1.3340 +    initialized the alpha channel twice.
  1.3341 +  Changed png_struct jmp_buf member name from png_jmpbuf to tmp_jmpbuf to
  1.3342 +    avoid a possible clash with the png_jmpbuf macro on some platforms.
  1.3343 +
  1.3344 +Version 1.5.3beta05 [May 6, 2011]
  1.3345 +  Added the "_POSIX_SOURCE" feature test macro to ensure libpng sees the
  1.3346 +    correct API. _POSIX_SOURCE is defined in pngpriv.h, pngtest.c and
  1.3347 +    pngvalid.c to ensure that POSIX conformant systems disable non-POSIX APIs.
  1.3348 +  Removed png_snprintf and added formatted warning messages.  This change adds
  1.3349 +    internal APIs to allow png_warning messages to have parameters without
  1.3350 +    requiring the host OS to implement snprintf.  As a side effect the
  1.3351 +    dependency of the tIME-supporting RFC1132 code on stdio is removed and
  1.3352 +    PNG_NO_WARNINGS does actually work now.
  1.3353 +  Pass "" instead of '\0' to png_default_error() in png_err().  This mistake
  1.3354 +    was introduced in libpng-1.2.20beta01.  This fixes CVE-2011-2691.
  1.3355 +  Added PNG_WRITE_OPTIMIZE_CMF_SUPPORTED macro to make the zlib "CMF" byte
  1.3356 +    optimization configureable.
  1.3357 +  IDAT compression failed if preceded by a compressed text chunk (bug
  1.3358 +    introduced in libpng-1.5.3beta01-02).  This was because the attempt to
  1.3359 +    reset the zlib stream in png_write_IDAT happened after the first IDAT
  1.3360 +    chunk had been deflated - much too late.  In this change internal
  1.3361 +    functions were added to claim/release the z_stream and, hopefully, make
  1.3362 +    the code more robust.  Also deflateEnd checking is added - previously
  1.3363 +    libpng would ignore an error at the end of the stream.
  1.3364 +
  1.3365 +Version 1.5.3beta06 [May 8, 2011]
  1.3366 +  Removed the -D_ALL_SOURCE from definitions for AIX in CMakeLists.txt
  1.3367 +  Implemented premultiplied alpha support: png_set_alpha_mode API
  1.3368 +
  1.3369 +Version 1.5.3beta07 [May 11, 2011]
  1.3370 +  Added expand_16 support to the high level interface.
  1.3371 +  Added named value and 'flag' gamma support to png_set_gamma.  Made a minor
  1.3372 +    change from the previous (unreleased) ABI/API to hide the exact value used
  1.3373 +    for Macs - it's not a good idea to embed this in the ABI!
  1.3374 +  Moved macro definitions for PNG_HAVE_IHDR, PNG_HAVE_PLTE, and PNG_AFTER_IDAT
  1.3375 +    from pngpriv.h to png.h because they must be visible to applications
  1.3376 +    that call png_set_unknown_chunks().
  1.3377 +  Check for up->location !PNG_AFTER_IDAT when writing unknown chunks
  1.3378 +    before IDAT.
  1.3379 +
  1.3380 +Version 1.5.3beta08 [May 16, 2011]
  1.3381 +  Improved "pngvalid --speed" to exclude more of pngvalid from the time.
  1.3382 +  Documented png_set_alpha_mode(), other changes in libpng.3/libpng-manual.txt
  1.3383 +  The cHRM chunk now sets the defaults for png_set_rgb_to_gray() (when negative
  1.3384 +    parameters are supplied by the caller), while in the absence of cHRM
  1.3385 +    sRGB/Rec 709 values are still used.  This introduced a divide-by-zero
  1.3386 +    bug in png_handle_cHRM().
  1.3387 +  The bKGD chunk no longer overwrites the background value set by
  1.3388 +    png_set_background(), allowing the latter to be used before the file
  1.3389 +    header is read. It never performed any useful function to override
  1.3390 +    the default anyway.
  1.3391 +  Added memory overwrite and palette image checks to pngvalid.c
  1.3392 +    Previously palette image code was poorly checked. Since the transformation
  1.3393 +    code has a special palette path in most cases this was a severe weakness.
  1.3394 +  Minor cleanup and some extra checking in pngrutil.c and pngrtran.c. When
  1.3395 +    expanding an indexed image, always expand to RGBA if transparency is
  1.3396 +    present.
  1.3397 +
  1.3398 +Version 1.5.3beta09 [May 17, 2011]
  1.3399 +  Reversed earlier 1.5.3 change of transformation order; move png_expand_16
  1.3400 +    back where it was.  The change doesn't work because it requires 16-bit
  1.3401 +    gamma tables when the code only generates 8-bit ones.  This fails
  1.3402 +    silently; the libpng code just doesn't do any gamma correction.  Moving
  1.3403 +    the tests back leaves the old, inaccurate, 8-bit gamma calculations, but
  1.3404 +    these are clearly better than none!
  1.3405 +
  1.3406 +Version 1.5.3beta10 [May 20, 2011]
  1.3407 +
  1.3408 +  png_set_background() and png_expand_16() did not work together correctly.
  1.3409 +    This problem is present in 1.5.2; if png_set_background is called with
  1.3410 +    need_expand false and the matching 16 bit color libpng erroneously just
  1.3411 +    treats it as an 8-bit color because of where png_do_expand_16 is in the
  1.3412 +    transform list.  This simple fix reduces the supplied colour to 8-bits,
  1.3413 +    so it gets smashed, but this is better than the current behavior.
  1.3414 +  Added tests for expand16, more fixes for palette image tests to pngvalid.
  1.3415 +    Corrects the code for palette image tests and disables attempts to
  1.3416 +    validate palette colors.
  1.3417 +
  1.3418 +Version 1.5.3rc01 [June 3, 2011]
  1.3419 +  No changes.
  1.3420 +
  1.3421 +Version 1.5.3rc02 [June 8, 2011]
  1.3422 +  Fixed uninitialized memory read in png_format_buffer() (Bug report by
  1.3423 +    Frank Busse, CVE-2011-2501, related to CVE-2004-0421).
  1.3424 +
  1.3425 +Version 1.5.3beta11 [June 11, 2011]
  1.3426 +  Fixed png_handle_sCAL which is broken in 1.5. This fixes CVE 2011-2692.
  1.3427 +  Added sCAL to pngtest.png
  1.3428 +  Revised documentation about png_set_user_limits() to say that it also affects
  1.3429 +    png writing.
  1.3430 +  Revised handling of png_set_user_limits() so that it can increase the
  1.3431 +    limit beyond the PNG_USER_WIDTH|HEIGHT_MAX; previously it could only
  1.3432 +    reduce it.
  1.3433 +  Make the 16-to-8 scaling accurate. Dividing by 256 with no rounding is
  1.3434 +    wrong (high by one) 25% of the time. Dividing by 257 with rounding is
  1.3435 +    wrong in 128 out of 65536 cases. Getting the right answer all the time
  1.3436 +    without division is easy.
  1.3437 +  Added "_SUPPORTED" to the PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION macro.
  1.3438 +  Added projects/owatcom, an IDE project for OpenWatcom to replace
  1.3439 +    scripts/makefile.watcom.  This project works with OpenWatcom 1.9. The
  1.3440 +    IDE autogenerates appropriate makefiles (libpng.mk) for batch processing.
  1.3441 +    The project is configurable, unlike the Visual Studio project, so long
  1.3442 +    as the developer has an awk.
  1.3443 +  Changed png_set_gAMA to limit the gamma value range so that the inverse
  1.3444 +    of the stored value cannot overflow the fixed point representation,
  1.3445 +    and changed other things OpenWatcom warns about.
  1.3446 +  Revised pngvalid.c to test PNG_ALPHA_MODE_SUPPORTED correctly. This allows
  1.3447 +    pngvalid to build when ALPHA_MODE is not supported, which is required if
  1.3448 +    it is to build on libpng 1.4.
  1.3449 +  Removed string/memory macros that are no longer used and are not
  1.3450 +    necessarily fully supportable, particularly png_strncpy and png_snprintf.
  1.3451 +  Added log option to pngvalid.c and attempted to improve gamma messages.
  1.3452 +
  1.3453 +Version 1.5.3 [omitted]
  1.3454 +  People found the presence of a beta release following an rc release
  1.3455 +    to be confusing; therefore we bump the version to libpng-1.5.4beta01
  1.3456 +    and there will be no libpng-1.5.3 release.
  1.3457 +
  1.3458 +Version 1.5.4beta01 [June 14, 2011]
  1.3459 +  Made it possible to undefine PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
  1.3460 +    to get the same (inaccurate) output as libpng-1.5.2 and earlier.
  1.3461 +  Moved definitions of PNG_HAVE_IHDR, PNG_AFTER_IDAT, and PNG_HAVE_PLTE
  1.3462 +    outside of an unknown-chunk block in png.h because they are also
  1.3463 +    needed for other uses.
  1.3464 +
  1.3465 +Version 1.5.4beta02 [June 14, 2011]
  1.3466 +  Fixed and clarified LEGACY 16-to-8 scaling code.
  1.3467 +  Added png_set_chop_16() API, to match inaccurate results from previous
  1.3468 +    libpng versions.
  1.3469 +  Removed the ACCURATE and LEGACY options (they are no longer useable)
  1.3470 +  Use the old scaling method for background if png_set_chop_16() was
  1.3471 +    called.
  1.3472 +  Made png_set_chop_16() API removeable by disabling PNG_CHOP_16_TO_8_SUPPORTED
  1.3473 +
  1.3474 +Version 1.5.4beta03 [June 15, 2011]
  1.3475 +  Fixed a problem in png_do_expand_palette() exposed by optimization in
  1.3476 +    1.5.3beta06
  1.3477 +  Also removed a spurious and confusing "trans" member ("trans") from png_info.
  1.3478 +  The palette expand optimization prevented expansion to an intermediate RGBA
  1.3479 +    form if tRNS was present but alpha was marked to be stripped; this exposed
  1.3480 +    a check for tRNS in png_do_expand_palette() which is inconsistent with the
  1.3481 +    code elsewhere in libpng.
  1.3482 +  Correction to the expand_16 code; removed extra instance of
  1.3483 +    png_set_scale_16_to_8 from pngpriv.h
  1.3484 +
  1.3485 +Version 1.5.4beta04 [June 16, 2011]
  1.3486 +  Added a missing "#ifdef PNG_READ_BACKGROUND_SUPPORTED/#endif" in pngrtran.c
  1.3487 +  Added PNG_TRANSFORM_CHOP_16 to the high-level read transforms.
  1.3488 +  Made PNG_READ_16_TO_8_ACCURATE_SCALE configurable again.  If this is
  1.3489 +    not enabled, png_set_strip_16() and png_do_scale_16_to_8() aren't built.
  1.3490 +  Revised contrib/visupng, gregbook, and pngminim to demonstrate chop_16_to_8
  1.3491 +
  1.3492 +Version 1.5.4beta05 [June 16, 2011]
  1.3493 +  Renamed png_set_strip_16() to png_set_scale_16() and renamed
  1.3494 +    png_set_chop_16() to png_set_strip(16) in an attempt to minimize the
  1.3495 +    behavior changes between libpng14 and libpng15.
  1.3496 +
  1.3497 +Version 1.5.4beta06 [June 18, 2011]
  1.3498 +  Fixed new bug that was causing both strip_16 and scale_16 to be applied.
  1.3499 +
  1.3500 +Version 1.5.4beta07 [June 19, 2011]
  1.3501 +  Fixed pngvalid, simplified macros, added checking for 0 in sCAL.
  1.3502 +    The ACCURATE scale macro is no longer defined in 1.5 - call the
  1.3503 +    png_scale_16_to_8 API.  Made sure that PNG_READ_16_TO_8 is still defined
  1.3504 +    if the png_strip_16_to_8 API is present.  png_check_fp_number now
  1.3505 +    maintains some state so that positive, negative and zero values are
  1.3506 +    identified.  sCAL uses these to be strictly spec conformant.
  1.3507 +
  1.3508 +Version 1.5.4beta08 [June 23, 2011]
  1.3509 +  Fixed pngvalid if ACCURATE_SCALE is defined.
  1.3510 +  Updated scripts/pnglibconf.h.prebuilt.
  1.3511 +
  1.3512 +Version 1.5.4rc01 [June 30, 2011]
  1.3513 +  Define PNG_ALLOCATED to "restrict" only if MSC_VER >= 1400.
  1.3514 +
  1.3515 +Version 1.5.4 [July 7, 2011]
  1.3516 +  No changes.
  1.3517 +
  1.3518 +Version 1.5.5beta01 [July 13, 2011]
  1.3519 +  Fixed some typos and made other minor changes in the manual.
  1.3520 +  Updated contrib/pngminus/makefile.std (Samuli Souminen)
  1.3521 +
  1.3522 +Version 1.5.5beta02 [July 14, 2011]
  1.3523 +  Revised Makefile.am and Makefile.in to look in the right directory for
  1.3524 +    pnglibconf.h.prebuilt
  1.3525 +
  1.3526 +Version 1.5.5beta03 [July 27, 2011]
  1.3527 +  Enabled compilation with g++ compiler.  This compiler does not recognize
  1.3528 +    the file extension, so it always compiles with C++ rules.  Made minor
  1.3529 +    changes to pngrutil.c to cast results where C++ expects it but C does not.
  1.3530 +  Minor editing of libpng.3 and libpng-manual.txt.
  1.3531 +
  1.3532 +Version 1.5.5beta04 [July 29, 2011]
  1.3533 +  Revised CMakeLists.txt (Clifford Yapp)
  1.3534 +  Updated commentary about the png_rgb_to_gray() default coefficients
  1.3535 +    in the manual and in pngrtran.c
  1.3536 +
  1.3537 +Version 1.5.5beta05 [August 17, 2011]
  1.3538 +  Prevent unexpected API exports from non-libpng DLLs on Windows.  The "_DLL"
  1.3539 +    is removed from the test of whether a DLL is being built (this erroneously
  1.3540 +    caused the libpng APIs to be marked as DLL exports in static builds under
  1.3541 +    Microsoft Visual Studio).  Almost all of the libpng building configuration
  1.3542 +    is moved from pngconf.h to pngpriv.h, but PNG_DLL_EXPORT remains in
  1.3543 +    pngconf.h, though, so that it is colocated with the import definition (it
  1.3544 +    is no longer used anywhere in the installed headers).  The VStudio project
  1.3545 +    definitions have been cleaned up: "_USRDLL" has been removed from the
  1.3546 +    static library builds (this was incorrect), and PNG_USE_DLL has been added
  1.3547 +    to pngvalid to test the functionality (pngtest does not supply it,
  1.3548 +    deliberately).  The spurious "_EXPORTS" has been removed from the
  1.3549 +    libpng build (all these errors were a result of copy/paste between project
  1.3550 +    configurations.)
  1.3551 +  Added new types and internal functions for CIE RGB end point handling to
  1.3552 +    pngpriv.h (functions yet to be implemented).
  1.3553 +
  1.3554 +Version 1.5.5beta06 [August 26, 2011]
  1.3555 +  Ensure the CMAKE_LIBRARY_OUTPUT_DIRECTORY is set in CMakeLists.txt
  1.3556 +    (Clifford Yap)
  1.3557 +  Fixes to rgb_to_gray and cHRM XYZ APIs (John Bowler):
  1.3558 +    The rgb_to_gray code had errors when combined with gamma correction.
  1.3559 +    Some pixels were treated as true grey when they weren't and such pixels
  1.3560 +    and true grey ones were not gamma corrected (the original value of the
  1.3561 +    red component was used instead).  APIs to get and set cHRM using color
  1.3562 +    space end points have been added and the rgb_to_gray code that defaults
  1.3563 +    based on cHRM, and the divide-by-zero bug in png_handle_cHRM (CERT
  1.3564 +    VU#477046, CVE-2011-3328, introduced in 1.5.4) have been corrected.
  1.3565 +  A considerable number of tests has been added to pngvalid for the
  1.3566 +    rgb_to_gray transform.
  1.3567 +  Arithmetic errors in rgb_to_gray whereby the calculated gray value was
  1.3568 +    truncated to the bit depth rather than rounded have been fixed except in
  1.3569 +    the 8-bit non-gamma-corrected case (where consistency seems more important
  1.3570 +    than correctness.)  The code still has considerable inaccuracies in the
  1.3571 +    8-bit case because 8-bit linear arithmetic is used.
  1.3572 +
  1.3573 +Version 1.5.5beta07 [September 7, 2011]
  1.3574 +  Added "$(ARCH)" option to makefile.darwin
  1.3575 +  Added SunOS support to configure.ac and Makefile.am
  1.3576 +  Changed png_chunk_benign_error() to png_warning() in png.c, in
  1.3577 +    png_XYZ_from_xy_checked().
  1.3578 +
  1.3579 +Version 1.5.5beta08 [September 10, 2011]
  1.3580 +  Fixed 64-bit compilation errors (gcc). The errors fixed relate
  1.3581 +    to conditions where types that are 32 bits in the GCC 32-bit
  1.3582 +    world (uLong and png_size_t) become 64 bits in the 64-bit
  1.3583 +    world.  This produces potential truncation errors which the
  1.3584 +    compiler correctly flags.
  1.3585 +  Relocated new HAVE_SOLARIS_LD definition in configure.ac
  1.3586 +  Constant changes for 64-bit compatibility (removal of L suffixes). The
  1.3587 +    16-bit cases still use "L" as we don't have a 16-bit test system.
  1.3588 +
  1.3589 +Version 1.5.5rc01 [September 15, 2011]
  1.3590 +  Removed "L" suffixes in pngpriv.h
  1.3591 +
  1.3592 +Version 1.5.5 [September 22, 2011]
  1.3593 +  No changes.
  1.3594 +
  1.3595 +Version 1.5.6beta01 [September 22, 2011]
  1.3596 +  Fixed some 64-bit type conversion warnings in pngrtran.c
  1.3597 +  Moved row_info from png_struct to a local variable.
  1.3598 +  The various interlace mask arrays have been made into arrays of
  1.3599 +    bytes and made PNG_CONST and static (previously some arrays were
  1.3600 +    marked PNG_CONST and some weren't).
  1.3601 +  Additional checks have been added to the transform code to validate the
  1.3602 +    pixel depths after the transforms on both read and write.
  1.3603 +  Removed some redundant code from pngwrite.c, in png_destroy_write_struct().
  1.3604 +  Changed chunk reading/writing code to use png_uint_32 instead of png_byte[4].
  1.3605 +    This removes the need to allocate temporary strings for chunk names on
  1.3606 +    the stack in the read/write code.  Unknown chunk handling still uses the
  1.3607 +    string form because this is exposed in the API.
  1.3608 +
  1.3609 +Version 1.5.6beta02 [September 26, 2011]
  1.3610 +  Added a note in the manual the png_read_update_info() must be called only
  1.3611 +    once with a particular info_ptr.
  1.3612 +  Fixed a typo in the definition of the new PNG_STRING_FROM_CHUNK(s,c) macro.
  1.3613 +
  1.3614 +Version 1.5.6beta03 [September 28, 2011]
  1.3615 +  Revised test-pngtest.sh to report FAIL when pngtest fails.
  1.3616 +  Added "--strict" option to pngtest, to report FAIL when the failure is
  1.3617 +    only because the resulting valid files are different.
  1.3618 +  Revised CMakeLists.txt to work with mingw and removed some material from
  1.3619 +    CMakeLists.txt that is no longer useful in libpng-1.5.
  1.3620 +
  1.3621 +Version 1.5.6beta04 [October 5, 2011]
  1.3622 +  Fixed typo in Makefile.in and Makefile.am ("-M Wl" should be "-M -Wl")."
  1.3623 +
  1.3624 +Version 1.5.6beta05 [October 12, 2011]
  1.3625 +  Speed up png_combine_row() for interlaced images. This reduces the generality
  1.3626 +    of the code, allowing it to be optimized for Adam7 interlace.  The masks
  1.3627 +    passed to png_combine_row() are now generated internally, avoiding
  1.3628 +    some code duplication and localizing the interlace handling somewhat.
  1.3629 +  Align png_struct::row_buf - previously it was always unaligned, caused by
  1.3630 +    a bug in the code that attempted to align it; the code needs to subtract
  1.3631 +    one from the pointer to take account of the filter byte prepended to
  1.3632 +    each row.
  1.3633 +  Optimized png_combine_row() when rows are aligned. This gains a small
  1.3634 +    percentage for 16-bit and 32-bit pixels in the typical case where the
  1.3635 +    output row buffers are appropriately aligned. The optimization was not
  1.3636 +    previously possible because the png_struct buffer was always misaligned.
  1.3637 +  Fixed bug in png_write_chunk_header() debug print, introduced in 1.5.6beta01.
  1.3638 +
  1.3639 +Version 1.5.6beta06 [October 17, 2011]
  1.3640 +  Removed two redundant tests for unitialized row.
  1.3641 +  Fixed a relatively harmless memory overwrite in compressed text writing
  1.3642 +    with a 1 byte zlib buffer.
  1.3643 +  Add ability to call png_read_update_info multiple times to pngvalid.c.
  1.3644 +  Fixes for multiple calls to png_read_update_info. These fixes attend to
  1.3645 +    most of the errors revealed in pngvalid, however doing the gamma work
  1.3646 +    twice results in inaccuracies that can't be easily fixed.  There is now
  1.3647 +    a warning in the code if this is going to happen.
  1.3648 +  Turned on multiple png_read_update_info in pngvalid transform tests.
  1.3649 +  Prevent libpng from overwriting unused bits at the end of the image when
  1.3650 +    it is not byte aligned, while reading. Prior to libpng-1.5.6 libpng would
  1.3651 +    overwrite the partial byte at the end of each row if the row width was not
  1.3652 +    an exact multiple of 8 bits and the image is not interlaced.
  1.3653 +
  1.3654 +Version 1.5.6beta07 [October 21, 2011]
  1.3655 +  Made png_ptr->prev_row an aligned pointer into png_ptr->big_prev_row
  1.3656 +    (Mans Rullgard).
  1.3657 +
  1.3658 +Version 1.5.6rc01 [October 26, 2011]
  1.3659 +  Changed misleading "Missing PLTE before cHRM" warning to "Out of place cHRM"
  1.3660 +
  1.3661 +Version 1.5.6rc02 [October 27, 2011]
  1.3662 +  Added LSR() macro to defend against buggy compilers that evaluate non-taken
  1.3663 +    code branches and complain about out-of-range shifts.
  1.3664 +
  1.3665 +Version 1.5.6rc03 [October 28, 2011]
  1.3666 +  Renamed the LSR() macro to PNG_LSR() and added PNG_LSL() macro.
  1.3667 +  Fixed compiler warnings with Intel and MSYS compilers. The logical shift
  1.3668 +    fix for Microsoft Visual C is required by other compilers, so this
  1.3669 +    enables that fix for all compilers when using compile-time constants.
  1.3670 +    Under MSYS 'byte' is a name declared in a system header file, so we
  1.3671 +    changed the name of a local variable to avoid the warnings that result.
  1.3672 +  Added #define PNG_ALIGN_TYPE PNG_ALIGN_NONE to contrib/pngminim/*/pngusr.h
  1.3673 +
  1.3674 +Version 1.5.6 [November 3, 2011]
  1.3675 +  No changes.
  1.3676 +
  1.3677 +Version 1.5.7beta01 [November 4, 2011]
  1.3678 +  Added support for ARM processor, when decoding all PNG up-filtered rows
  1.3679 +    and any other-filtered rows with 3 or 4 bytes per pixel (Mans Rullgard).
  1.3680 +  Fixed bug in pngvalid on early allocation failure; fixed type cast in
  1.3681 +    pngmem.c; pngvalid would attempt to call png_error() if the allocation
  1.3682 +    of a png_struct or png_info failed. This would probably have led to a
  1.3683 +    crash.  The pngmem.c implementation of png_malloc() included a cast
  1.3684 +    to png_size_t which would fail on large allocations on 16-bit systems.
  1.3685 +  Fix for the preprocessor of the Intel C compiler. The preprocessor
  1.3686 +    splits adjacent @ signs with a space; this changes the concatentation
  1.3687 +    token from @-@-@ to PNG_JOIN; that should work with all compiler
  1.3688 +    preprocessors.
  1.3689 +  Paeth filter speed improvements from work by Siarhei Siamashka. This
  1.3690 +    changes the 'Paeth' reconstruction function to improve the GCC code
  1.3691 +    generation on x86. The changes are only part of the suggested ones;
  1.3692 +    just the changes that definitely improve speed and remain simple.
  1.3693 +    The changes also slightly increase the clarity of the code.
  1.3694 +
  1.3695 +Version 1.5.7beta02 [November 11, 2011]
  1.3696 +  Check compression_type parameter in png_get_iCCP and remove spurious
  1.3697 +    casts. The compression_type parameter is always assigned to, so must
  1.3698 +    be non-NULL. The cast of the profile length potentially truncated the
  1.3699 +    value unnecessarily on a 16-bit int system, so the cast of the (byte)
  1.3700 +    compression type to (int) is specified by ANSI-C anyway.
  1.3701 +  Fixed FP division by zero in pngvalid.c; the 'test_pixel' code left
  1.3702 +    the sBIT fields in the test pixel as 0, which resulted in a floating
  1.3703 +    point division by zero which was irrelevant but causes systems where
  1.3704 +    FP exceptions cause a crash. Added code to pngvalid to turn on FP
  1.3705 +    exceptions if the appropriate glibc support is there to ensure this is
  1.3706 +    tested in the future.
  1.3707 +  Updated scripts/pnglibconf.mak and scripts/makefile.std to handle the
  1.3708 +    new PNG_JOIN macro.
  1.3709 +  Added versioning to pnglibconf.h comments.
  1.3710 +  Simplified read/write API initial version; basic read/write tested on
  1.3711 +    a variety of images, limited documentation (in the header file.)
  1.3712 +  Installed more accurate linear to sRGB conversion tables. The slightly
  1.3713 +    modified tables reduce the number of 16-bit values that
  1.3714 +    convert to an off-by-one 8-bit value.  The "makesRGB.c" code that was used
  1.3715 +    to generate the tables is now in a contrib/sRGBtables sub-directory.
  1.3716 +
  1.3717 +Version 1.5.7beta03 [November 17, 2011]
  1.3718 +  Removed PNG_CONST from the sRGB table declarations in pngpriv.h and png.c
  1.3719 +  Added run-time detection of NEON support.
  1.3720 +  Added contrib/libtests; includes simplified API test and timing test and
  1.3721 +    a color conversion utility for rapid checking of failed 'pngstest' results.
  1.3722 +  Multiple transform bug fixes plus a work-round for double gamma correction.
  1.3723 +    libpng does not support more than one transform that requires linear data
  1.3724 +    at once - if this is tried typically the results is double gamma
  1.3725 +    correction. Since the simplified APIs can need rgb to gray combined with
  1.3726 +    a compose operation it is necessary to do one of these outside the main
  1.3727 +    libpng transform code. This check-in also contains fixes to various bugs
  1.3728 +    in the simplified APIs themselves and to some bugs in compose and rgb to
  1.3729 +    gray (on palette) itself.
  1.3730 +  Fixes for C++ compilation using g++ When libpng source is compiled
  1.3731 +    using g++. The compiler imposes C++ rules on the C source; thus it
  1.3732 +    is desireable to make the source work with either C or C++ rules
  1.3733 +    without throwing away useful error information.  This change adds
  1.3734 +    png_voidcast to allow C semantic (void*) cases or the corresponding
  1.3735 +    C++ static_cast operation, as appropriate.
  1.3736 +  Added --noexecstack to assembler file compilation. GCC does not set
  1.3737 +    this on assembler compilation, even though it does on C compilation.
  1.3738 +    This creates security issues if assembler code is enabled; the
  1.3739 +    work-around is to set it by default in the flags for $(CCAS)
  1.3740 +  Work around compilers that don't support declaration of const data. Some
  1.3741 +    compilers fault 'extern const' data declarations (because the data is
  1.3742 +    not initialized); this turns on const-ness only for compilers where
  1.3743 +    this is known to work.
  1.3744 +
  1.3745 +Version 1.5.7beta04 [November 17, 2011]
  1.3746 +  Since the gcc driver does not recognize the --noexecstack flag, we must
  1.3747 +    use the -Wa prefix to have it passed through to the assembler.
  1.3748 +    Also removed a duplicate setting of this flag.
  1.3749 +  Added files that were omitted from the libpng-1.5.7beta03 zip distribution.
  1.3750 +
  1.3751 +Version 1.5.7beta05 [November 25, 2011]
  1.3752 +  Removed "zTXt" from warning in generic chunk decompression function.
  1.3753 +  Validate time settings passed to pngset() and png_convert_to_rfc1123()
  1.3754 +    (Frank Busse).
  1.3755 +  Added MINGW support to CMakeLists.txt
  1.3756 +  Reject invalid compression flag or method when reading the iTXt chunk.
  1.3757 +  Backed out 'simplified' API changes. The API seems too complex and there
  1.3758 +    is a lack of consensus or enthusiasm for the proposals.  The API also
  1.3759 +    reveals significant bugs inside libpng (double gamma correction and the
  1.3760 +    known bug of being unable to retrieve a corrected palette). It seems
  1.3761 +    better to wait until the bugs, at least, are corrected.
  1.3762 +  Moved pngvalid.c into contrib/libtests
  1.3763 +  Rebuilt Makefile.in, configure, etc., with autoconf-2.68
  1.3764 +
  1.3765 +Version 1.5.7rc01 [December 1, 2011]
  1.3766 +  Replaced an "#if" with "#ifdef" in pngrtran.c
  1.3767 +  Revised #if PNG_DO_BC block in png.c (use #ifdef and add #else)
  1.3768 +
  1.3769 +Version 1.5.7rc02 [December 5, 2011]
  1.3770 +  Revised project files and contrib/pngvalid/pngvalid.c to account for
  1.3771 +    the relocation of pngvalid into contrib/libtests.
  1.3772 +  Revised pngconf.h to use " __declspec(restrict)" only when MSC_VER >= 1400,
  1.3773 +    as in libpng-1.5.4.
  1.3774 +  Put CRLF line endings in the owatcom project files.
  1.3775 +
  1.3776 +Version 1.5.7rc03 [December 7, 2011]
  1.3777 +  Updated CMakeLists.txt to account for the relocation of pngvalid.c
  1.3778 +
  1.3779 +Version 1.5.7 [December 15, 2011]
  1.3780 +  Minor fixes to pngvalid.c for gcc 4.6.2 compatibility to remove warnings
  1.3781 +    reported by earlier versions.
  1.3782 +  Fixed minor memset/sizeof errors in pngvalid.c.
  1.3783 +
  1.3784 +Version 1.6.0beta01 [December 15, 2011]
  1.3785 +  Removed machine-generated configure files from the GIT repository (they will
  1.3786 +    continue to appear in the tarball distributions and in the libpng15 and
  1.3787 +    earlier GIT branches).
  1.3788 +  Restored the new 'simplified' API, which was started in libpng-1.5.7beta02
  1.3789 +    but later deleted from libpng-1.5.7beta05.
  1.3790 +  Added example programs for the new 'simplified' API.
  1.3791 +  Added ANSI-C (C90) headers and require them, and take advantage of the
  1.3792 +    change. Also fixed some of the projects/* and contrib/* files that needed
  1.3793 +    updates for libpng16 and the move of pngvalid.c.
  1.3794 +    With this change the required ANSI-C header files are assumed to exist: the
  1.3795 +    implementation must provide float.h, limits.h, stdarg.h and stddef.h and
  1.3796 +    libpng relies on limits.h and stddef.h existing and behaving as defined
  1.3797 +    (the other two required headers aren't used).  Non-ANSI systems that don't
  1.3798 +    have stddef.h or limits.h will have to provide an appropriate fake
  1.3799 +    containing the relevant types and #defines.
  1.3800 +  The use of FAR/far has been eliminated and the definition of png_alloc_size_t
  1.3801 +    is now controlled by a flag so that 'small size_t' systems can select it
  1.3802 +    if necessary.  Libpng 1.6 may not currently work on such systems -- it
  1.3803 +    seems likely that it will ask 'malloc' for more than 65535 bytes with any
  1.3804 +    image that has a sufficiently large row size (rather than simply failing
  1.3805 +    to read such images).
  1.3806 +  New tools directory containing tools used to generate libpng code.
  1.3807 +  Fixed race conditions in parallel make builds. With higher degrees of
  1.3808 +    parallelism during 'make' the use of the same temporary file names such
  1.3809 +    as 'dfn*' can result in a race where a temporary file from one arm of the
  1.3810 +    build is deleted or overwritten in another arm.  This changes the
  1.3811 +    temporary files for suffix rules to always use $* and ensures that the
  1.3812 +    non-suffix rules use unique file names.
  1.3813 +
  1.3814 +Version 1.6.0beta02 [December 21, 2011]
  1.3815 +  Correct configure builds where build and source directories are separate.
  1.3816 +    The include path of 'config.h' was erroneously made relative in pngvalid.c
  1.3817 +    in libpng 1.5.7.
  1.3818 +
  1.3819 +Version 1.6.0beta03 [December 22, 2011]
  1.3820 +  Start-up code size improvements, error handler flexibility. These changes
  1.3821 +    alter how the tricky allocation of the initial png_struct and png_info
  1.3822 +    structures are handled. png_info is now handled in pretty much the same
  1.3823 +    way as everything else, except that the allocations handle NULL return
  1.3824 +    silently.  png_struct is changed in a similar way on allocation and on
  1.3825 +    deallocation a 'safety' error handler is put in place (which should never
  1.3826 +    be required).  The error handler itself is changed to permit mismatches
  1.3827 +    in the application and libpng error buffer size; however, this means a
  1.3828 +    silent change to the API to return the jmp_buf if the size doesn't match
  1.3829 +    the size from the libpng compilation; libpng now allocates the memory and
  1.3830 +    this may fail.  Overall these changes result in slight code size
  1.3831 +    reductions; however, this is a reduction in code that is always executed
  1.3832 +    so is particularly valuable.  Overall on a 64-bit system the libpng DLL
  1.3833 +    decreases in code size by 1733 bytes.  pngerror.o increases in size by
  1.3834 +    about 465 bytes because of the new functionality.
  1.3835 +  Added png_convert_to_rfc1123_buffer() and deprecated png_convert_to_rfc1123()
  1.3836 +    to avoid including a spurious buffer in the png_struct.
  1.3837 +
  1.3838 +Version 1.6.0beta04 [December 30, 2011]
  1.3839 +  Regenerated configure scripts with automake-1.11.2
  1.3840 +  Eliminated png_info_destroy(). It is now used only in png.c and only calls
  1.3841 +    one other internal function and memset().
  1.3842 +  Enabled png_get_sCAL_fixed() if floating point APIs are enabled. Previously
  1.3843 +    it was disabled whenever internal fixed point arithmetic was selected,
  1.3844 +    which meant it didn't exist even on systems where FP was available but not
  1.3845 +    preferred.
  1.3846 +  Added pngvalid.c compile time checks for const APIs.
  1.3847 +  Implemented 'restrict' for png_info and png_struct. Because of the way
  1.3848 +    libpng works both png_info and png_struct are always accessed via a
  1.3849 +    single pointer.  This means adding C99 'restrict' to the pointer gives
  1.3850 +    the compiler some opportunity to optimize the code.  This change allows
  1.3851 +    that.
  1.3852 +  Moved AC_MSG_CHECKING([if libraries can be versioned]) later to the proper
  1.3853 +    location in configure.ac (Gilles Espinasse).
  1.3854 +  Changed png_memcpy to C assignment where appropriate. Changed all those
  1.3855 +    uses of png_memcpy that were doing a simple assignment to assignments
  1.3856 +    (all those cases where the thing being copied is a non-array C L-value).
  1.3857 +  Added some error checking to png_set_*() routines.
  1.3858 +  Removed the reference to the non-exported function png_memcpy() from
  1.3859 +    example.c.
  1.3860 +  Fixed the Visual C 64-bit build - it requires jmp_buf to be aligned, but
  1.3861 +    it had become misaligned.
  1.3862 +  Revised contrib/pngminus/pnm2png.c to avoid warnings when png_uint_32
  1.3863 +    and unsigned long are of different sizes.
  1.3864 +
  1.3865 +Version 1.6.0beta05 [January 15, 2012]
  1.3866 +  Updated manual with description of the simplified API (copied from png.h)
  1.3867 +  Fix bug in pngerror.c: some long warnings were being improperly truncated
  1.3868 +    (CVE-2011-3464, bug introduced in libpng-1.5.3beta05).
  1.3869 +
  1.3870 +Version 1.6.0beta06 [January 24, 2012]
  1.3871 +  Added palette support to the simplified APIs. This commit
  1.3872 +    changes some of the macro definitions in png.h, app code
  1.3873 +    may need corresponding changes.
  1.3874 +  Increased the formatted warning buffer to 192 bytes.
  1.3875 +  Added color-map support to simplified API. This is an initial version for
  1.3876 +    review; the documentation has not yet been updated.
  1.3877 +  Fixed Min/GW uninstall to remove libpng.dll.a
  1.3878 +
  1.3879 +Version 1.6.0beta07 [January 28, 2012]
  1.3880 +  Eliminated Intel icc/icl compiler warnings. The Intel (GCC derived)
  1.3881 +    compiler issues slightly different warnings from those issued by the
  1.3882 +    current vesions of GCC. This eliminates those warnings by
  1.3883 +    adding/removing casts and small code rewrites.
  1.3884 +  Updated configure.ac from autoupdate: added --enable-werror option.
  1.3885 +    Also some layout regularization and removal of introduced tab characters
  1.3886 +    (replaced with 3-character indentation).  Obsolete macros identified by
  1.3887 +    autoupdate have been removed; the replacements are all in 2.59 so
  1.3888 +    the pre-req hasn't been changed.  --enable-werror checks for support
  1.3889 +    for -Werror (or the given argument) in the compiler.  This mimics the
  1.3890 +    gcc configure option by allowing -Werror to be turned on safely; without
  1.3891 +    the option the tests written in configure itself fail compilation because
  1.3892 +    they cause compiler warnings.
  1.3893 +  Rewrote autogen.sh to run autoreconf instead of running tools one-by-one.
  1.3894 +  Conditionalize the install rules for MINGW and CYGWIN in CMakeLists.txt and
  1.3895 +    set CMAKE_LIBRARY_OUTPUT_DIRECTORY to "lib" on all platforms (C. Yapp).
  1.3896 +  Freeze libtool files in the 'scripts' directory. This version of autogen.sh
  1.3897 +    attempts to dissuade people from running it when it is not, or should not,
  1.3898 +    be necessary.  In fact, autogen.sh does not work when run in a libpng
  1.3899 +    directory extracted from a tar distribution anymore. You must run it in
  1.3900 +    a GIT clone instead.
  1.3901 +  Added two images to contrib/pngsuite (1-bit and 2-bit transparent grayscale),
  1.3902 +    and renamed three whose names were inconsistent with those in
  1.3903 +    pngsuite/README.txt.
  1.3904 +
  1.3905 +Version 1.6.0beta08 [February 1, 2012]
  1.3906 +  Fixed Image::colormap misalignment in pngstest.c
  1.3907 +  Check libtool/libtoolize version number (2.4.2) in configure.ac
  1.3908 +  Divide test-pngstest.sh into separate pngstest runs for basic and
  1.3909 +    transparent images.
  1.3910 +  Moved automake options to AM_INIT_AUTOMAKE in configure.ac
  1.3911 +  Added color-tests, silent-rules (Not yet implemented in Makefile.am) and
  1.3912 +    version checking to configure.ac
  1.3913 +  Improved pngstest speed by not doing redundant tests and add const to
  1.3914 +    the background parameter of png_image_finish_read. The --background
  1.3915 +    option is now done automagically only when required, so that commandline
  1.3916 +    option no longer exists.
  1.3917 +  Cleaned up pngpriv.h to consistently declare all functions and data.
  1.3918 +    Also eliminated PNG_CONST_DATA, which is apparently not needed but we
  1.3919 +    can't be sure until it is gone.
  1.3920 +  Added symbol prefixing that allows all the libpng external symbols
  1.3921 +    to be prefixed (suggested by Reuben Hawkins).
  1.3922 +  Updated "ftbb*.png" list in the owatcom and vstudio projects.
  1.3923 +  Fixed 'prefix' builds on clean systems. The generation of pngprefix.h
  1.3924 +    should not require itself.
  1.3925 +  Updated INSTALL to explain that autogen.sh must be run in a GIT clone,
  1.3926 +    not in a libpng directory extracted from a tar distribution.
  1.3927 +
  1.3928 +Version 1.6.0beta09 [February 1, 2012]
  1.3929 +  Reverted the prebuilt configure files to libpng-1.6.0beta05 condition.
  1.3930 +
  1.3931 +Version 1.6.0beta10 [February 3, 2012]
  1.3932 +  Added Z_SOLO for zlib-1.2.6+ and correct pngstest tests
  1.3933 +  Updated list of test images in CMakeLists.txt
  1.3934 +  Updated the prebuilt configure files to current condition.
  1.3935 +  Revised INSTALL information about autogen.sh; it works in tar distributions.
  1.3936 +
  1.3937 +Version 1.6.0beta11 [February 16, 2012]
  1.3938 +  Fix character count in pngstest command in projects/owatcom/pngstest.tgt
  1.3939 +  Revised test-pngstest.sh to report PASS/FAIL for each image.
  1.3940 +  Updated documentation about the simplified API.
  1.3941 +  Corrected estimate of error in libpng png_set_rgb_to_gray API.  The API is
  1.3942 +    extremely inaccurate for sRGB conversions because it uses an 8-bit
  1.3943 +    intermediate linear value and it does not use the sRGB transform, so it
  1.3944 +    suffers from the known instability in gamma transforms for values close
  1.3945 +    to 0 (see Poynton).  The net result is that the calculation has a maximum
  1.3946 +    error of 14.99/255; 0.5/255^(1/2.2).  pngstest now uses 15 for the
  1.3947 +    permitted 8-bit error. This may still not be enough because of arithmetic
  1.3948 +    error.
  1.3949 +  Removed some unused arrays (with #ifdef) from png_read_push_finish_row().
  1.3950 +  Fixed a memory overwrite bug in simplified read of RGB PNG with
  1.3951 +    non-linear gamma Also bugs in the error checking in pngread.c and changed
  1.3952 +    quite a lot of the checks in pngstest.c to be correct; either correctly
  1.3953 +    written or not over-optimistic.  The pngstest changes are insufficient to
  1.3954 +    allow all possible RGB transforms to be passed; pngstest cmppixel needs
  1.3955 +    to be rewritten to make it clearer which errors it allows and then changed
  1.3956 +    to permit known inaccuracies.
  1.3957 +  Removed tests for no-longer-used *_EMPTY_PLTE_SUPPORTED from pngstruct.h
  1.3958 +  Fixed fixed/float API export conditionals. 1) If FIXED_POINT or
  1.3959 +    FLOATING_POINT options were switched off, png.h ended up with lone ';'
  1.3960 +    characters.  This is not valid ANSI-C outside a function.  The ';'
  1.3961 +    characters have been moved inside the definition of PNG_FP_EXPORT and
  1.3962 +    PNG_FIXED_EXPORT. 2) If either option was switched off, the declaration
  1.3963 +    of the corresponding functions were completely omitted, even though some
  1.3964 +    of them are still used internally.  The result is still valid, but
  1.3965 +    produces warnings from gcc with some warning options (including -Wall). The
  1.3966 +    fix is to cause png.h to declare the functions with PNG_INTERNAL_FUNCTION
  1.3967 +    when png.h is included from pngpriv.h.
  1.3968 +  Check for invalid palette index while reading paletted PNG.  When one is
  1.3969 +    found, issue a warning and increase png_ptr->num_palette accordingly.
  1.3970 +    Apps are responsible for checking to see if that happened.
  1.3971 +
  1.3972 +Version 1.6.0beta12 [February 18, 2012]
  1.3973 +  Do not increase num_palette on invalid_index.
  1.3974 +  Relocated check for invalid palette index to pngrtran.c, after unpacking
  1.3975 +    the sub-8-bit pixels.
  1.3976 +  Fixed CVE-2011-3026 buffer overrun bug.  This bug was introduced when
  1.3977 +    iCCP chunk support was added at libpng-1.0.6. Deal more correctly with the
  1.3978 +    test on iCCP chunk length. Also removed spurious casts that may hide
  1.3979 +    problems on 16-bit systems.
  1.3980 +
  1.3981 +Version 1.6.0beta13 [February 24, 2012]
  1.3982 +  Eliminated redundant png_push_read_tEXt|zTXt|iTXt|unknown code from
  1.3983 +    pngpread.c and use the sequential png_handle_tEXt, etc., in pngrutil.c;
  1.3984 +    now that png_ptr->buffer is inaccessible to applications, the special
  1.3985 +    handling is no longer useful.
  1.3986 +  Added PNG_SAFE_LIMITS feature to pnglibconf.dfa, pngpriv.h, and new
  1.3987 +    pngusr.dfa to reset the user limits to safe ones if PNG_SAFE_LIMITS is
  1.3988 +    defined.  To enable, use "CPPFLAGS=-DPNG_SAFE_LIMITS_SUPPORTED=1" on the
  1.3989 +    configure command or put #define PNG_SAFE_LIMITS_SUPPORTED in
  1.3990 +    pnglibconf.h.prebuilt and pnglibconf.h.
  1.3991 +
  1.3992 +Version 1.6.0beta14 [February 27, 2012]
  1.3993 +  Added information about the new limits in the manual.
  1.3994 +  Updated Makefile.in
  1.3995 +
  1.3996 +Version 1.6.0beta15 [March 2, 2012]
  1.3997 +  Removed unused "current_text" members of png_struct and the png_free()
  1.3998 +    of png_ptr->current_text from pngread.c
  1.3999 +  Rewrote pngstest.c for substantial speed improvement.
  1.4000 +  Fixed transparent pixel and 16-bit rgb tests in pngstest and removed a
  1.4001 +    spurious check in pngwrite.c
  1.4002 +  Added PNG_IMAGE_FLAG_FAST for the benefit of applications that store
  1.4003 +    intermediate files, or intermediate in-memory data, while processing
  1.4004 +    image data with the simplified API.  The option makes the files larger
  1.4005 +    but faster to write and read.  pngstest now uses this by default; this
  1.4006 +    can be disabled with the --slow option.
  1.4007 +  Improved pngstest fine tuning of error numbers, new test file generator.
  1.4008 +    The generator generates images that test the full range of sample values,
  1.4009 +    allow the error numbers in pngstest to be tuned and checked.  makepng
  1.4010 +    also allows generation of images with extra chunks, although this is
  1.4011 +    still work-in-progress.
  1.4012 +  Added check for invalid palette index while reading.
  1.4013 +  Fixed some bugs in ICC profile writing. The code should now accept
  1.4014 +    all potentially valid ICC profiles and reject obviously invalid ones.
  1.4015 +    It now uses png_error() to do so rather than casually writing a PNG
  1.4016 +    without the necessary color data.
  1.4017 +  Removed whitespace from the end of lines in all source files and scripts.
  1.4018 +
  1.4019 +Version 1.6.0beta16 [March 6, 2012]
  1.4020 +  Relocated palette-index checking function from pngrutil.c to pngtrans.c
  1.4021 +  Added palette-index checking while writing.
  1.4022 +  Changed png_inflate() and calling routines to avoid overflow problems.
  1.4023 +    This is an intermediate check-in that solves the immediate problems and
  1.4024 +    introduces one performance improvement (avoiding a copy via png_ptr->zbuf.)
  1.4025 +    Further changes will be made to make ICC profile handling more secure.
  1.4026 +  Fixed build warnings (MSVC, GCC, GCC v3). Cygwin GCC with default options
  1.4027 +    declares 'index' as a global, causing a warning if it is used as a local
  1.4028 +    variable.  GCC 64-bit warns about assigning a (size_t) (unsigned 64-bit)
  1.4029 +    to an (int) (signed 32-bit).  MSVC, however, warns about using the
  1.4030 +    unary '-' operator on an unsigned value (even though it is well defined
  1.4031 +    by ANSI-C to be ~x+1).  The padding calculation was changed to use a
  1.4032 +    different method.  Removed the tests on png_ptr->pass.
  1.4033 +  Added contrib/libtests/tarith.c to test internal arithmetic functions from
  1.4034 +    png.c. This is a libpng maintainer program used to validate changes to the
  1.4035 +    internal arithmetic functions.
  1.4036 +  Made read 'inflate' handling like write 'deflate' handling. The read
  1.4037 +    code now claims and releases png_ptr->zstream, like the write code.
  1.4038 +    The bug whereby the progressive reader failed to release the zstream
  1.4039 +    is now fixed, all initialization is delayed, and the code checks for
  1.4040 +    changed parameters on deflate rather than always calling
  1.4041 +    deflatedEnd/deflateInit.
  1.4042 +  Validate the zTXt strings in pngvalid.
  1.4043 +  Added code to validate the windowBits value passed to deflateInit2().
  1.4044 +    If the call to deflateInit2() is wrong a png_warning will be issued
  1.4045 +    (in fact this is harmless, but the PNG data produced may be sub-optimal).
  1.4046 +
  1.4047 +Version 1.6.0beta17 [March 10, 2012]
  1.4048 +  Fixed PNG_LIBPNG_BUILD_BASE_TYPE definition. 
  1.4049 +  Reject all iCCP chunks after the first, even if the first one is invalid.
  1.4050 +  Deflate/inflate was reworked to move common zlib calls into single
  1.4051 +    functions [rw]util.c.  A new shared keyword check routine was also added
  1.4052 +    and the 'zbuf' is no longer allocated on progressive read.  It is now
  1.4053 +    possible to call png_inflate() incrementally.  A warning is no longer
  1.4054 +    issued if the language tag or translated keyword in the iTXt chunk
  1.4055 +    has zero length.
  1.4056 +  If benign errors are disabled use maximum window on ancilliary inflate.
  1.4057 +    This works round a bug introduced in 1.5.4 where compressed ancillary
  1.4058 +    chunks could end up with a too-small windowBits value in the deflate
  1.4059 +    header.
  1.4060 +
  1.4061 +Version 1.6.0beta18 [March 16, 2012]
  1.4062 +  Issue a png_benign_error() instead of png_warning() about bad palette index.
  1.4063 +  In pngtest, treat benign errors as errors if "-strict" is present.
  1.4064 +  Fixed an off-by-one error in the palette index checking function.
  1.4065 +  Fixed a compiler warning under Cygwin (Windows-7, 32-bit system)
  1.4066 +  Revised example.c to put text strings in a temporary character array
  1.4067 +    instead of directly assigning string constants to png_textp members.
  1.4068 +    This avoids compiler warnings when -Wwrite-strings is enabled.
  1.4069 +  Added output flushing to aid debugging under Visual Studio. Unfortunately
  1.4070 +    this is necessary because the VS2010 output window otherwise simply loses
  1.4071 +    the error messages on error (they weren't flushed to the window before
  1.4072 +    the process exited, apparently!)
  1.4073 +  Added configuration support for benign errors and changed the read
  1.4074 +    default. Also changed some warnings in the iCCP and sRGB handling
  1.4075 +    from to benign errors. Configuration now makes read benign
  1.4076 +    errors warnings and write benign errors to errors by default (thus
  1.4077 +    changing the behavior on read).  The simplified API always forces
  1.4078 +    read benign errors to warnings (regardless of the system default, unless
  1.4079 +    this is disabled in which case the simplified API can't be built.)
  1.4080 +
  1.4081 +Version 1.6.0beta19 [March 18, 2012]
  1.4082 +  Work around for duplicate row start calls; added warning messages.
  1.4083 +    This turns on PNG_FLAG_DETECT_UNINITIALIZED to detect app code that
  1.4084 +    fails to call one of the 'start' routines (not enabled in libpng-1.5
  1.4085 +    because it is technically an API change, since it did normally work
  1.4086 +    before.)  It also makes duplicate calls to png_read_start_row (an
  1.4087 +    internal function called at the start of the image read) benign, as
  1.4088 +    they were before changes to use png_inflate_claim. Somehow webkit is
  1.4089 +    causing this to happen; this is probably a mis-feature in the zlib
  1.4090 +    changes so this commit is only a work-round.
  1.4091 +  Removed erroneous setting of DETECT_UNINITIALIZED and added more
  1.4092 +    checks. The code now does a png_error if an attempt is made to do the
  1.4093 +    row initialization twice; this is an application error and it has
  1.4094 +    serious consequences because the transform data in png_struct is
  1.4095 +    changed by each call.
  1.4096 +  Added application error reporting and added chunk names to read
  1.4097 +    benign errors; also added --strict to pngstest - not enabled
  1.4098 +    yet because a warning is produced.
  1.4099 +  Avoid the double gamma correction warning in the simplified API.
  1.4100 +    This allows the --strict option to pass in the pngstest checks
  1.4101 +
  1.4102 +Version 1.6.0beta20 [March 29, 2012]
  1.4103 +  Changed chunk handler warnings into benign errors, incrementally load iCCP
  1.4104 +  Added checksum-icc.c to contrib/tools
  1.4105 +  Prevent PNG_EXPAND+PNG_SHIFT doing the shift twice.
  1.4106 +  Recognize known sRGB ICC profiles while reading; prefer writing the
  1.4107 +    iCCP profile over writing the sRGB chunk, controlled by the
  1.4108 +    PNG_sRGB_PROFILE_CHECKS option.
  1.4109 +  Revised png_set_text_2() to avoid potential memory corruption (fixes
  1.4110 +    CVE-2011-3048, also known as CVE-2012-3425).
  1.4111 +
  1.4112 +Version 1.6.0beta21 [April 27, 2012]
  1.4113 +  Revised scripts/makefile.darwin: use system zlib; remove quotes around
  1.4114 +    architecture list; add missing ppc architecture; add architecture options
  1.4115 +    to shared library link; don't try to create a shared lib based on missing
  1.4116 +    RELEASE variable.
  1.4117 +  Enable png_set_check_for_invalid_index() for both read and write.
  1.4118 +  Removed #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED in pngpriv.h around
  1.4119 +    declaration of png_handle_unknown().
  1.4120 +  Added -lssp_nonshared in a comment in scripts/makefile.freebsd
  1.4121 +    and changed deprecated NOOBJ and NOPROFILE to NO_OBJ and NO_PROFILE.
  1.4122 +
  1.4123 +Version 1.6.0beta22 [May 23, 2012]
  1.4124 +  Removed need for -Wno-cast-align with clang.  clang correctly warns on
  1.4125 +    alignment increasing pointer casts when -Wcast-align is passed. This
  1.4126 +    fixes the cases that clang warns about either by eliminating the
  1.4127 +    casts from png_bytep to png_uint_16p (pngread.c), or, for pngrutil.c
  1.4128 +    where the cast is previously verified or pngstest.c where it is OK, by
  1.4129 +    introducing new png_aligncast macros to do the cast in a way that clang
  1.4130 +    accepts.
  1.4131 +
  1.4132 +Version 1.6.0beta23 [June 6, 2012]
  1.4133 +  Revised CMakeLists.txt to not attempt to make a symlink under mingw.
  1.4134 +  Made fixes for new optimization warnings from gcc 4.7.0. The compiler
  1.4135 +    performs an optimization which is safe; however it then warns about it.
  1.4136 +    Changing the type of 'palette_number' in pngvalid.c removes the warning.
  1.4137 +  Do not depend upon a GCC feature macro being available for use in generating
  1.4138 +    the linker mapfile symbol prefix.
  1.4139 +  Improved performance of new do_check_palette_indexes() function (only
  1.4140 +    update the value when it actually increases, move test for whether
  1.4141 +    the check is wanted out of the function.
  1.4142 +
  1.4143 +Version 1.6.0beta24 [June 7, 2012]
  1.4144 +  Don't check palette indexes if num_palette is 0 (as it can be in MNG files).
  1.4145 +
  1.4146 +Version 1.6.0beta25 [June 16, 2012]
  1.4147 +  Revised png_set_keep_unknown_chunks() so num_chunks < 0 means ignore all
  1.4148 +    unknown chunks and all known chunks except for IHDR, PLTE, tRNS, IDAT,
  1.4149 +    and IEND.  Previously it only meant ignore all unknown chunks, the
  1.4150 +    same as num_chunks == 0. Revised png_image_skip_unused_chunks() to
  1.4151 +    provide a list of chunks to be processed instead of a list of chunks to
  1.4152 +    ignore.  Revised contrib/gregbook/readpng2.c accordingly.
  1.4153 +
  1.4154 +Version 1.6.0beta26 [July 10, 2012]
  1.4155 +  Removed scripts/makefile.cegcc from the *.zip and *.7z distributions; it
  1.4156 +    depends on configure, which is not included in those archives.
  1.4157 +  Moved scripts/chkfmt to contrib/tools.
  1.4158 +  Changed "a+w" to "u+w" in Makefile.in to fix CVE-2012-3386.
  1.4159 +
  1.4160 +Version 1.6.0beta27 [August 11, 2012]
  1.4161 +  Do not compile PNG_DEPRECATED, PNG_ALLOC and PNG_PRIVATE when __GNUC__ < 3.
  1.4162 +  Do not use __restrict when GNUC is <= 3.1
  1.4163 +  Removed references to png_zalloc() and png_zfree() from the manual.
  1.4164 +  Fixed configurations where floating point is completely disabled.  Because
  1.4165 +    of the changes to support symbol prefixing PNG_INTERNAL_FUNCTION declares
  1.4166 +    floating point APIs during libpng builds even if they are completely
  1.4167 +    disabled. This requires the png floating point types (png_double*) to be
  1.4168 +    declared even though the functions are never actually defined.  This
  1.4169 +    change provides a dummy definition so that the declarations work, yet any
  1.4170 +    implementation will fail to compile because of an incomplete type.
  1.4171 +  Re-eliminated the use of strcpy() in pngtest.c.  An unncessary use of
  1.4172 +    strcpy() was accidentally re-introduced in libpng16; this change replaces
  1.4173 +    it with strncpy().
  1.4174 +  Eliminated use of png_sizeof(); use sizeof() instead.
  1.4175 +  Use a consistent style for (sizeof type) and (sizeof (array))
  1.4176 +  Cleanup of png_set_filler().  This function does very different things on
  1.4177 +    read and write.  In libpng 1.6 the two cases can be distinguished and
  1.4178 +    considerable code cleanup, and extra error checking, is possible.  This
  1.4179 +    makes calls on the write side that have no effect be ignored with a
  1.4180 +    png_app_error(), which can be disabled in the app using
  1.4181 +    png_set_benign_errors(), and removes the spurious use of usr_channels
  1.4182 +    on the read side.
  1.4183 +  Insist on autotools 1.12.1 for git builds because there are security issues
  1.4184 +    with 1.12 and insisting on anything less would allow 1.12 to be used.
  1.4185 +  Removed info_ptr->signature[8] from WRITE-only builds.
  1.4186 +  Add some conditions for compiling png_fixed().  This is a small function
  1.4187 +    but it requires "-lm" on some platforms.
  1.4188 +  Cause pngtest --strict to fail on any warning from libpng (not just errors)
  1.4189 +    and cause it not to fail at the comparison step if libpng lacks support
  1.4190 +    for writing chunks that it reads from the input (currently only implemented
  1.4191 +    for compressed text chunks).
  1.4192 +  Make all three "make check" test programs work without READ or WRITE support.
  1.4193 +    Now "make check" will succeed even if libpng is compiled with -DPNG_NO_READ
  1.4194 +    or -DPNG_NO_WRITE.  The tests performed are reduced, but the basic reading
  1.4195 +    and writing of a PNG file is always tested by one or more of the tests.
  1.4196 +  Consistently use strlen(), memset(), memcpy(), and memcmp() instead of the
  1.4197 +    png_strlen(), png_memset(), png_memcpy(), and png_memcmp() macros.
  1.4198 +  Removed the png_sizeof(), png_strlen(), png_memset(), png_memcpy(), and
  1.4199 +    png_memcmp() macros.
  1.4200 +  Work around gcc 3.x and Microsoft Visual Studio 2010 complaints. Both object
  1.4201 +    to the split initialization of num_chunks.
  1.4202 +
  1.4203 +Version 1.6.0beta28 [August 29, 2012]
  1.4204 +  Unknown handling fixes and clean up. This adds more correct option
  1.4205 +    control of the unknown handling, corrects the pre-existing bug where
  1.4206 +    the per-chunk 'keep' setting is ignored and makes it possible to skip
  1.4207 +    IDAT chunks in the sequential reader (broken in earlier 1.6 versions).
  1.4208 +    There is a new test program, test-unknown.c, which is a work in progress
  1.4209 +    (not currently part of the test suite).  Comments in the header files now
  1.4210 +    explain how the unknown handling works.
  1.4211 +  Allow fine grain control of unknown chunk APIs. This change allows
  1.4212 +    png_set_keep_unknown_chunks() to be turned off if not required and causes
  1.4213 +    both read and write to behave appropriately (on read this is only possible
  1.4214 +    if the user callback is used to handle unknown chunks).  The change
  1.4215 +    also removes the support for storing unknown chunks in the info_struct
  1.4216 +    if the only unknown handling enabled is via the callback, allowing libpng
  1.4217 +    to be configured with callback reading and none of the unnecessary code.
  1.4218 +  Corrected fix for unknown handling in pngtest. This reinstates the
  1.4219 +    libpng handling of unknown chunks other than vpAg and sTER (including
  1.4220 +    unsafe-to-copy chunks which were dropped before) and eliminates the
  1.4221 +    repositioning of vpAg and sTER in pngtest.png by changing pngtest.png
  1.4222 +    (so the chunks are where libpng would put them).
  1.4223 +  Added "tunknown" test and corrected a logic error in png_handle_unknown()
  1.4224 +    when SAVE support is absent.  Moved the shell test scripts for
  1.4225 +    contrib/libtests from the libpng top directory to contrib/libtests.
  1.4226 +    png_handle_unknown() must always read or skip the chunk, if
  1.4227 +    SAVE_UNKNOWN_CHUNKS is turned off *and* the application does not set
  1.4228 +    a user callback an unknown chunk will not be read, leading to a read
  1.4229 +    error, which was revealed by the "tunknown" test.
  1.4230 +  Cleaned up and corrected ICC profile handling.
  1.4231 +    contrib/libtests/makepng: corrected 'rgb' and 'gray' cases.  profile_error
  1.4232 +    messages could be truncated; made a correct buffer size calculation and
  1.4233 +    adjusted pngerror.c appropriately. png_icc_check_* checking improved;
  1.4234 +    changed the functions to receive the correct color type of the PNG on read
  1.4235 +    or write and check that it matches the color space of the profile (despite
  1.4236 +    what the comments said before, there is danger in assuming the app will
  1.4237 +    cope correctly with an RGB profile on a grayscale image and, since it
  1.4238 +    violates the PNG spec, allowing it is certain to produce inconsistent
  1.4239 +    app behavior and might even cause app crashes.) Check that profiles
  1.4240 +    contain the tags needed to process the PNG (tags all required by the ICC
  1.4241 +    spec). Removed unused PNG_STATIC from pngpriv.h.
  1.4242 +
  1.4243 +Version 1.6.0beta29 [September 4, 2012]
  1.4244 +  Fixed the simplified API example programs to add the *colormap parameter
  1.4245 +    to several of he API and improved the error message if the version field
  1.4246 +    is not set.
  1.4247 +  Added contrib/examples/* to the *.zip and *.7z distributions.
  1.4248 +  Updated simplified API synopses and description of the png_image structure
  1.4249 +    in the manual.
  1.4250 +  Made makepng and pngtest produce identical PNGs, add "--relaxed" option
  1.4251 +    to pngtest. The "--relaxed" option turns off the benign errors that are
  1.4252 +    enabled by default in pre-RC builds. makepng can now write ICC profiles
  1.4253 +    where the length has not been extended to a multiple of 4, and pngtest
  1.4254 +    now intercepts all libpng errors, allowing the previously-introduced
  1.4255 +    "--strict test" on no warnings to actually work.
  1.4256 +  Improved ICC profile handling including cHRM chunk generation and fixed
  1.4257 +    Cygwin+MSVC build errors. The ICC profile handling now includes more
  1.4258 +    checking.  Several errors that caused rejection of the profile are now
  1.4259 +    handled with a warning in such a way that the invalid profiles will be
  1.4260 +    read by default in release (but not pre-RC) builds but will not be
  1.4261 +    written by default.  The easy part of handling the cHRM chunk is written,
  1.4262 +    where the ICC profile contains the required data.  The more difficult
  1.4263 +    part plus guessing a gAMA value requires code to pass selected RGB values
  1.4264 +    through the profile.
  1.4265 +
  1.4266 +Version 1.6.0beta30 [October 24, 2012]
  1.4267 +  Changed ICC profile matrix/vector types to not depend on array type rules.
  1.4268 +    By the ANSI-C standard the new types should be identical to the previous
  1.4269 +    versions, and all known versions of gcc tested with the previous versions
  1.4270 +    except for GCC-4.2.1 work with this version.  The change makes the ANSI-C
  1.4271 +    rule that const applied to an array of elements applies instead to the
  1.4272 +    elements in the array moot by explicitly applying const to the base
  1.4273 +    elements of the png_icc_matrix and png_icc_vector types. The accidental
  1.4274 +    (harmless) 'const' previously applied to the parameters of two of the
  1.4275 +    functions have also been removed.
  1.4276 +  Added a work around for GCC 4.2 optimization bug.
  1.4277 +  Marked the broken (bad white point) original HP sRGB profiles correctly and
  1.4278 +    correct comments.
  1.4279 +  Added -DZ_SOLO to contrib/pngminim/*/makefile to work with zlib-1.2.7
  1.4280 +  Use /MDd for vstudio debug builds. Also added pngunkown to the vstudio
  1.4281 +    builds, fixed build errors and corrected a minor exit code error in
  1.4282 +    pngvalid if the 'touch' file name is invalid.
  1.4283 +  Add updated WARNING file to projects/vstudio from libpng 1.5/vstudio
  1.4284 +  Fixed build when using #define PNG_NO_READ_GAMMA in png_do_compose() in
  1.4285 +    pngrtran.c (Domani Hannes).
  1.4286 +
  1.4287 +Version 1.6.0beta31 [November 1, 2012]
  1.4288 +  Undid the erroneous change to vstudio/pngvalid build in libpng-1.6.0beta30.
  1.4289 +  Made pngvalid so that it will build outside the libpng source tree.
  1.4290 +  Made builds -DPNG_NO_READ_GAMMA compile (the unit tests still fail).
  1.4291 +  Made PNG_NO_READ_GAMMA switch off interfaces that depend on READ_GAMMA.
  1.4292 +    Prior to 1.6.0 switching off READ_GAMMA did unpredictable things to the
  1.4293 +    interfaces that use it (specifically, png_do_background in 1.4 would
  1.4294 +    simply display composite for grayscale images but do composition
  1.4295 +    with the incorrect arithmetic for color ones). In 1.6 the semantic
  1.4296 +    of -DPNG_NO_READ_GAMMA is changed to simply disable any interface that
  1.4297 +    depends on it; this obliges people who set it to consider whether they
  1.4298 +    really want it off if they happen to use any of the interfaces in
  1.4299 +    question (typically most users who disable it won't).
  1.4300 +  Fixed GUIDs in projects/vstudio. Some were duplicated or missing,
  1.4301 +    resulting in VS2010 having to update the files.
  1.4302 +  Removed non-working ICC profile support code that was mostly added to
  1.4303 +    libpng-1.6.0beta29 and beta30. There was too much code for too little
  1.4304 +    gain; implementing full ICC color correction may be desireable but is left
  1.4305 +    up to applications.
  1.4306 +
  1.4307 +Version 1.6.0beta32 [November 25, 2012]
  1.4308 +  Fixed an intermittent SEGV in pngstest due to an uninitialized array element.
  1.4309 +  Added the ability for contrib/libtests/makepng.c to make a PNG with just one
  1.4310 +    color. This is useful for debugging pngstest color inaccuracy reports.
  1.4311 +  Fixed error checking in the simplified write API (Olaf van der Spek)
  1.4312 +  Made png_user_version_check() ok to use with libpng version 1.10.x and later.
  1.4313 +
  1.4314 +Version 1.6.0beta33 [December 15, 2012]
  1.4315 +  Fixed typo in png.c (PNG_SET_CHUNK_MALLOC_MAX should be PNG_CHUNK_MALLOC_MAX)
  1.4316 +    that causes the MALLOC_MAX limit not to work (John Bowler)
  1.4317 +  Change png_warning() to png_app_error() in pngwrite.c and comment the
  1.4318 +    fall-through condition.
  1.4319 +  Change png_warning() to png_app_warning() in png_write_tRNS().
  1.4320 +  Rearranged the ARM-NEON optimizations: Isolated the machine specific code
  1.4321 +    to the hardware subdirectory and added comments to pngrutil.c so that
  1.4322 +    implementors of other optimizations know what to do.
  1.4323 +  Fixed cases of unquoted DESTDIR in Makefile.am
  1.4324 +  Rebuilt Makefile.in, etc., with autoconf-2.69 and automake-1.12.5.
  1.4325 +
  1.4326 +Version 1.6.0beta34 [December 19, 2012]
  1.4327 +  Cleaned up whitespace in the synopsis portion of the manpage "libpng.3"
  1.4328 +  Disassembled the version number in scripts/options.awk (necessary for
  1.4329 +    building on SunOs).
  1.4330 +
  1.4331 +Version 1.6.0beta35 [December 23, 2012]
  1.4332 +  Made default Zlib compression settings be configurable. This adds #defines to
  1.4333 +    pnglibconf.h to control the defaults.
  1.4334 +  Fixed Windows build issues, enabled ARM compilation. Various warnings issued
  1.4335 +    by earlier versions of GCC fixed for Cygwin and Min/GW (which both use old
  1.4336 +    GCCs.) ARM support is enabled by default in zlib.props (unsupported by
  1.4337 +    Microsoft) and ARM compilation is made possible by deleting the check for
  1.4338 +    x86. The test programs cannot be run because they are not signed.
  1.4339 +
  1.4340 +Version 1.6.0beta36 [January 2, 2013]
  1.4341 +  Discontinued distributing libpng-1.x.x.tar.bz2.
  1.4342 +  Discontinued distributing libpng-1.7.0-1.6.0-diff.txt and similar.
  1.4343 +  Rebuilt configure with autoconf-2.69 (inadvertently not done in beta33)
  1.4344 +  Fixed 'make distcheck' on SUN OS - libpng.so was not being removed
  1.4345 +
  1.4346 +Version 1.6.0beta37 [January 10, 2013]
  1.4347 +  Fixed conceivable but difficult to repro overflow. Also added two test
  1.4348 +    programs to generate and test a PNG which should have the problem.
  1.4349 +
  1.4350 +Version 1.6.0beta39 [January 19, 2013]
  1.4351 +  Again corrected attempt at overflow detection in png_set_unknown_chunks().
  1.4352 +  Added overflow detection in png_set_sPLT() and png_set_text_2().
  1.4353 +
  1.4354 +Version 1.6.0beta40 [January 20, 2013]
  1.4355 +  Use consistent handling of overflows in text, sPLT and unknown png_set_* APIs
  1.4356 +
  1.4357 +Version 1.6.0rc01 [January 26, 2013]
  1.4358 +  No changes.
  1.4359 +
  1.4360 +Version 1.6.0rc02 [February 4, 2013]
  1.4361 +  Added png_get_palette_max() function.
  1.4362 +
  1.4363 +Version 1.6.0rc03 [February 5, 2013]
  1.4364 +  Fixed the png_get_palette_max API.
  1.4365 +
  1.4366 +Version 1.6.0rc04 [February 7, 2013]
  1.4367 +  Turn serial tests back on (recently turned off by autotools upgrade).
  1.4368 +
  1.4369 +Version 1.6.0rc05 [February 8, 2013]
  1.4370 +  Update manual about png_get_palette_max().
  1.4371 +
  1.4372 +Version 1.6.0rc06 [February 9, 2013]
  1.4373 +  Fixed missing dependency in --prefix builds The intermediate
  1.4374 +    internal 'prefix.h' file can only be generated correctly after
  1.4375 +    pnglibconf.h, however the dependency was not in Makefile.am.  The
  1.4376 +    symptoms are unpredictable depending on the order make chooses to
  1.4377 +    build pngprefix.h and pnglibconf.h, often the error goes unnoticed
  1.4378 +    because there is a system pnglibconf.h to use instead.
  1.4379 +
  1.4380 +Version 1.6.0rc07 [February 10, 2013]
  1.4381 +  Enclosed the new png_get_palette_max in #ifdef PNG_GET_PALETTE_MAX_SUPPORTED
  1.4382 +    block, and revised pnglibconf.h and pnglibconf.h.prebuilt accordingly.
  1.4383 +
  1.4384 +Version 1.6.0rc08 [February 10, 2013]
  1.4385 +  Fix typo in png.h #ifdef
  1.4386 +
  1.4387 +Version 1.6.0 [February 14, 2013]
  1.4388 +  No changes.
  1.4389 +
  1.4390 +Version 1.6.1beta01 [February 16, 2013]
  1.4391 +  Made symbol prefixing work with the ARM neon optimizations. Also allow
  1.4392 +    pngpriv.h to be included for preprocessor definitions only, so it can
  1.4393 +    be used in non-C/C++ files. Back ported from libpng 1.7.
  1.4394 +  Made sRGB check numbers consistent.
  1.4395 +  Ported libpng 1.5 options.awk/dfn file handling to 1.6, fixed one bug.
  1.4396 +  Removed cc -E workround, corrected png_get_palette_max API Tested on
  1.4397 +    SUN OS cc 5.9, which demonstrates the tokenization problem previously
  1.4398 +    avoided by using /lib/cpp.  Since all .dfn output is now protected in
  1.4399 +    double quotes unless it is to be macro substituted the fix should
  1.4400 +    work everywhere.
  1.4401 +  Enabled parallel tests - back ported from libpng-1.7.
  1.4402 +  scripts/pnglibconf.dfa formatting improvements back ported from libpng17.
  1.4403 +  Fixed a race condition in the creation of the build 'scripts' directory
  1.4404 +    while building with a parallel make.
  1.4405 +  Use approved/supported Android method to check for NEON, use Linux/POSIX
  1.4406 +    1003.1 API to check /proc/self/auxv avoiding buffer allocation and other
  1.4407 +    library calls (ported from libpng15).
  1.4408 +
  1.4409 +Version 1.6.1beta02 [February 19, 2013]
  1.4410 +  Use parentheses more consistently in "#if defined(MACRO)" tests.
  1.4411 +  Folded long lines.
  1.4412 +  Reenabled code to allow zero length PLTE chunks for MNG.
  1.4413 +
  1.4414 +Version 1.6.1beta03 [February 22, 2013]
  1.4415 +  Fixed ALIGNED_MEMORY support.
  1.4416 +  Allow run-time ARM NEON checking to be disabled. A new configure option:
  1.4417 +    --enable-arm-neon=always will stop the run-time checks. New checks
  1.4418 +    within arm/arm_init.c will cause the code not to be compiled unless
  1.4419 +    __ARM_NEON__ is set. This should make it fail safe (if someone asks
  1.4420 +    for it on then the build will fail if it can't be done.)
  1.4421 +  Updated the INSTALL document.
  1.4422 +
  1.4423 +Version 1.6.1beta04 [February 27, 2013]
  1.4424 +  Revised INSTALL to recommend using CPPFLAGS instead of INCLUDES.
  1.4425 +  Revised scripts/makefile.freebsd to respect ZLIBLIB and ZLIBINC.
  1.4426 +  Revised scripts/dfn.awk to work with the buggy MSYS awk that has trouble
  1.4427 +    with CRLF line endings.
  1.4428 +
  1.4429 +Version 1.6.1beta05 [March 1, 2013]
  1.4430 +  Avoid a possible memory leak in contrib/gregbook/readpng.c
  1.4431 +
  1.4432 +Version 1.6.1beta06 [March 4, 2013]
  1.4433 +  Better documentation of unknown handling API interactions.
  1.4434 +  Corrected Android builds and corrected libpng.vers with symbol
  1.4435 +    prefixing This adds an API to set optimization options externally,
  1.4436 +    providing an alternative and general solution for the non-portable
  1.4437 +    run-time tests used by the ARM Neon code.  It also makes those tests
  1.4438 +    compile and link on Android.
  1.4439 +  The order of settings vs options in pnglibconf.h is reversed to allow
  1.4440 +    settings to depend on options and options can now set (or override) the
  1.4441 +    defaults for settings.
  1.4442 +
  1.4443 +Version 1.6.1beta07 [March 7, 2013]
  1.4444 +  Corrected simplified API default gamma for color-mapped output, added
  1.4445 +    a flag to change default. In 1.6.0 when the simplified API was used
  1.4446 +    to produce color-mapped output from an input image with no gamma
  1.4447 +    information the gamma assumed for the input could be different from
  1.4448 +    that assumed for non-color-mapped output.  In particular 16-bit depth
  1.4449 +    input files were assumed to be sRGB encoded, whereas in the 'direct'
  1.4450 +    case they were assumed to have linear data.  This was an error.  The
  1.4451 +    fix makes the simplified API treat all input files the same way and
  1.4452 +    adds a new flag to the png_image::flags member to allow the
  1.4453 +    application/user to specify that 16-bit files contain sRGB data
  1.4454 +    rather than the default linear.
  1.4455 +  Fixed bugs in the pngpixel and makepng test programs.
  1.4456 +
  1.4457 +Version 1.6.1beta08 [March 7, 2013]
  1.4458 +  Fixed CMakelists.txt to allow building a single variant of the library
  1.4459 +    (Claudio Bley):
  1.4460 +  Introduced a PNG_LIB_TARGETS variable that lists all activated library
  1.4461 +    targets.  It is an error if this variable ends up empty, ie. you have
  1.4462 +    to build at least one library variant.
  1.4463 +  Made the *_COPY targets only depend on library targets actually being build.
  1.4464 +  Use PNG_LIB_TARGETS to unify a code path.
  1.4465 +  Changed the CREATE_SYMLINK macro to expect the full path to a file as the
  1.4466 +    first argument. When symlinking the filename component of that path is
  1.4467 +    determined and used as the link target.
  1.4468 +  Use copy_if_different in the CREATE_SYMLINK macro.
  1.4469 +
  1.4470 +Version 1.6.1beta09 [March 13, 2013]
  1.4471 +  Eliminated two warnings from the Intel C compiler. The warnings are
  1.4472 +    technically valid, although a reasonable treatment of division would
  1.4473 +    show it to be incorrect.
  1.4474 +
  1.4475 +Version 1.6.1rc01 [March 21, 2013]
  1.4476 +  No changes.
  1.4477 +
  1.4478 +Version 1.6.1 [March 28, 2013]
  1.4479 +  No changes.
  1.4480 +
  1.4481 +Version 1.6.2beta01 [April 14, 2013]
  1.4482 +  Updated documentation of 1.5.x to 1.6.x changes in iCCP chunk handling.
  1.4483 +  Fixed incorrect warning of excess deflate data. End condition - the
  1.4484 +    warning would be produced if the end of the deflate stream wasn't read
  1.4485 +    in the last row.  The warning is harmless.
  1.4486 +  Corrected the test on user transform changes on read. It was in the
  1.4487 +    png_set of the transform function, but that doesn't matter unless the
  1.4488 +    transform function changes the rowbuf size, and that is only valid if
  1.4489 +    transform_info is called.
  1.4490 +  Corrected a misplaced closing bracket in contrib/libtests/pngvalid.c
  1.4491 +    (Flavio Medeiros).
  1.4492 +  Corrected length written to uncompressed iTXt chunks (Samuli Suominen).
  1.4493 +    Bug was introduced in libpng-1.6.0.
  1.4494 +
  1.4495 +Version 1.6.2rc01 [April 18, 2013]
  1.4496 +  Added contrib/tools/fixitxt.c, to repair the erroneous iTXt chunk length
  1.4497 +    written by libpng-1.6.0 and 1.6.1.
  1.4498 +  Disallow storing sRGB information when the sRGB is not supported.
  1.4499 +
  1.4500 +Version 1.6.2rc02 [April 18, 2013]
  1.4501 +  Merge pngtest.c with libpng-1.7.0
  1.4502 +
  1.4503 +Version 1.6.2rc03 [April 22, 2013]
  1.4504 +  Trivial spelling cleanup.
  1.4505 +
  1.4506 +Version 1.6.2rc04 and 1.6.2rc05 [omitted]
  1.4507 +
  1.4508 +Version 1.6.2rc06 [April 24, 2013]
  1.4509 +  Reverted to version 1.6.2rc03.  Recent changes to arm/neon support
  1.4510 +    have been ported to libpng-1.7.0beta09 and will reappear in version
  1.4511 +    1.6.3beta01.
  1.4512 +
  1.4513 +Version 1.6.2 [April 25, 2013]
  1.4514 +  No changes.
  1.4515 +
  1.4516 +Version 1.6.3beta01 [April 25, 2013]
  1.4517 +  Revised stack marking in arm/filter_neon.S and configure.ac.
  1.4518 +  Ensure that NEON filter stuff is completely disabled when switched 'off'.
  1.4519 +    Previously the ARM NEON specific files were still built if the option
  1.4520 +    was switched 'off' as opposed to being explicitly disabled.
  1.4521 +
  1.4522 +Version 1.6.3beta02 [April 26, 2013]
  1.4523 +  Test for 'arm*' not just 'arm' in the host_cpu configure variable.
  1.4524 +  Rebuilt the configure scripts.
  1.4525 +
  1.4526 +Version 1.6.3beta03 [April 30, 2013]
  1.4527 +  Expanded manual paragraph about writing private chunks, particularly
  1.4528 +    the need to call png_set_keep_unknown_chunks() when writing them.
  1.4529 +  Avoid dereferencing NULL pointer possibly returned from
  1.4530 +     png_create_write_struct() (Andrew Church).
  1.4531 +
  1.4532 +Version 1.6.3beta05 [May 9, 2013]
  1.4533 +  Calculate our own zlib windowBits when decoding rather than trusting the
  1.4534 +    CMF bytes in the PNG datastream.
  1.4535 +  Added an option to force maximum window size for inflating, which was
  1.4536 +    the behavior of libpng15 and earlier.
  1.4537 +  Added png-fix-itxt and png-fix-too-far-back to the built programs and
  1.4538 +    removed warnings from the source code and timepng that are revealed as
  1.4539 +    a result.
  1.4540 +  Detect wrong libpng versions linked to png-fix-too-far-back, which currently
  1.4541 +    only works with libpng versions that can be made to reliably fail when
  1.4542 +    the deflate data contains an out-of-window reference.  This means only
  1.4543 +    1.6 and later.
  1.4544 +  Fixed gnu issues: g++ needs a static_cast, gcc 4.4.7 has a broken warning
  1.4545 +    message which it is easier to work round than ignore.
  1.4546 +  Updated contrib/pngminus/pnm2png.c (Paul Stewart):
  1.4547 +    Check for EOF
  1.4548 +    Ignore "#" delimited comments in input file to pnm2png.c.
  1.4549 +    Fixed whitespace handling
  1.4550 +    Added a call to png_set_packing()
  1.4551 +    Initialize dimension values so if sscanf fails at least we have known
  1.4552 +      invalid values.
  1.4553 +  Attempt to detect configuration issues with png-fix-too-far-back, which
  1.4554 +    requires both the correct libpng and the correct zlib to function
  1.4555 +    correctly.
  1.4556 +  Check ZLIB_VERNUM for mismatches, enclose #error in quotes
  1.4557 +  Added information in the documentation about problems with and fixes for
  1.4558 +    the bad CRC and bad iTXt chunk situations.
  1.4559 +
  1.4560 +Version 1.6.3beta06 [May 12, 2013]
  1.4561 +  Allow contrib/pngminus/pnm2png.c to compile without WRITE_INVERT and
  1.4562 +    WRITE_PACK supported (writes error message that it can't read P1 or
  1.4563 +    P4 PBM files).
  1.4564 +  Improved png-fix-too-far-back usage message, added --suffix option.
  1.4565 +  Revised contrib/pngminim/*/makefile to generate pnglibconf.h with the
  1.4566 +    right zlib header files.
  1.4567 +  Separated CPPFLAGS and CFLAGS in contrib/pngminim/*/makefile
  1.4568 +
  1.4569 +Version 1.6.3beta07 [June 8, 2013]
  1.4570 +  Removed a redundant test in png_set_IHDR().
  1.4571 +  Added set(CMAKE_CONFIGURATION_TYPES ...) to CMakeLists.txt (Andrew Hundt)
  1.4572 +  Deleted set(CMAKE_BUILD_TYPE) block from CMakeLists.txt
  1.4573 +  Enclose the prototypes for the simplified write API in
  1.4574 +    #ifdef PNG_STDIO_SUPPORTED/#endif
  1.4575 +  Make ARM NEON support work at compile time (not just configure time).
  1.4576 +    This moves the test on __ARM_NEON__ into pngconf.h to avoid issues when
  1.4577 +    using a compiler that compiles for multiple architectures at one time.
  1.4578 +  Removed PNG_FILTER_OPTIMIZATIONS and PNG_ARM_NEON_SUPPORTED from
  1.4579 +    pnglibconf.h, allowing more of the decisions to be made internally
  1.4580 +    (pngpriv.h) during the compile.  Without this, symbol prefixing is broken
  1.4581 +    under certain circumstances on ARM platforms.  Now only the API parts of
  1.4582 +    the optimizations ('check' vs 'api') are exposed in the public header files
  1.4583 +    except that the new setting PNG_ARM_NEON_OPT documents how libpng makes the
  1.4584 +    decision about whether or not to use the optimizations.
  1.4585 +  Protect symbol prefixing against CC/CPPFLAGS/CFLAGS useage.
  1.4586 +    Previous iOS/Xcode fixes for the ARM NEON optimizations moved the test
  1.4587 +    on __ARM_NEON__ from configure time to compile time.  This breaks symbol
  1.4588 +    prefixing because the definition of the special png_init_filter_functions
  1.4589 +    call was hidden at configure time if the relevant compiler arguments are
  1.4590 +    passed in CFLAGS as opposed to CC.  This change attempts to avoid all
  1.4591 +    the confusion that would result by declaring the init function even when
  1.4592 +    it is not used, so that it will always get prefixed.
  1.4593 +
  1.4594 +Version 1.6.3beta08 [June 18, 2013]
  1.4595 +  Revised libpng.3 so that "doclifter" can process it.
  1.4596 +
  1.4597 +Version 1.6.3beta09 [June 27, 2013]
  1.4598 +  Revised example.c to illustrate use of PNG_DEFAULT_sRGB and PNG_GAMMA_MAC_18
  1.4599 +    as parameters for png_set_gamma().  These have been available since
  1.4600 +    libpng-1.5.4.
  1.4601 +  Renamed contrib/tools/png-fix-too-far-back.c to pngfix.c and revised it
  1.4602 +    to check all compressed chunks known to libpng.
  1.4603 +
  1.4604 +Version 1.6.3beta10 [July 5, 2013]
  1.4605 +  Updated documentation to show default behavior of benign errors correctly.
  1.4606 +  Only compile ARM code when PNG_READ_SUPPORTED is defined.
  1.4607 +  Fixed undefined behavior in contrib/tools/pngfix.c and added new strip
  1.4608 +    option. pngfix relied on undefined behavior and even a simple change from
  1.4609 +    gcc to g++ caused it to fail.  The new strip option 'unsafe' has been
  1.4610 +    implemented and is the default if --max is given.  Option names have
  1.4611 +    been clarified, with --strip=transform now stripping the bKGD chunk,
  1.4612 +    which was stripped previously with --strip=unused.
  1.4613 +  Added all documented chunk types to pngpriv.h
  1.4614 +  Unified pngfix.c source with libpng17.
  1.4615 +
  1.4616 +Version 1.6.3rc01 [July 11, 2013]
  1.4617 +  No changes.
  1.4618 +
  1.4619 +Version 1.6.3 [July 18, 2013]
  1.4620 +  Revised manual about changes in iTXt chunk handling made in libpng-1.6.0.
  1.4621 +  Added "/* SAFE */" comments in pngrutil.c and pngrtran.c where warnings
  1.4622 +    may be erroneously issued by code-checking applications.
  1.4623 +
  1.4624 +Version 1.6.4beta01 [August 21, 2013]
  1.4625 +  Added information about png_set_options() to the manual.
  1.4626 +  Delay calling png_init_filter_functions() until a row with nonzero filter
  1.4627 +    is found.
  1.4628 +
  1.4629 +Version 1.6.4beta02 [August 30, 2013]
  1.4630 +  Fixed inconsistent conditional compilation of png_chunk_unknown_handling()
  1.4631 +    prototype, definition, and usage.  Made it depend on
  1.4632 +    PNG_HANDLE_AS_UNKNOWN_SUPPORTED everywhere.
  1.4633 +
  1.4634 +Version 1.6.4rc01 [September 5, 2013]
  1.4635 +  No changes.
  1.4636 +
  1.4637 +Version 1.6.4 [September 12, 2013]
  1.4638 +  No changes.
  1.4639 +
  1.4640 +Version 1.6.5 [September 14, 2013]
  1.4641 +  Removed two stray lines of code from arm/arm_init.c.
  1.4642 +
  1.4643 +Version 1.6.6 [September 16, 2013]
  1.4644 +  Removed two stray lines of code from arm/arm_init.c, again.
  1.4645 +
  1.4646 +Version 1.6.7beta01 [September 30, 2013]
  1.4647 +  Revised unknown chunk code to correct several bugs in the NO_SAVE_/NO_WRITE
  1.4648 +    combination
  1.4649 +  Allow HANDLE_AS_UNKNOWN to work when other options are configured off. Also
  1.4650 +    fixed the pngminim makefiles to work when $(MAKEFLAGS) contains stuff
  1.4651 +    which terminates the make options (as by default in recent versions of
  1.4652 +    Gentoo).
  1.4653 +  Avoid up-cast warnings in pngvalid.c. On ARM the alignment requirements of
  1.4654 +    png_modifier are greater than that of png_store and as a consequence
  1.4655 +    compilation of pngvalid.c results in a warning about increased alignment
  1.4656 +    requirements because of the bare cast to (png_modifier*). The code is safe,
  1.4657 +    because the pointer is known to point to a stack allocated png_modifier,
  1.4658 +    but this change avoids the warning.
  1.4659 +  Fixed default behavior of ARM_NEON_API. If the ARM NEON API option was
  1.4660 +    compiled without the CHECK option it defaulted to on, not off.
  1.4661 +  Check user callback behavior in pngunknown.c. Previous versions compiled
  1.4662 +    if SAVE_UNKNOWN was not available but did nothing since the callback
  1.4663 +    was never implemented.
  1.4664 +  Merged pngunknown.c with 1.7 version and back ported 1.7 improvements/fixes
  1.4665 +
  1.4666 +Version 1.6.7beta02 [October 12, 2013]
  1.4667 +  Made changes for compatibility with automake 1.14:
  1.4668 +    1) Added the 'compile' program to the list of programs that must be cleaned
  1.4669 +       in autogen.sh
  1.4670 +    2) Added 'subdir-objects' which causes .c files in sub-directories to be
  1.4671 +       compiled such that the corresponding .o files are also in the
  1.4672 +       sub-directory.  This is because automake 1.14 warns that the
  1.4673 +       current behavior of compiling to the top level directory may be removed
  1.4674 +       in the future.
  1.4675 +    3) Updated dependencies on pnglibconf.h to match the new .o locations and
  1.4676 +       added all the files in contrib/libtests and contrib/tools that depend
  1.4677 +       on pnglibconf.h
  1.4678 +    4) Added 'BUILD_SOURCES = pnglibconf.h'; this is the automake recommended
  1.4679 +       way of handling the dependencies of sources that are machine generated;
  1.4680 +       unfortunately it only works if the user does 'make all' or 'make check',
  1.4681 +       so the dependencies (3) are still required.
  1.4682 +  Cleaned up (char*) casts of zlib messages. The latest version of the Intel C
  1.4683 +    compiler complains about casting a string literal as (char*), so copied the
  1.4684 +    treatment of z_const from the library code into pngfix.c
  1.4685 +  Simplified error message code in pngunknown. The simplification has the
  1.4686 +    useful side effect of avoiding a bogus warning generated by the latest
  1.4687 +    version of the Intel C compiler (it objects to
  1.4688 +    condition ? string-literal : string-literal).
  1.4689 +  Make autogen.sh work with automake 1.13 as well as 1.14. Do this by always
  1.4690 +    removing the 1.14 'compile' script but never checking for it.
  1.4691 +
  1.4692 +Version 1.6.7beta03 [October 19, 2013]
  1.4693 +  Added ARMv8 support (James Yu <james.yu at linaro.org>).  Added file
  1.4694 +    arm/filter_neon_intrinsics.c; enable with -mfpu=neon.
  1.4695 +  Revised pngvalid to generate size images with as many filters as it can
  1.4696 +    manage, limited by the number of rows.
  1.4697 +  Cleaned up ARM NEON compilation handling. The tests are now in pngpriv.h
  1.4698 +    and detect the broken GCC compilers.
  1.4699 +
  1.4700 +Version 1.6.7beta04 [October 26, 2013]
  1.4701 +  Allow clang derived from older GCC versions to use ARM intrinsics. This
  1.4702 +    causes all clang builds that use -mfpu=neon to use the intrinsics code,
  1.4703 +    not the assembler code.  This has only been tested on iOS 7. It may be
  1.4704 +    necessary to exclude some earlier clang versions but this seems unlikely.
  1.4705 +  Changed NEON implementation selection mechanism. This allows assembler
  1.4706 +    or intrinsics to be turned on at compile time during the build by defining
  1.4707 +    PNG_ARM_NEON_IMPLEMENTATION to the correct value (2 or 1).  This macro
  1.4708 +    is undefined by default and the build type is selected in pngpriv.h.
  1.4709 +
  1.4710 +Version 1.6.7rc01 [November 2, 2013]
  1.4711 +  No changes.
  1.4712 +
  1.4713 +Version 1.6.7rc02 [November 7, 2013]
  1.4714 +  Fixed #include in filter_neon_intrinsics.c and ctype macros. The ctype char
  1.4715 +    checking macros take an unsigned char argument, not a signed char.
  1.4716 +
  1.4717 +Version 1.6.7 [November 14, 2013]
  1.4718 +  No changes.
  1.4719 +
  1.4720 +Version 1.6.8beta01 [November 24, 2013]
  1.4721 +  Moved prototype for png_handle_unknown() in pngpriv.h outside of
  1.4722 +    the #ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED/#endif block.
  1.4723 +  Added "-Wall" to CFLAGS in contrib/pngminim/*/makefile
  1.4724 +  Conditionally compile some unused functions reported by -Wall in
  1.4725 +    pngminim.
  1.4726 +  Fixed 'minimal' builds. Various obviously useful minimal configurations
  1.4727 +    don't build because of missing contrib/libtests test programs and
  1.4728 +    overly complex dependencies in scripts/pnglibconf.dfa. This change
  1.4729 +    adds contrib/conftest/*.dfa files that can be used in automatic build
  1.4730 +    scripts to ensure that these configurations continue to build.
  1.4731 +  Enabled WRITE_INVERT and WRITE_PACK in contrib/pngminim/encoder.
  1.4732 +  Fixed pngvalid 'fail' function declaration on the Intel C Compiler.
  1.4733 +    This reverts to the previous 'static' implementation and works round
  1.4734 +    the 'unused static function' warning by using PNG_UNUSED().
  1.4735 +
  1.4736 +Version 1.6.8beta02 [November 30, 2013]
  1.4737 +  Removed or marked PNG_UNUSED some harmless "dead assignments" reported
  1.4738 +    by clang scan-build.
  1.4739 +  Changed tabs to 3 spaces in png_debug macros and changed '"%s"m'
  1.4740 +    to '"%s" m' to improve portability among compilers.
  1.4741 +  Changed png_free_default() to free() in pngtest.c
  1.4742 +
  1.4743 +Version 1.6.8rc01 [December 12, 2013]
  1.4744 +  Tidied up pngfix inits and fixed pngtest no-write builds.
  1.4745 +
  1.4746 +Version 1.6.8rc02 [December 14, 2013]
  1.4747 +  Handle zero-length PLTE chunk or NULL palette with png_error()
  1.4748 +    instead of png_chunk_report(), which by default issues a warning
  1.4749 +    rather than an error, leading to later reading from a NULL pointer
  1.4750 +    (png_ptr->palette) in png_do_expand_palette(). This is CVE-2013-6954
  1.4751 +    and VU#650142.  Libpng-1.6.1 through 1.6.7 are vulnerable.
  1.4752 +    Libpng-1.6.0 and earlier do not have this bug.
  1.4753 +
  1.4754 +Version 1.6.8 [December 19, 2013]
  1.4755 +  No changes.
  1.4756 +
  1.4757 +Version 1.6.9beta01 [December 26, 2013]
  1.4758 +  Bookkeeping: Moved functions around (no changes). Moved transform
  1.4759 +    function definitions before the place where they are called so that
  1.4760 +    they can be made static. Move the intrapixel functions and the
  1.4761 +    grayscale palette builder out of the png?tran.c files. The latter
  1.4762 +    isn't a transform function and is no longer used internally, and the
  1.4763 +    former MNG specific functions are better placed in pngread/pngwrite.c
  1.4764 +  Made transform implementation functions static. This makes the internal
  1.4765 +    functions called by png_do_{read|write}_transformations static. On an
  1.4766 +    x86-64 DLL build (Gentoo Linux) this reduces the size of the text
  1.4767 +    segment of the DLL by 1208 bytes, about 0.6%. It also simplifies
  1.4768 +    maintenance by removing the declarations from pngpriv.h and allowing
  1.4769 +    easier changes to the internal interfaces.
  1.4770 +  Rebuilt configure scripts with automake-1.14.1 and autoconf-2.69
  1.4771 +    in the tar distributions.
  1.4772 +
  1.4773 +Version 1.6.9beta02 [January 1, 2014]
  1.4774 +  Added checks for libpng 1.5 to pngvalid.c.  This supports the use of
  1.4775 +    this version of pngvalid in libpng 1.5
  1.4776 +  Merged with pngvalid.c from libpng-1.7 changes to create a single
  1.4777 +    pngvalid.c
  1.4778 +  Removed #error macro from contrib/tools/pngfix.c (Thomas Klausner).
  1.4779 +  Merged pngrio.c, pngtrans.c, pngwio.c, and pngerror.c with libpng-1.7.0
  1.4780 +  Merged libpng-1.7.0 changes to make no-interlace configurations work
  1.4781 +    with test programs.
  1.4782 +  Revised pngvalid.c to support libpng 1.5, which does not support the
  1.4783 +    PNG_MAXIMUM_INFLATE_WINDOW option, so #define it out when appropriate in
  1.4784 +    pngvalid.c
  1.4785 +  Allow unversioned links created on install to be disabled in configure.
  1.4786 +    In configure builds 'make install' changes/adds links like png.h
  1.4787 +    and libpng.a to point to the newly installed, versioned, files (e.g.
  1.4788 +    libpng17/png.h and libpng17.a). Three new configure options and some
  1.4789 +    rearrangement of Makefile.am allow creation of these links to be disabled.
  1.4790 +
  1.4791 +Version 1.6.9beta03 [January 10, 2014]
  1.4792 +  Removed potentially misleading warning from png_check_IHDR().
  1.4793 +
  1.4794 +Version 1.6.9beta04 [January 20, 2014]
  1.4795 +  Updated scripts/makefile.* to use CPPFLAGS (Cosmin).
  1.4796 +  Added clang attribute support (Cosmin).
  1.4797 +
  1.4798 +Version 1.6.9rc01 [January 28, 2014]
  1.4799 +  No changes.
  1.4800 +
  1.4801 +Version 1.6.9rc02 [January 30, 2014]
  1.4802 +  Quiet an uninitialized memory warning from VC2013 in png_get_png().
  1.4803 +
  1.4804 +Version 1.6.9 [February 6, 2014]
  1.4805 +
  1.4806 +Version 1.6.10beta01 [February 9, 2014]
  1.4807 +  Backported changes from libpng-1.7.0beta30 and beta31:
  1.4808 +  Fixed a large number of instances where PNGCBAPI was omitted from
  1.4809 +    function definitions.
  1.4810 +  Added pngimage test program for png_read_png() and png_write_png()
  1.4811 +    with two new test scripts.
  1.4812 +  Removed dependence on !PNG_READ_EXPAND_SUPPORTED for calling
  1.4813 +    png_set_packing() in png_read_png().
  1.4814 +  Fixed combination of ~alpha with shift. On read invert alpha, processing
  1.4815 +    occurred after shift processing, which causes the final values to be
  1.4816 +    outside the range that should be produced by the shift. Reversing the
  1.4817 +    order on read makes the two transforms work together correctly and mirrors
  1.4818 +    the order used on write.
  1.4819 +  Do not read invalid sBIT chunks. Previously libpng only checked sBIT
  1.4820 +    values on write, so a malicious PNG writer could therefore cause
  1.4821 +    the read code to return an invalid sBIT chunk, which might lead to
  1.4822 +    application errors or crashes.  Such chunks are now skipped (with
  1.4823 +    chunk_benign_error).
  1.4824 +  Make png_read_png() and png_write_png() prototypes in png.h depend
  1.4825 +    upon PNG_READ_SUPPORTED and PNG_WRITE_SUPPORTED.
  1.4826 +  Support builds with unsupported PNG_TRANSFORM_* values.  All of the
  1.4827 +    PNG_TRANSFORM_* values are always defined in png.h and, because they
  1.4828 +    are used for both read and write in some cases, it is not reliable
  1.4829 +    to #if out ones that are totally unsupported. This change adds error
  1.4830 +    detection in png_read_image() and png_write_image() to do a
  1.4831 +    png_app_error() if the app requests something that cannot be done
  1.4832 +    and it adds corresponding code to pngimage.c to handle such options
  1.4833 +    by not attempting to test them.
  1.4834 +
  1.4835 +Version 1.6.10beta02 [February 23, 2014]
  1.4836 +  Moved redefines of png_error(), png_warning(), png_chunk_error(),
  1.4837 +    and png_chunk_warning() from pngpriv.h to png.h to make them visible
  1.4838 +    to libpng-calling applications.
  1.4839 +  Moved OS dependent code from arm/arm_init.c, to allow the included
  1.4840 +    implementation of the ARM NEON discovery function to be set at
  1.4841 +    build-time and provide sample implementations from the current code in the
  1.4842 +    contrib/arm-neon subdirectory. The __linux__ code has also been changed to
  1.4843 +    compile and link on Android by using /proc/cpuinfo, and the old linux code
  1.4844 +    is in contrib/arm-neon/linux-auxv.c.  The new code avoids POSIX and Linux
  1.4845 +    dependencies apart from opening /proc/cpuinfo and is C90 compliant.
  1.4846 +  Check for info_ptr == NULL early in png_read_end() so we don't need to
  1.4847 +    run all the png_handle_*() and depend on them to return if info_ptr == NULL.
  1.4848 +    This improves the performance of png_read_end(png_ptr, NULL) and makes
  1.4849 +    it more robust against future programming errors.
  1.4850 +  Check for __has_extension before using it in pngconf.h, to
  1.4851 +    support older Clang versions (Jeremy Sequoia).
  1.4852 +  Treat CRC error handling with png_set_crc_action(), instead of with
  1.4853 +    png_set_benign_errors(), which has been the case since libpng-1.6.0beta18.
  1.4854 +  Use a user warning handler in contrib/gregbook/readpng2.c instead of default,
  1.4855 +    so warnings will be put on stderr even if libpng has CONSOLE_IO disabled.
  1.4856 +  Added png_ptr->process_mode = PNG_READ_IDAT_MODE in png_push_read_chunk
  1.4857 +    after recognizing the IDAT chunk, which avoids an infinite loop while
  1.4858 +    reading a datastream whose first IDAT chunk is of zero-length.
  1.4859 +    This fixes CERT VU#684412 and CVE-2014-0333.
  1.4860 +  Don't recognize known sRGB profiles as sRGB if they have been hacked,
  1.4861 +    but don't reject them and don't issue a copyright violation warning.
  1.4862 +
  1.4863 +Version 1.6.10beta03 [February 25, 2014]
  1.4864 +  Moved some documentation from png.h to libpng.3 and libpng-manual.txt
  1.4865 +  Minor editing of contrib/arm-neon/README and contrib/examples/*.c
  1.4866 +
  1.4867 +Version 1.6.10rc01 [February 27, 2014]
  1.4868 +  Fixed typos in the manual and in scripts/pnglibconf.dfa (CFLAGS -> CPPFLAGS
  1.4869 +    and PNG_USR_CONFIG -> PNG_USER_CONFIG).
  1.4870 +
  1.4871 +Version 1.6.10rc02 [February 28, 2014]
  1.4872 +  Removed unreachable return statement after png_chunk_error()
  1.4873 +    in pngrutil.c
  1.4874 +
  1.4875 +Version 1.6.10rc03 [March 4, 2014]
  1.4876 +  Un-deprecated png_data_freer().
  1.4877 +
  1.4878 +Version 1.6.10 [March 6, 2014]
  1.4879 +
  1.4880 +Send comments/corrections/commendations to png-mng-implement at lists.sf.net
  1.4881 +(subscription required; visit
  1.4882 +https://lists.sourceforge.net/lists/listinfo/png-mng-implement
  1.4883 +to subscribe)
  1.4884 +or to glennrp at users.sourceforge.net
  1.4885 +
  1.4886 +Glenn R-P
  1.4887 +#endif

mercurial