diff --git a/ANNOUNCE b/ANNOUNCE index 218042342..89a1237b3 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.7.0alpha11 - February 9, 2013 +Libpng 1.7.0alpha11 - February 10, 2013 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. @@ -134,7 +134,7 @@ Version 1.7.0alpha10 [February 5, 2013] in double quotes unless it is to be macro substituted the fix should work everywhere. -Version 1.7.0alpha11 [February 9, 2013] +Version 1.7.0alpha11 [February 10, 2013] Enable parallel tests and rearrange TESTS order to take advantage of the massive speed improvements use a make capable of parallel builds on a multi-CPU machine and pass the right arguments to make (-j10000 @@ -160,6 +160,13 @@ Version 1.7.0alpha11 [February 9, 2013] unpredictable depending on the order make chooses to build pngprefix.h and pnglibconf.h, often the error goes unnoticed because there is a system pnglibconf.h to use instead. + Accept "," as a separator in pnglibconf.dfa and allow for + continuation lines. This adds to the syntax of "option" and "chunk" lines, + allowing the elements to be separated by a "," at the end of an element and + interpreting a "," at end of line as a continuation - so the following line + is read. The new syntax is optional and solely provided for readability. + Enclosed the new png_get_palette_max in #ifdef PNG_GET_PALETTE_MAX_SUPPORTED + block, and revised pnglibconf.h and pnglibconf.h.prebuilt accordingly. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index 3bd413489..e3e042081 100644 --- a/CHANGES +++ b/CHANGES @@ -4420,7 +4420,7 @@ Version 1.7.0alpha10 [February 5, 2013] in double quotes unless it is to be macro substituted the fix should work everywhere. -Version 1.7.0alpha11 [February 9, 2013] +Version 1.7.0alpha11 [February 10, 2013] Enable parallel tests and rearrange TESTS order to take advantage of the massive speed improvements use a make capable of parallel builds on a multi-CPU machine and pass the right arguments to make (-j10000 @@ -4446,6 +4446,13 @@ Version 1.7.0alpha11 [February 9, 2013] unpredictable depending on the order make chooses to build pngprefix.h and pnglibconf.h, often the error goes unnoticed because there is a system pnglibconf.h to use instead. + Accept "," as a separator in pnglibconf.dfa and allow for + continuation lines. This adds to the syntax of "option" and "chunk" lines, + allowing the elements to be separated by a "," at the end of an element and + interpreting a "," at end of line as a continuation - so the following line + is read. The new syntax is optional and solely provided for readability. + Enclosed the new png_get_palette_max in #ifdef PNG_GET_PALETTE_MAX_SUPPORTED + block, and revised pnglibconf.h and pnglibconf.h.prebuilt accordingly. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/png.h b/png.h index 61b1ed014..3b4287e3c 100644 --- a/png.h +++ b/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.7.0alpha11 - February 8, 2013 + * libpng version 1.7.0alpha11 - February 10, 2013 * Copyright (c) 1998-2013 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -11,7 +11,7 @@ * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.7.0alpha11 - February 8, 2013: Glenn + * libpng versions 0.97, January 1998, through 1.7.0alpha11 - February 10, 2013: Glenn * See also "Contributing Authors", below. * * Note about libpng version numbers: @@ -199,7 +199,7 @@ * * This code is released under the libpng license. * - * libpng versions 1.2.6, August 15, 2004, through 1.7.0alpha11, February 8, 2013, are + * libpng versions 1.2.6, August 15, 2004, through 1.7.0alpha11, February 10, 2013, are * Copyright (c) 2004, 2006-2013 Glenn Randers-Pehrson, and are * distributed according to the same disclaimer and license as libpng-1.2.5 * with the following individual added to the list of Contributing Authors: @@ -311,7 +311,7 @@ * Y2K compliance in libpng: * ========================= * - * February 8, 2013 + * February 10, 2013 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. @@ -379,7 +379,7 @@ /* Version information for png.h - this should match the version in png.c */ #define PNG_LIBPNG_VER_STRING "1.7.0alpha11" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.7.0alpha11 - February 8, 2013\n" + " libpng version 1.7.0alpha11 - February 10, 2013\n" #define PNG_LIBPNG_VER_SONUM 17 #define PNG_LIBPNG_VER_DLLNUM 17 @@ -3208,9 +3208,12 @@ PNG_EXPORT(240, int, png_image_write_to_stdio, (png_imagep image, FILE *file, defined(PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED) PNG_EXPORT(242, void, png_set_check_for_invalid_index, (png_structrp png_ptr, int allowed)); +#if defined(PNG_READ_GET_PALETTE_MAX_SUPPORTED) || \ + defined(PNG_READ_GET_PALETTE_MAX_SUPPORTED) PNG_EXPORT(243, int, png_get_palette_max, (png_const_structrp png_ptr, png_const_inforp info_ptr)); #endif +#endif /* Maintainer: Put new public prototypes here ^, in libpng.3, and project * defs diff --git a/pngget.c b/pngget.c index 5a6d96652..61eb0cbf4 100644 --- a/pngget.c +++ b/pngget.c @@ -1163,6 +1163,7 @@ png_get_io_chunk_type (png_const_structrp png_ptr) #endif /* ?PNG_IO_STATE_SUPPORTED */ #ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED +#ifdef PNG_GET_PALETTE_MAX_SUPPORTED int PNGAPI png_get_palette_max(png_const_structrp png_ptr, png_const_inforp info_ptr) { @@ -1172,5 +1173,6 @@ png_get_palette_max(png_const_structrp png_ptr, png_const_inforp info_ptr) return (-1); } #endif +#endif #endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */ diff --git a/scripts/pnglibconf.dfa b/scripts/pnglibconf.dfa index 50d72a3ad..f7edc37a1 100644 --- a/scripts/pnglibconf.dfa +++ b/scripts/pnglibconf.dfa @@ -39,6 +39,11 @@ file pnglibconf.h scripts/pnglibconf.dfa PNGLCONF_H # used as given (e.g. enables GAMMA just expands to that on the # correspond READ_name and WRITE_name lines.) # +# "," may be used to separate options on an 'option' line and is ignored; it +# doesn't change the meaning of the line. (NOT setting, where "," becomes +# part of the setting!) A comma at the end of an option line causes a +# continuation (the next line is included in the option too.) +# # Note that the 'on' and 'off' keywords, while valid on both option # and chunk, should not be used in this file because they force the # relevant options on or off. @@ -416,12 +421,12 @@ option READ_TRANSFORMS requires READ # If you handle gamma issues outside libpng then you do not need the libpng # gamma processing; and it is an enormous waste of space. You just need to # remove the use of libpng APIs that depend on it. -option READ_GAMMA requires READ_TRANSFORMS READ_gAMA +option READ_GAMMA requires READ_TRANSFORMS, READ_gAMA -option READ_ALPHA_MODE requires READ_TRANSFORMS READ_GAMMA -option READ_BACKGROUND requires READ_TRANSFORMS READ_STRIP_ALPHA READ_GAMMA +option READ_ALPHA_MODE requires READ_TRANSFORMS, READ_GAMMA +option READ_BACKGROUND requires READ_TRANSFORMS, READ_STRIP_ALPHA, READ_GAMMA option READ_BGR requires READ_TRANSFORMS -option READ_EXPAND_16 requires READ_TRANSFORMS READ_16BIT READ_EXPAND +option READ_EXPAND_16 requires READ_TRANSFORMS, READ_16BIT, READ_EXPAND option READ_EXPAND requires READ_TRANSFORMS option READ_FILLER requires READ_TRANSFORMS option READ_GRAY_TO_RGB requires READ_TRANSFORMS @@ -429,13 +434,13 @@ option READ_INVERT_ALPHA requires READ_TRANSFORMS option READ_INVERT requires READ_TRANSFORMS option READ_PACK requires READ_TRANSFORMS option READ_PACKSWAP requires READ_TRANSFORMS -option READ_RGB_TO_GRAY requires READ_TRANSFORMS READ_GAMMA +option READ_RGB_TO_GRAY requires READ_TRANSFORMS, READ_GAMMA option READ_SCALE_16_TO_8 requires READ_TRANSFORMS option READ_SHIFT requires READ_TRANSFORMS option READ_STRIP_16_TO_8 requires READ_TRANSFORMS option READ_STRIP_ALPHA requires READ_TRANSFORMS option READ_SWAP_ALPHA requires READ_TRANSFORMS -option READ_SWAP requires READ_TRANSFORMS READ_16BIT +option READ_SWAP requires READ_TRANSFORMS, READ_16BIT option READ_USER_TRANSFORM requires READ_TRANSFORMS option PROGRESSIVE_READ requires READ @@ -474,7 +479,7 @@ option WRITE_TRANSFORMS requires WRITE option WRITE_SHIFT requires WRITE_TRANSFORMS option WRITE_PACK requires WRITE_TRANSFORMS option WRITE_BGR requires WRITE_TRANSFORMS -option WRITE_SWAP requires WRITE_TRANSFORMS WRITE_16BIT +option WRITE_SWAP requires WRITE_TRANSFORMS, WRITE_16BIT option WRITE_PACKSWAP requires WRITE_TRANSFORMS option WRITE_INVERT requires WRITE_TRANSFORMS option WRITE_FILLER requires WRITE_TRANSFORMS @@ -496,8 +501,8 @@ option WRITE_FLUSH requires WRITE # Note: these can be turned off explicitly if not required by the # apps implementing the user transforms -option USER_TRANSFORM_PTR if READ_USER_TRANSFORM WRITE_USER_TRANSFORM -option USER_TRANSFORM_INFO if READ_USER_TRANSFORM WRITE_USER_TRANSFORM +option USER_TRANSFORM_PTR if READ_USER_TRANSFORM, WRITE_USER_TRANSFORM +option USER_TRANSFORM_INFO if READ_USER_TRANSFORM, WRITE_USER_TRANSFORM # This enables API to set compression parameters for compressing # non-IDAT chunks (zTXt, iTXt, iCCP, and unknown chunks). This feature @@ -690,7 +695,7 @@ chunk bKGD chunk cHRM enables COLORSPACE chunk gAMA enables GAMMA chunk hIST -chunk iCCP enables COLORSPACE GAMMA +chunk iCCP enables COLORSPACE, GAMMA chunk iTXt chunk oFFs chunk pCAL @@ -698,7 +703,7 @@ chunk pHYs chunk sBIT chunk sCAL chunk sPLT -chunk sRGB enables COLORSPACE GAMMA +chunk sRGB enables COLORSPACE, GAMMA chunk tEXt requires TEXT chunk tIME chunk tRNS @@ -728,7 +733,7 @@ option WRITE_UNKNOWN_CHUNKS enables STORE_UNKNOWN_CHUNKS # to png_get_unknown_chunks, the application must call # png_set_keep_unknown_chunks to cause this to actually happen (see png.h) option SAVE_UNKNOWN_CHUNKS requires READ requires SET_UNKNOWN_CHUNKS -option SAVE_UNKNOWN_CHUNKS enables READ_UNKNOWN_CHUNKS STORE_UNKNOWN_CHUNKS +option SAVE_UNKNOWN_CHUNKS enables READ_UNKNOWN_CHUNKS, STORE_UNKNOWN_CHUNKS # The second approach is to use an application provided callback to process the # chunks, the callback can either handle the chunk entirely itself or request @@ -736,8 +741,8 @@ option SAVE_UNKNOWN_CHUNKS enables READ_UNKNOWN_CHUNKS STORE_UNKNOWN_CHUNKS # # Note that there is no 'WRITE_USER_CHUNKS' so the USER_CHUNKS option is always # the same as READ_USER_CHUNKS at present -option READ_USER_CHUNKS requires READ requires UNKNOWN_CHUNKS -option READ_USER_CHUNKS enables READ_UNKNOWN_CHUNKS USER_CHUNKS +option READ_USER_CHUNKS requires READ, UNKNOWN_CHUNKS +option READ_USER_CHUNKS enables READ_UNKNOWN_CHUNKS, USER_CHUNKS # Two further options are provided to allow detailed control of the handling. # The first enables png_set_keep_unknown_chunks; this allows the default to be @@ -804,17 +809,22 @@ option INFO_IMAGE option CHECK_FOR_INVALID_INDEX enables READ_CHECK_FOR_INVALID_INDEX option CHECK_FOR_INVALID_INDEX enables WRITE_CHECK_FOR_INVALID_INDEX -option READ_CHECK_FOR_INVALID_INDEX requires READ CHECK_FOR_INVALID_INDEX -option WRITE_CHECK_FOR_INVALID_INDEX requires WRITE CHECK_FOR_INVALID_INDEX +option READ_CHECK_FOR_INVALID_INDEX requires READ, CHECK_FOR_INVALID_INDEX +option WRITE_CHECK_FOR_INVALID_INDEX requires WRITE, CHECK_FOR_INVALID_INDEX + +# added at libpng-1.5.15 +option GET_PALETTE_MAX enables READ_GET_PALETTE_MAX +option GET_PALETTE_MAX enables WRITE_GET_PALETTE_MAX +option READ_GET_PALETTE_MAX requires CHECK_FOR_INVALID_INDEX +option WRITE_GET_PALETTE_MAX requires CHECK_FOR_INVALID_INDEX # Simplified API options (added at libpng-1.6.0) # Read: -option SIMPLIFIED_READ requires SEQUENTIAL_READ READ_TRANSFORMS SETJMP -option SIMPLIFIED_READ requires BENIGN_ERRORS READ_GAMMA -option SIMPLIFIED_READ enables READ_EXPAND READ_16BIT READ_EXPAND_16 -option SIMPLIFIED_READ enables READ_SCALE_16_TO_8 READ_RGB_TO_GRAY -option SIMPLIFIED_READ enables READ_ALPHA_MODE READ_BACKGROUND READ_STRIP_ALPHA -option SIMPLIFIED_READ enables READ_FILLER READ_SWAP +option SIMPLIFIED_READ, + requires SEQUENTIAL_READ READ_TRANSFORMS, SETJMP, BENIGN_ERRORS READ_GAMMA, + enables READ_EXPAND, READ_16BIT READ_EXPAND_16, READ_SCALE_16_TO_8, + READ_RGB_TO_GRAY, READ_ALPHA_MODE READ_BACKGROUND READ_STRIP_ALPHA, + READ_FILLER, READ_SWAP option SIMPLIFIED_READ_AFIRST requires SIMPLIFIED_READ disabled option READ_SWAP_ALPHA enables SIMPLIFIED_READ_AFIRST @@ -823,8 +833,9 @@ option SIMPLIFIED_READ_BGR requires SIMPLIFIED_READ disabled option READ_BGR enables SIMPLIFIED_READ_BGR # Write: -option SIMPLIFIED_WRITE requires WRITE STDIO SETJMP -option SIMPLIFIED_WRITE enables WRITE_SWAP WRITE_gAMA WRITE_sRGB WRITE_cHRM +option SIMPLIFIED_WRITE, + requires WRITE STDIO, SETJMP, + enables WRITE_SWAP WRITE_gAMA, WRITE_sRGB WRITE_cHRM option SIMPLIFIED_WRITE_AFIRST requires SIMPLIFIED_WRITE disabled option WRITE_SWAP_ALPHA enables SIMPLIFIED_WRITE_AFIRST @@ -833,5 +844,5 @@ option SIMPLIFIED_WRITE_BGR requires SIMPLIFIED_WRITE disabled option WRITE_BGR enables SIMPLIFIED_WRITE_BGR # Formats: -option FORMAT_AFIRST if SIMPLIFIED_READ_AFIRST SIMPLIFIED_WRITE_AFIRST -option FORMAT_BGR if SIMPLIFIED_READ_BGR SIMPLIFIED_WRITE_BGR +option FORMAT_AFIRST if SIMPLIFIED_READ_AFIRST, SIMPLIFIED_WRITE_AFIRST +option FORMAT_BGR if SIMPLIFIED_READ_BGR, SIMPLIFIED_WRITE_BGR diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt index fb6e7379e..5cdcc9852 100644 --- a/scripts/pnglibconf.h.prebuilt +++ b/scripts/pnglibconf.h.prebuilt @@ -1,6 +1,6 @@ /* pnglibconf.h - library build configuration */ -/* libpng version 1.7.0alpha11 - February 8, 2013 */ +/* libpng version 1.7.0alpha11 - February 10, 2013 */ /* Copyright (c) 1998-2013 Glenn Randers-Pehrson */ @@ -57,6 +57,7 @@ #define PNG_FORMAT_AFIRST_SUPPORTED #define PNG_FORMAT_BGR_SUPPORTED #define PNG_GAMMA_SUPPORTED +#define PNG_GET_PALETTE_MAX_SUPPORTED #define PNG_HANDLE_AS_UNKNOWN_SUPPORTED #define PNG_INCH_CONVERSIONS_SUPPORTED #define PNG_INFO_IMAGE_SUPPORTED @@ -76,6 +77,7 @@ #define PNG_READ_EXPAND_SUPPORTED #define PNG_READ_FILLER_SUPPORTED #define PNG_READ_GAMMA_SUPPORTED +#define PNG_READ_GET_PALETTE_MAX_SUPPORTED #define PNG_READ_GRAY_TO_RGB_SUPPORTED #define PNG_READ_INTERLACING_SUPPORTED #define PNG_READ_INT_FUNCTIONS_SUPPORTED @@ -148,6 +150,7 @@ #define PNG_WRITE_FILLER_SUPPORTED #define PNG_WRITE_FILTER_SUPPORTED #define PNG_WRITE_FLUSH_SUPPORTED +#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED #define PNG_WRITE_INTERLACING_SUPPORTED #define PNG_WRITE_INT_FUNCTIONS_SUPPORTED #define PNG_WRITE_INVERT_ALPHA_SUPPORTED