diff --git a/ANNOUNCE b/ANNOUNCE index 4a235dec9..9a6a06c7f 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.7.0beta76 - December 29, 2015 +Libpng 1.7.0beta76 - December 30, 2015 This is not intended to be a public release. It will be replaced within a few weeks by a public version or by another test version. @@ -1139,7 +1139,7 @@ Version 1.7.0beta75 [December 21, 2015] struct; put the check that relies on pz->list being non-NULL second (David Drysdale). -Version 1.7.0beta76 [December 29, 2015] +Version 1.7.0beta76 [December 30, 2015] Corrected the options handling. Setting the new, higher, option bits triggered the byte check (which is no longer necessary). Added NULL pz->list test to png_zlib_compress_validate(). This seems @@ -1149,6 +1149,22 @@ Version 1.7.0beta76 [December 29, 2015] Added code to pngcp.c to iterate through the command line options when non-list options have the 'all' parameter. This is used to rapidly test the effect of different zlib options. + Revised the handling of tIME and text chunks on read to record the + location of the chunks relative to PLTE and IDAT. Behavior on write + is unchanged except that if the position was recorded on read it will + be re-used. This involves an ABI change to the png_text_struct; a + one byte location field is added (with the same meaning as the one + used to record unknown chunk location.) Because this field is only + used on read there is no API change unless a png_info from a libpng + read is passed to a subsequent libpng write (this did not work very + well before 1.7; the tIME chunk could get duplicated.) The new field + is ignored by png_set_text(), resetting it to the current position + in the read or write stream. On write the position is set to the + next location to be written unless the write has not started (the + position is before the signature) in which case the location is set + to PNG_HAVE_PLTE|PNG_AFTER_IDAT. When the chunk is written the + position is set to the actual write location (effectively the position + is frozen.) Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index f3aeff541..6aedcf1e6 100644 --- a/CHANGES +++ b/CHANGES @@ -5438,7 +5438,7 @@ Version 1.7.0beta75 [December 21, 2015] struct; put the check that relies on pz->list being non-NULL second (David Drysdale). -Version 1.7.0beta76 [December 29, 2015] +Version 1.7.0beta76 [December 30, 2015] Corrected the options handling. Setting the new, higher, option bits triggered the byte check (which is no longer necessary). Added NULL pz->list test to png_zlib_compress_validate(). This seems @@ -5448,6 +5448,22 @@ Version 1.7.0beta76 [December 29, 2015] Added code to pngcp.c to iterate through the command line options when non-list options have the 'all' parameter. This is used to rapidly test the effect of different zlib options. + Revised the handling of tIME and text chunks on read to record the + location of the chunks relative to PLTE and IDAT. Behavior on write + is unchanged except that if the position was recorded on read it will + be re-used. This involves an ABI change to the png_text_struct; a + one byte location field is added (with the same meaning as the one + used to record unknown chunk location.) Because this field is only + used on read there is no API change unless a png_info from a libpng + read is passed to a subsequent libpng write (this did not work very + well before 1.7; the tIME chunk could get duplicated.) The new field + is ignored by png_set_text(), resetting it to the current position + in the read or write stream. On write the position is set to the + next location to be written unless the write has not started (the + position is before the signature) in which case the location is set + to PNG_HAVE_PLTE|PNG_AFTER_IDAT. When the chunk is written the + position is set to the actual write location (effectively the position + is frozen.) Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/png.c b/png.c index 76b918f18..008ad0641 100644 --- a/png.c +++ b/png.c @@ -705,14 +705,14 @@ png_get_copyright(png_const_structrp png_ptr) #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.7.0beta76 - December 25, 2015" PNG_STRING_NEWLINE \ + "libpng version 1.7.0beta76 - December 30, 2015" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson" \ PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ PNG_STRING_NEWLINE; # else - return "libpng version 1.7.0beta76 - December 25, 2015\ + return "libpng version 1.7.0beta76 - December 30, 2015\ Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."; diff --git a/png.h b/png.h index 01c1d433e..0d2c09db2 100644 --- a/png.h +++ b/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.7.0beta76, December 25, 2015 + * libpng version 1.7.0beta76, December 30, 2015 * * Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -12,7 +12,7 @@ * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.7.0beta76, December 25, 2015: + * libpng versions 0.97, January 1998, through 1.7.0beta76, December 30, 2015: * Glenn Randers-Pehrson. * See also "Contributing Authors", below. */ @@ -25,7 +25,7 @@ * * This code is released under the libpng license. * - * libpng versions 1.0.7, July 1, 2000, through 1.7.0beta76, December 25, 2015, are + * libpng versions 1.0.7, July 1, 2000, through 1.7.0beta76, December 30, 2015, are * Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, are * derived from libpng-1.0.6, and are distributed according to the same * disclaimer and license as libpng-1.0.6 with the following individuals @@ -218,7 +218,7 @@ * Y2K compliance in libpng: * ========================= * - * December 25, 2015 + * December 30, 2015 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. @@ -288,7 +288,7 @@ /* Version information for png.h - this should match the version in png.c */ #define PNG_LIBPNG_VER_STRING "1.7.0beta76" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.7.0beta76 - December 25, 2015\n" + " libpng version 1.7.0beta76 - December 30, 2015\n" #define PNG_LIBPNG_VER_SONUM 17 #define PNG_LIBPNG_VER_DLLNUM 17 diff --git a/pngconf.h b/pngconf.h index bbd1730ee..a74d185f7 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.7.0beta76, December 25, 2015 + * libpng version 1.7.0beta76, December 30, 2015 * * Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngset.c b/pngset.c index ab9b3c6bd..33fa8b20a 100644 --- a/pngset.c +++ b/pngset.c @@ -679,7 +679,7 @@ get_location(png_const_structrp png_ptr) /* Return the correct location flag for a chunk. For a png_set_ * called during read this is the current read location, for a * png_set_ called during write it is the following write location - * (because the currents at the current location have already been written.) + * (because the chunks at the current location have already been written.) * For a png_set_ called before read starts (none of the 'position' * mode bits are set) the position is set to the start (PNG_HAVE_IHDR). For * a png_set_chunk> called before write starts PNG_HAVE_PLTE|PNG_AFTER_IDAT diff --git a/pngwrite.c b/pngwrite.c index 5afb7d8f4..fa312f239 100644 --- a/pngwrite.c +++ b/pngwrite.c @@ -134,7 +134,7 @@ png_write_text(png_structrp png_ptr, png_const_inforp info_ptr, png_byte where) } /* The chunk was written, record where. This allows the location to have - * multiple bits set, the first successful write freezes the location. + * multiple bits set; the first successful write freezes the location. */ info_ptr->text[i].location = where; }