diff --git a/ANNOUNCE b/ANNOUNCE index d6b826860..c556b4ac8 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.5.22beta03 - February 17, 2015 +Libpng 1.5.22beta03 - February 18, 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. @@ -41,7 +41,9 @@ Version 1.5.22beta02 [February 17, 2015] by the user at build time or run time. This provides a more robust defense against DOS and as-yet undiscovered overflows. -Version 1.5.22beta03 [February 17, 2015] +Version 1.5.22beta03 [February 18, 2015] + Added PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED macro, on by default. + Allow user to call png_get_IHDR() with NULL arguments (Reuben Hawkins). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index 7cdee690f..618beae26 100644 --- a/CHANGES +++ b/CHANGES @@ -4305,7 +4305,9 @@ Version 1.5.22beta02 [February 17, 2015] by the user at build time or run time. This provides a more robust defense against DOS and as-yet undiscovered overflows. -Version 1.5.22beta03 [February 17, 2015] +Version 1.5.22beta03 [February 18, 2015] + Added PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED macro, on by default. + Allow user to call png_get_IHDR() with NULL arguments (Reuben Hawkins). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/libpng-manual.txt b/libpng-manual.txt index 3acc9764a..1ea60d92e 100644 --- a/libpng-manual.txt +++ b/libpng-manual.txt @@ -1,6 +1,6 @@ Libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.5.22beta03 - February 17, 2015 + libpng version 1.5.22beta03 - February 18, 2015 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2014 Glenn Randers-Pehrson @@ -11,7 +11,7 @@ Libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.5.22beta03 - February 17, 2015 + libpng versions 0.97, January 1998, through 1.5.22beta03 - February 18, 2015 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2014 Glenn Randers-Pehrson @@ -1066,13 +1066,13 @@ in until png_read_end() has read the chunk data following the image. the PNG datastream is embedded in a MNG-1.0 datastream) - Any or all of interlace_type, compression_type, or - filter_method can be NULL if you are - not interested in their values. + Any of width, height, color_type, bit_depth, + interlace_type, compression_type, or filter_method can + be NULL if you are not interested in their values. Note that png_get_IHDR() returns 32-bit data into the application's width and height variables. - This is an unsafe situation if these are 16-bit + This is an unsafe situation if these are not png_uint_32 variables. In such situations, the png_get_image_width() and png_get_image_height() functions described below are safer. @@ -4475,6 +4475,9 @@ exported functions are marked with PNGAPI: body; } +The return type and decorations are placed on a separate line +ahead of the function name, as illustrated above. + The prototypes for all exported functions appear in png.h, above the comment that says @@ -4489,9 +4492,7 @@ We mark all non-exported functions with "/* PRIVATE */"": } The prototypes for non-exported functions (except for those in -pngtest) appear in -pngpriv.h -above the comment that says +pngtest) appear in pngpriv.h above the comment that says /* Maintainer: Put new private prototypes here ^ */ @@ -4500,6 +4501,9 @@ functions and variables begin with "png_", and all publicly visible C preprocessor macros begin with "PNG". We request that applications that use libpng *not* begin any of their own symbols with either of these strings. +Control keywords if, for, while, and switch are always followed by a space +to distinguish them from function calls, which have no trailing space. + We put a space after each comma and after each semicolon in "for" statements, and we put spaces before and after each C binary operator and after "for" or "while", and before @@ -4531,7 +4535,7 @@ Other rules can be inferred by inspecting the libpng source. XIV. Y2K Compliance in libpng -February 17, 2015 +February 18, 2015 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. @@ -4540,8 +4544,8 @@ This is your unofficial assurance that libpng from version 0.71 and upward through 1.5.22beta03 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. -Libpng only has two year fields. One is a 2-byte unsigned integer that -will hold years up to 65535. The other holds the date in text +Libpng only has two year fields. One is a 2-byte unsigned integer +that will hold years up to 65535. The other holds the date in text format, and will hold years up to 9999. The integer is diff --git a/libpng.3 b/libpng.3 index 6676bb996..7ad9f65fd 100644 --- a/libpng.3 +++ b/libpng.3 @@ -1,4 +1,4 @@ -.TH LIBPNG 3 "February 17, 2015" +.TH LIBPNG 3 "February 18, 2015" .SH NAME libpng \- Portable Network Graphics (PNG) Reference Library 1.5.22beta03 .SH SYNOPSIS @@ -492,7 +492,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng. .SH LIBPNG.TXT Libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.5.22beta03 - February 17, 2015 + libpng version 1.5.22beta03 - February 18, 2015 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2014 Glenn Randers-Pehrson @@ -503,7 +503,7 @@ Libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.5.22beta03 - February 17, 2015 + libpng versions 0.97, January 1998, through 1.5.22beta03 - February 18, 2015 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2014 Glenn Randers-Pehrson @@ -1558,13 +1558,13 @@ in until png_read_end() has read the chunk data following the image. the PNG datastream is embedded in a MNG-1.0 datastream) - Any or all of interlace_type, compression_type, or - filter_method can be NULL if you are - not interested in their values. + Any of width, height, color_type, bit_depth, + interlace_type, compression_type, or filter_method can + be NULL if you are not interested in their values. Note that png_get_IHDR() returns 32-bit data into the application's width and height variables. - This is an unsafe situation if these are 16-bit + This is an unsafe situation if these are not png_uint_32 variables. In such situations, the png_get_image_width() and png_get_image_height() functions described below are safer. @@ -4967,6 +4967,9 @@ exported functions are marked with PNGAPI: body; } +The return type and decorations are placed on a separate line +ahead of the function name, as illustrated above. + The prototypes for all exported functions appear in png.h, above the comment that says @@ -4981,9 +4984,7 @@ We mark all non-exported functions with "/* PRIVATE */"": } The prototypes for non-exported functions (except for those in -pngtest) appear in -pngpriv.h -above the comment that says +pngtest) appear in pngpriv.h above the comment that says /* Maintainer: Put new private prototypes here ^ */ @@ -4992,6 +4993,9 @@ functions and variables begin with "png_", and all publicly visible C preprocessor macros begin with "PNG". We request that applications that use libpng *not* begin any of their own symbols with either of these strings. +Control keywords if, for, while, and switch are always followed by a space +to distinguish them from function calls, which have no trailing space. + We put a space after each comma and after each semicolon in "for" statements, and we put spaces before and after each C binary operator and after "for" or "while", and before @@ -5023,7 +5027,7 @@ Other rules can be inferred by inspecting the libpng source. .SH XIV. Y2K Compliance in libpng -February 17, 2015 +February 18, 2015 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. @@ -5032,8 +5036,8 @@ This is your unofficial assurance that libpng from version 0.71 and upward through 1.5.22beta03 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. -Libpng only has two year fields. One is a 2-byte unsigned integer that -will hold years up to 65535. The other holds the date in text +Libpng only has two year fields. One is a 2-byte unsigned integer +that will hold years up to 65535. The other holds the date in text format, and will hold years up to 9999. The integer is @@ -5330,7 +5334,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.5.22beta03 - February 17, 2015: +Libpng version 1.5.22beta03 - February 18, 2015: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). @@ -5353,7 +5357,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.2.6, August 15, 2004, through 1.5.22beta03, February 17, 2015, are +libpng versions 1.2.6, August 15, 2004, through 1.5.22beta03, February 18, 2015, are Copyright (c) 2004,2006-20014 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 @@ -5452,7 +5456,7 @@ certification mark of the Open Source Initiative. Glenn Randers-Pehrson glennrp at users.sourceforge.net -February 17, 2015 +February 18, 2015 .\" end of man page diff --git a/png.h b/png.h index b904b6336..b7f2970c4 100644 --- a/png.h +++ b/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.5.22beta03 - February 17, 2015 + * libpng version 1.5.22beta03 - February 18, 2015 * Copyright (c) 1998-2015 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.5.22beta03 - February 17, 2015: Glenn + * libpng versions 0.97, January 1998, through 1.5.22beta03 - February 18, 2015: Glenn * See also "Contributing Authors", below. * * Note about libpng version numbers: @@ -237,7 +237,7 @@ * * This code is released under the libpng license. * - * libpng versions 1.2.6, August 15, 2004, through 1.5.22beta03, February 17, 2015, are + * libpng versions 1.2.6, August 15, 2004, through 1.5.22beta03, February 18, 2015, are * Copyright (c) 2004, 2006-2015 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: @@ -349,7 +349,7 @@ * Y2K compliance in libpng: * ========================= * - * February 17, 2015 + * February 18, 2015 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. @@ -418,7 +418,7 @@ /* Version information for png.h - this should match the version in png.c */ #define PNG_LIBPNG_VER_STRING "1.5.22beta03" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.5.22beta03 - February 17, 2015\n" + " libpng version 1.5.22beta03 - February 18, 2015\n" #define PNG_LIBPNG_VER_SONUM 15 #define PNG_LIBPNG_VER_DLLNUM 15 @@ -1050,11 +1050,13 @@ PNG_EXPORTA(5, png_structp, png_create_write_struct, png_error_ptr warn_fn), PNG_ALLOCATED); +#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size, (png_const_structp png_ptr)); PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structp png_ptr, png_size_t size)); +#endif /* WRITE_CUSTOMIZE_COMPRESSION */ /* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp * match up. @@ -1720,6 +1722,7 @@ PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, * for PNG images, and do considerably fewer caclulations. In the future, * these values may not correspond directly to the zlib compression levels. */ +#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED PNG_EXPORT(69, void, png_set_compression_level, (png_structp png_ptr, int level)); @@ -1737,7 +1740,7 @@ PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structp png_ptr, PNG_EXPORT(73, void, png_set_compression_method, (png_structp png_ptr, int method)); -#endif +#endif /* WRITE_CUSTOMIZE_COMPRESSION */ #ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED /* Also set zlib parameters for compressing non-IDAT chunks */ @@ -1759,6 +1762,7 @@ PNG_EXPORT(225, void, png_set_text_compression_window_bits, (png_structp PNG_EXPORT(226, void, png_set_text_compression_method, (png_structp png_ptr, int method)); #endif /* PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */ +#endif /* WRITE */ /* These next functions are called for input/output, memory, and error * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, diff --git a/pngwrite.c b/pngwrite.c index a0f6bf99d..1c3750c58 100644 --- a/pngwrite.c +++ b/pngwrite.c @@ -1396,6 +1396,7 @@ png_set_filter_heuristics_fixed(png_structp png_ptr, int heuristic_method, #endif /* FIXED_POINT */ #endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ +#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED void PNGAPI png_set_compression_level(png_structp png_ptr, int level) { @@ -1474,6 +1475,7 @@ png_set_compression_method(png_structp png_ptr, int method) png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_METHOD; png_ptr->zlib_method = method; } +#endif /* WRITE_CUSTOMIZE_COMPRESSION */ /* The following were added to libpng-1.5.4 */ #ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED