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