-Changes since the last public release (1.4.3):
- Removed extraneous new_push_process_row.c file.
- Revised the "SEE ALSO" style of libpng.3, libpngpf.3, and png.5
- Removed some newly-added TAB characters from pngpread.c.
- Fixed some indentation in pngpread.c and pngrutil.c
- Changed "extern PNG_EXPORT" to "PNG_EXPORT" in png.h (Jan Nijtmans)
- Changed "extern" to "PNG_EXTERN" in pngpriv.h (except for the 'extern "C" {')
- Put "#ifndef PNG_EXTERN, #endif" around "#define PNG_EXTERN" in pngpriv.h
- Added -DNO_PNG_SNPRINTF to CFLAGS in scripts/makefile.dj2
- Moved the definition of png_snprintf() outside of the enclosing
- #ifdef blocks in pngconf.h
- Made a special case "#define PNGAPI" in pngconf.h for WATCOM.
- Removed reference to cbuilder5/* from Makefile.in and Makefile.am
- Updated the read macros and functions from 1.5.0beta38.
- Updated projects/visualc71 so it can find scripts/pnglibconf.h
- Removed unused png_mem_* defines from pngconf.h.
- Correct use of _WINDOWS_ in pngconf.h
- Don't try to use version-script with cygwin/mingw.
- Revised contrib/gregbook to work under cygwin/mingw.
- Updated prebuilt aclocal.m4 and ltmain.sh
- Add .dll.a to the list of extensions to be symlinked by Makefile.am (Yaakov)
- Updated CMakelists.txt to use CMAKE_INSTALL_LIBDIR variable; useful for
- installing libpng in /usr/lib64 (Funda Wang).
- Revised CMakeLists.txt to put the man pages in share/man/man* not man/man*
- Revised CMakeLists.txt to make symlinks instead of copies when installing.
- Moved "#include pngusr.h" ahead of PNG_USER_PRIVATEBUILD test in pngconf.h
- Eliminated a deprecated reference to png_ptr->io_ptr in pngtest.c
- Eliminated new unnecessary #if tests regarding the sCAL chunk from pngrutil.c
- Updated the xcode project to work with libpng-1.4.x and added iOS targets
- for simulator and device (Philippe Hausler).
- Revised autogen.sh to recognize and use $AUTOCONF, $AUTOMAKE, $AUTOHEADER,
- $AUTOPOINT, $ACLOCAL and $LIBTOOLIZE
- Rebuilt configure scripts with automake-1.11.1 instead of automake-1.11.
- Removed unused mkinstalldirs file.
+Changes since the last public release (1.5.6):
+ Added support for ARM processor (Mans Rullgard)
+ Fixed bug in pngvalid on early allocation failure; fixed type cast in
+ pngmem.c; pngvalid would attempt to call png_error() if the allocation
+ of a png_struct or png_info failed. This would probably have led to a
+ crash. The pngmem.c implementation of png_malloc() included a cast
+ to png_size_t which would fail on large allocations on 16-bit systems.
+ Fix for the preprocessor of the Intel C compiler. The preprocessor
+ splits adjacent @ signs with a space; this changes the concatentation
+ token from @-@-@ to PNG_JOIN; that should work with all compiler
+ preprocessors.
+ Paeth filter speed improvements from work by Siarhei Siamashka. This
+ changes the 'Paeth' reconstruction function to improve the GCC code
+ generation on x86. The changes are only part of the suggested ones;
+ just the changes that definitely improve speed and remain simple.
+ The changes also slightly increase the clarity of the code.
+ Check compression_type parameter in png_get_iCCP and remove spurious
+ casts. The compression_type parameter is always assigned to, so must
+ be non-NULL. The cast of the profile length potentially truncated the
+ value unnecessarily on a 16-bit int system, so the cast of the (byte)
+ compression type to (int) is specified by ANSI-C anyway.
+ Fixed FP division by zero in pngvalid.c; the 'test_pixel' code left
+ the sBIT fields in the test pixel as 0, which resulted in a floating
+ point division by zero which was irrelevant but causes systems where
+ FP exceptions cause a crash. Added code to pngvalid to turn on FP
+ exceptions if the appropriate glibc support is there to ensure this is
+ tested in the future.
+ Added versioning to pnglibconf.h comments.
+ Installed more accurate linear to sRGB conversion tables. The slightly
+ modified tables reduce the number of 16-bit values that
+ convert to an off-by-one 8-bit value. The "makesRGB.c" code that was used
+ to generate the tables is now in a contrib/sRGBtables sub-directory.
+ Added run-time detection of NEON support.
+ Multiple transform bug fixes plus a work-round for double gamma correction.
+ libpng does not support more than one transform that requires linear data
+ at once - if this is tried typically the results is double gamma
+ correction. Since the simplified APIs can need rgb to gray combined with
+ a compose operation it is necessary to do one of these outside the main
+ libpng transform code. This check-in also contains fixes to various bugs
+ in compose and rgb to gray (on palette).
+ Fixes for C++ compilation using g++ When libpng source is compiled
+ using g++. The compiler imposes C++ rules on the C source; thus it
+ is desireable to make the source work with either C or C++ rules
+ without throwing away useful error information. This change adds
+ png_voidcast to allow C semantic (void*) cases or the corresponding
+ C++ static_cast operation, as appropriate.
+ Added --noexecstack to assembler file compilation. GCC does not set
+ this on assembler compilation, even though it does on C compilation.
+ This creates security issues if assembler code is enabled; the
+ work-around is to set it by default in the flags for $(CCAS)
+ Removed "zTXt" from warning in generic chunk decompression function.
+ Validate time settings passed to pngset() and png_convert_to_rfc1123()
+ (Frank Busse).
+ Added MINGW support to CMakeLists.txt
+ Reject invalid compression flag or method when reading the iTXt chunk.
+ Moved pngvalid.c into contrib/libtests
+ Rebuilt Makefile.in, configure, etc., with autoconf-2.68
+ Replaced an "#if" with "#ifdef" in pngrtran.c
+ Revised #if PNG_DO_BC block in png.c (use #ifdef and add #else)
+ Revised pngconf.h to use " __declspec(restrict)" only when MSC_VER >= 1400,
+ as in libpng-1.5.4.
+ Put CRLF line endings in the owatcom project files.
+ Updated CMakeLists.txt to account for the relocation of pngvalid.c
+ Minor fixes to pngvalid.c for gcc 4.6.2 compatibility to remove warnings
+ reported by earlier versions.