提交 a4981d4d 编写于 作者: G Glenn Randers-Pehrson

Imported from libpng-1.2.7beta1.tar

上级 37f116a9
Libpng 1.2.6 - August 15, 2004 Libpng 1.2.7beta1 - August 26, 2004
This is a public release of libpng, intended for use in production codes. 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.
Changes since the last public release (1.2.5): Changes since the last public release (1.2.6):
Commented out warning about uninitialized mmx_support in pnggccrd.c. version 1.2.7beta1 [August 26, 2004]
Changed "IBMCPP__" flag to "__IBMCPP__" in pngconf.h.
Relocated two more misplaced PNGAPI lines in pngtest.c
Fixed memory overrun bug in png_do_read_filler() with 16-bit datastreams,
introduced in version 1.0.2.
Fixed potential overrun in pngerror.c by using strncpy instead of memcpy.
Revised makefile.macosx, makefile.dec, makefile.aix, and makefile.32sunu.
Changed the one instance of "ln -sf" to "ln -f -s" in each Sun makefile.
Fixed potential overrun in pngerror.c by using strncpy instead of memcpy.
Added "#!/bin/sh" at the top of configure, for recognition of the
'x' flag under Cygwin (Cosmin).
Optimized vacuous tests that silence compiler warnings, in png.c (Cosmin).
Added support for PNG_USER_CONFIG, in pngconf.h (Cosmin).
Fixed the special memory handler for Borland C under DOS, in pngmem.c
(Cosmin).
Removed some spurious assignments in pngrutil.c (Cosmin).
Replaced 65536 with 65536L, and 0xffff with 0xffffL, to silence warnings
on 16-bit platforms (Cosmin).
Enclosed shift op expressions in parentheses, to silence warnings (Cosmin).
Used proper type png_fixed_point, to avoid problems on 16-bit platforms,
in png_handle_sRGB() (Cosmin).
Added compression_type to png_struct, and optimized the window size
inside the deflate stream (Cosmin).
Fixed definition of isnonalpha(), in pngerror.c and pngrutil.c (Cosmin).
Fixed handling of unknown chunks that come after IDAT (Cosmin).
Allowed png_error() and png_warning() to work even if png_ptr == NULL
(Cosmin).
Replaced row_info->rowbytes with row_bytes in png_write_find_filter()
(Cosmin).
Fixed definition of PNG_LIBPNG_VER_DLLNUM (Simon-Pierre).
Used PNG_LIBPNG_VER and PNG_LIBPNG_VER_STRING instead of the hardcoded
values in png.c (Simon-Pierre, Cosmin).
Initialized png_libpng_ver[] with PNG_LIBPNG_VER_STRING (Simon-Pierre).
Replaced PNG_LIBPNG_VER_MAJOR with PNG_LIBPNG_VER_DLLNUM in png.rc
(Simon-Pierre).
Moved the definition of PNG_HEADER_VERSION_STRING near the definitions
of the other PNG_LIBPNG_VER_... symbols in png.h (Cosmin).
Relocated #ifndef PNGAPI guards in pngconf.h (Simon-Pierre, Cosmin).
Updated scripts/makefile.vc(a)win32 (Cosmin).
Updated the MSVC project (Simon-Pierre, Cosmin).
Updated the Borland C++ Builder project (Cosmin).
Avoided access to asm_flags in pngvcrd.c, if PNG_1_0_X is defined (Cosmin).
Commented out warning about uninitialized mmx_support in pngvcrd.c (Cosmin).
Removed scripts/makefile.bd32 and scripts/pngdef.pas (Cosmin).
Added extra guard around inclusion of Turbo C memory headers, in pngconf.h
(Cosmin).
Renamed projects/msvc/ to projects/visualc6/, and projects/borland/ to
projects/cbuilder5/ (Cosmin).
Moved projects/visualc6/png32ms.def to scripts/pngw32.def,
and projects/visualc6/png.rc to scripts/pngw32.rc (Cosmin).
Added projects/visualc6/pngtest.dsp; removed contrib/msvctest/ (Cosmin).
Updated contrib/visupng/VisualPng.dsp (Cosmin).
Updated contrib/visupng/cexcept.h to version 2.0.0 (Cosmin).
Added a separate distribution with "configure" and supporting files (Junichi).
Added user ability to change png_size_t via a PNG_SIZE_T macro.
Added png_sizeof() and png_convert_size() functions.
Added PNG_SIZE_MAX (maximum value of a png_size_t variable.
Added check in png_malloc_default() for (size_t)size != (png_uint_32)size
which would indicate an overflow.
Changed sPLT failure action from png_error to png_warning and abandon chunk.
Changed sCAL and iCCP failures from png_error to png_warning and abandon.
Added png_get_uint_31(png_ptr, buf) function.
Added PNG_UINT_32_MAX macro.
Renamed PNG_MAX_UINT to PNG_UINT_31_MAX.
Made png_zalloc() issue a png_warning and return NULL on potential
overflow.
Revised "clobber list" in pnggccrd.c so it will compile under gcc-3.4.
Revised Borland portion of png_malloc() to return NULL or issue
png_error() according to setting of PNG_FLAG_MALLOC_NULL_MEM_OK.
Added PNG_NO_SEQUENTIAL_READ_SUPPORTED macro to conditionally remove
sequential read support.
Added some "#if PNG_WRITE_SUPPORTED" blocks.
#ifdef'ed out some redundancy in png_malloc_default().
Use png_malloc instead of png_zalloc to allocate the pallete.
Rearranged order of processing of color types in png_handle_tRNS().
Added PNG_ROWBYTES macro to calculate rowbytes without integer overflow.
Updated makefile.darwin and removed makefile.macosx from scripts directory.
Imposed default one million column, one-million row limits on the image
dimensions, and added png_set_user_limits() function and
PNG_SET_USER_LIMITS_SUPPORTED macro to override them.
Fixed wrong cast of returns from png_get_user_width|height_max().
Fixed buffer overflow vulnerability in png_handle_tRNS()
Fixed integer arithmetic overflow vulnerability in png_read_png().
Fixed some harmless bugs in png_handle_sBIT, etc, that would cause
duplicate chunk types to go undetected.
Changed some "keep the compiler happy" from empty statements to returns,
Revised libpng.txt to remove 1.2.x stuff from the 1.0.x distribution
Revised makefile.darwin and makefile.solaris. Removed makefile.macosx.
Revised pngtest's png_debug_malloc() to use png_malloc() instead of
png_malloc_default() which is not supposed to be exported.
Fixed old bug in RGB to Gray transformation.
Fixed problem with 64-bit compilers by casting arguments to abs()
to png_int_32.
Changed "ln -sf" to "ln -f -s" in three makefiles (solaris, sco, so9).
Changed "HANDLE_CHUNK_*" to "PNG_HANDLE_CHUNK_*" (Cosmin)
Added "-@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGMAJ)" to 15 *NIX makefiles.
Added code to update the row_info->colortype in png_do_read_filler() (MSB).
Eliminated use of "abs()" in testing cHRM and gAMA values, to avoid
trouble with some 64-bit compilers. Created PNG_OUT_OF_RANGE() macro.
Revised documentation of png_set_keep_unknown_chunks().
Check handle_as_unknown status in pngpread.c, as in pngread.c previously.
Moved "PNG_HANDLE_CHUNK_*" macros out of PNG_INTERNAL section of png.h
Added "rim" definitions for CONST4 and CONST6 in pnggccrd.c
Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1. Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1.
Removed unused pngasmrd.h file.
Removed unused pngasmrd.h file.
Removed references to uu.net for archived files. Added references to
PNG Spec (second edition) and the PNG ISO/IEC Standard.
Added "test-dd" target in 15 makefiles, to run pngtest in DESTDIR.
Fixed bug with "optimized window size" in the IDAT datastream.
Send comments/corrections/commendations to Send comments/corrections/commendations to
png-implement@ccrc.wustl.edu or to glennrp@users.sourceforge.net png-implement@ccrc.wustl.edu or to glennrp@users.sourceforge.net
......
...@@ -4,6 +4,7 @@ CHANGES - changes for libpng ...@@ -4,6 +4,7 @@ CHANGES - changes for libpng
version 0.2 version 0.2
added reader into png.h added reader into png.h
fixed small problems in stub file fixed small problems in stub file
version 0.3 version 0.3
added pull reader added pull reader
split up pngwrite.c to several files split up pngwrite.c to several files
...@@ -14,6 +15,7 @@ version 0.3 ...@@ -14,6 +15,7 @@ version 0.3
interfaced with zlib 0.5 interfaced with zlib 0.5
added K&R support added K&R support
added check for 64 KB blocks for 16 bit machines added check for 64 KB blocks for 16 bit machines
version 0.4 version 0.4
cleaned up code and commented code cleaned up code and commented code
simplified time handling into png_time simplified time handling into png_time
...@@ -24,23 +26,28 @@ version 0.4 ...@@ -24,23 +26,28 @@ version 0.4
interfaced with zlib 0.71 interfaced with zlib 0.71
cleaned up zTXt reader and writer (using zlib's Reset functions) cleaned up zTXt reader and writer (using zlib's Reset functions)
split transformations into pngrtran.c and pngwtran.c split transformations into pngrtran.c and pngwtran.c
version 0.5 version 0.5
interfaced with zlib 0.8 interfaced with zlib 0.8
fixed many reading and writing bugs fixed many reading and writing bugs
saved using 3 spaces instead of tabs saved using 3 spaces instead of tabs
version 0.6 version 0.6
added png_large_malloc() and png_large_free() added png_large_malloc() and png_large_free()
added png_size_t added png_size_t
cleaned up some compiler warnings cleaned up some compiler warnings
added png_start_read_image() added png_start_read_image()
version 0.7 version 0.7
cleaned up lots of bugs cleaned up lots of bugs
finished dithering and other stuff finished dithering and other stuff
added test program added test program
changed name from pnglib to libpng changed name from pnglib to libpng
version 0.71 [June, 1995] version 0.71 [June, 1995]
changed pngtest.png for zlib 0.93 changed pngtest.png for zlib 0.93
fixed error in libpng.txt and example.c fixed error in libpng.txt and example.c
version 0.8 version 0.8
cleaned up some bugs cleaned up some bugs
added png_set_filler() added png_set_filler()
...@@ -57,27 +64,34 @@ version 0.8 ...@@ -57,27 +64,34 @@ version 0.8
enabled png_set_shift to work with paletted images on read enabled png_set_shift to work with paletted images on read
added png_read_update_info() - updates info structure with added png_read_update_info() - updates info structure with
transformations transformations
version 0.81 [August, 1995] version 0.81 [August, 1995]
incorporated Tim Wegner's medium model code (thanks, Tim) incorporated Tim Wegner's medium model code (thanks, Tim)
version 0.82 [September, 1995] version 0.82 [September, 1995]
[unspecified changes] [unspecified changes]
version 0.85 [December, 1995] version 0.85 [December, 1995]
added more medium model code (almost everything's a far) added more medium model code (almost everything's a far)
added i/o, error, and memory callback functions added i/o, error, and memory callback functions
fixed some bugs (16 bit, 4 bit interlaced, etc.) fixed some bugs (16 bit, 4 bit interlaced, etc.)
added first run progressive reader (barely tested) added first run progressive reader (barely tested)
version 0.86 [January, 1996] version 0.86 [January, 1996]
fixed bugs fixed bugs
improved documentation improved documentation
version 0.87 [January, 1996] version 0.87 [January, 1996]
fixed medium model bugs fixed medium model bugs
fixed other bugs introduced in 0.85 and 0.86 fixed other bugs introduced in 0.85 and 0.86
added some minor documentation added some minor documentation
version 0.88 [January, 1996] version 0.88 [January, 1996]
fixed progressive bugs fixed progressive bugs
replaced tabs with spaces replaced tabs with spaces
cleaned up documentation cleaned up documentation
added callbacks for read/write and warning/error functions added callbacks for read/write and warning/error functions
version 0.89 [July, 1996] version 0.89 [July, 1996]
added new initialization API to make libpng work better with shared libs added new initialization API to make libpng work better with shared libs
we now have png_create_read_struct(), png_create_write_struct(), we now have png_create_read_struct(), png_create_write_struct(),
...@@ -104,6 +118,7 @@ version 0.89 [July, 1996] ...@@ -104,6 +118,7 @@ version 0.89 [July, 1996]
into a binary when only reading or writing functionality is used into a binary when only reading or writing functionality is used
new pngtest image also has interlacing and zTXt new pngtest image also has interlacing and zTXt
updated documentation to reflect new API updated documentation to reflect new API
version 0.90 [January, 1997] version 0.90 [January, 1997]
made CRC errors/warnings on critical and ancillary chunks configurable made CRC errors/warnings on critical and ancillary chunks configurable
libpng will use the zlib CRC routines by (compile-time) default libpng will use the zlib CRC routines by (compile-time) default
...@@ -125,6 +140,7 @@ version 0.90 [January, 1997] ...@@ -125,6 +140,7 @@ version 0.90 [January, 1997]
be able to handle all chunks via a callback mechanism be able to handle all chunks via a callback mechanism
try to fix Linux "setjmp" buffer size problems try to fix Linux "setjmp" buffer size problems
removed png_large_malloc, png_large_free, and png_realloc functions. removed png_large_malloc, png_large_free, and png_realloc functions.
version 0.95 [March, 1997] version 0.95 [March, 1997]
fixed bug in pngwutil.c allocating "up_row" twice and "avg_row" never fixed bug in pngwutil.c allocating "up_row" twice and "avg_row" never
fixed bug in PNG file signature compares when start != 0 fixed bug in PNG file signature compares when start != 0
...@@ -159,6 +175,7 @@ version 0.95 [March, 1997] ...@@ -159,6 +175,7 @@ version 0.95 [March, 1997]
functions in pngget.c to get infomation in info_ptr. This isolates functions in pngget.c to get infomation in info_ptr. This isolates
the application from the internal organization of png_info_struct the application from the internal organization of png_info_struct
(good for shared library implementations). (good for shared library implementations).
version 0.96 [May, 1997] version 0.96 [May, 1997]
fixed serious bug with < 8bpp images introduced in 0.95 fixed serious bug with < 8bpp images introduced in 0.95
fixed 256-color transparency bug (Greg Roelofs) fixed 256-color transparency bug (Greg Roelofs)
...@@ -169,6 +186,7 @@ version 0.96 [May, 1997] ...@@ -169,6 +186,7 @@ version 0.96 [May, 1997]
added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul) added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul)
added typecasts to quiet compiler errors added typecasts to quiet compiler errors
added more debugging info added more debugging info
version 0.97 [January, 1998] version 0.97 [January, 1998]
removed PNG_USE_OWN_CRC capability removed PNG_USE_OWN_CRC capability
relocated png_set_crc_action from pngrutil.c to pngrtran.c relocated png_set_crc_action from pngrutil.c to pngrtran.c
...@@ -191,6 +209,7 @@ version 0.97 [January, 1998] ...@@ -191,6 +209,7 @@ version 0.97 [January, 1998]
added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler) added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler)
regularized version numbering scheme and bumped shared-library major regularized version numbering scheme and bumped shared-library major
version number to 2 to avoid problems with libpng 0.89 apps (Greg Roelofs) version number to 2 to avoid problems with libpng 0.89 apps (Greg Roelofs)
version 0.98 [January, 1998] version 0.98 [January, 1998]
cleaned up some typos in libpng.txt and in code documentation cleaned up some typos in libpng.txt and in code documentation
fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler) fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler)
...@@ -202,6 +221,7 @@ version 0.98 [January, 1998] ...@@ -202,6 +221,7 @@ version 0.98 [January, 1998]
PNG_TIME_RFC1152_SUPPORTED macro to PNG_TIME_RFC1123_SUPPORTED PNG_TIME_RFC1152_SUPPORTED macro to PNG_TIME_RFC1123_SUPPORTED
added png_invert_alpha capability (Glenn R-P -- suggestion by Jon Vincent) added png_invert_alpha capability (Glenn R-P -- suggestion by Jon Vincent)
changed srgb_intent from png_byte to int to avoid compiler bugs changed srgb_intent from png_byte to int to avoid compiler bugs
version 0.99 [January 30, 1998] version 0.99 [January 30, 1998]
free info_ptr->text instead of end_info_ptr->text in pngread.c (John Bowler) free info_ptr->text instead of end_info_ptr->text in pngread.c (John Bowler)
fixed a longstanding "packswap" bug in pngtrans.c fixed a longstanding "packswap" bug in pngtrans.c
...@@ -262,6 +282,7 @@ version 0.99h [March 6, 1998, evening] ...@@ -262,6 +282,7 @@ version 0.99h [March 6, 1998, evening]
Changed PNG_READ_NOT_FULLY_SUPPORTED to PNG_READ_TRANSFORMS_NOT_SUPPORTED Changed PNG_READ_NOT_FULLY_SUPPORTED to PNG_READ_TRANSFORMS_NOT_SUPPORTED
and added PNG_PROGRESSIVE_READ_NOT_SUPPORTED macro and added PNG_PROGRESSIVE_READ_NOT_SUPPORTED macro
Added user transform capability Added user transform capability
version 1.00 [March 7, 1998] version 1.00 [March 7, 1998]
Changed several typedefs in pngrutil.c Changed several typedefs in pngrutil.c
Added makefile.wat (Pawel Mrochen), updated makefile.tc3 (Willem van Schaik) Added makefile.wat (Pawel Mrochen), updated makefile.tc3 (Willem van Schaik)
...@@ -271,6 +292,7 @@ version 1.00 [March 7, 1998] ...@@ -271,6 +292,7 @@ version 1.00 [March 7, 1998]
changed some typedefs (s_start, etc.) in pngrutil.c changed some typedefs (s_start, etc.) in pngrutil.c
fixed dimensions of "short_months" array in pngwrite.c fixed dimensions of "short_months" array in pngwrite.c
Replaced ansi2knr.c with the one from jpeg-v6 Replaced ansi2knr.c with the one from jpeg-v6
version 1.0.0 [March 8, 1998] version 1.0.0 [March 8, 1998]
Changed name from 1.00 to 1.0.0 (Adam Costello) Changed name from 1.00 to 1.0.0 (Adam Costello)
Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert) Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert)
...@@ -285,6 +307,7 @@ version 1.0.0b [March 13, 1998] ...@@ -285,6 +307,7 @@ version 1.0.0b [March 13, 1998]
Quieted compiler complaints about two empty "for" loops in pngrutil.c Quieted compiler complaints about two empty "for" loops in pngrutil.c
Minor changes to makefile.s2x Minor changes to makefile.s2x
Removed #ifdef/#endif around a png_free() in pngread.c Removed #ifdef/#endif around a png_free() in pngread.c
version 1.0.1 [March 14, 1998] version 1.0.1 [March 14, 1998]
Changed makefile.s2x to reduce security risk of using a relative pathname Changed makefile.s2x to reduce security risk of using a relative pathname
Fixed some typos in the documentation (Greg). Fixed some typos in the documentation (Greg).
...@@ -353,6 +376,7 @@ version 1.0.1e [June 6, 1998] ...@@ -353,6 +376,7 @@ version 1.0.1e [June 6, 1998]
and revised pngtest.c to demonstrate their use, replacing the and revised pngtest.c to demonstrate their use, replacing the
PNGTEST_DEBUG_MEM feature. PNGTEST_DEBUG_MEM feature.
Added makefile.w32, for Microsoft C++ 4.0 and later (Tim Wegner). Added makefile.w32, for Microsoft C++ 4.0 and later (Tim Wegner).
version 1.0.2 [June 14, 1998] version 1.0.2 [June 14, 1998]
Fixed two bugs in makefile.bor . Fixed two bugs in makefile.bor .
version 1.0.2a [December 30, 1998] version 1.0.2a [December 30, 1998]
...@@ -387,6 +411,7 @@ version 1.0.2a [January 6, 1999] ...@@ -387,6 +411,7 @@ version 1.0.2a [January 6, 1999]
Changed "check_if_png" function in example.c to return true (nonzero) if PNG. Changed "check_if_png" function in example.c to return true (nonzero) if PNG.
Changed libpng.txt to demonstrate png_sig_cmp() instead of png_check_sig() Changed libpng.txt to demonstrate png_sig_cmp() instead of png_check_sig()
which is obsolete. which is obsolete.
version 1.0.3 [January 14, 1999] version 1.0.3 [January 14, 1999]
Added makefile.hux, for Hewlett Packard HPUX 10.20 and 11.00 (Jim Rice) Added makefile.hux, for Hewlett Packard HPUX 10.20 and 11.00 (Jim Rice)
Added a statement of Y2K compliance in png.h, libpng.3, and Y2KINFO. Added a statement of Y2K compliance in png.h, libpng.3, and Y2KINFO.
...@@ -439,6 +464,7 @@ version 1.0.3d [September 4, 1999] ...@@ -439,6 +464,7 @@ version 1.0.3d [September 4, 1999]
Fixed type casting of igamma in pngrutil.c Fixed type casting of igamma in pngrutil.c
Added new png_expand functions to scripts/pngdef.pas and pngos2.def Added new png_expand functions to scripts/pngdef.pas and pngos2.def
Added a demo read_user_transform_fn that examines the row filters in pngtest.c Added a demo read_user_transform_fn that examines the row filters in pngtest.c
version 1.0.4 [September 24, 1999] version 1.0.4 [September 24, 1999]
Define PNG_ALWAYS_EXTERN in pngconf.h if __STDC__ is defined Define PNG_ALWAYS_EXTERN in pngconf.h if __STDC__ is defined
Delete #define PNG_INTERNAL and include "png.h" from pngasmrd.h Delete #define PNG_INTERNAL and include "png.h" from pngasmrd.h
...@@ -477,6 +503,7 @@ version 1.0.4f [October 15, 1999] ...@@ -477,6 +503,7 @@ version 1.0.4f [October 15, 1999]
Added type casting mostly in pngrtran.c and pngwtran.c Added type casting mostly in pngrtran.c and pngwtran.c
Removed some pointless "ptr = NULL" in pngmem.c Removed some pointless "ptr = NULL" in pngmem.c
Added a "contrib" directory containing the source code from Greg's book. Added a "contrib" directory containing the source code from Greg's book.
version 1.0.5 [October 15, 1999] version 1.0.5 [October 15, 1999]
Minor editing of the INSTALL and README files. Minor editing of the INSTALL and README files.
version 1.0.5a [October 23, 1999] version 1.0.5a [October 23, 1999]
...@@ -660,6 +687,7 @@ version 1.0.5v [March 11, 2000] ...@@ -660,6 +687,7 @@ version 1.0.5v [March 11, 2000]
Updated documentation of png_rgb_to_gray calculations in libpng.3/libpng.txt. Updated documentation of png_rgb_to_gray calculations in libpng.3/libpng.txt.
Renamed makefile.borland,turboc3 back to makefile.bor,tc3 as in version 1.0.3, Renamed makefile.borland,turboc3 back to makefile.bor,tc3 as in version 1.0.3,
revised borland makefiles; added makefile.ibmvac3 and makefile.gcc (Cosmin) revised borland makefiles; added makefile.ibmvac3 and makefile.gcc (Cosmin)
version 1.0.6 [March 20, 2000] version 1.0.6 [March 20, 2000]
Minor revisions of makefile.bor, libpng.txt, and gregbook/rpng2-win.c Minor revisions of makefile.bor, libpng.txt, and gregbook/rpng2-win.c
Added makefile.sggcc (SGI IRIX with gcc) Added makefile.sggcc (SGI IRIX with gcc)
...@@ -798,6 +826,7 @@ version 1.0.7beta18 [June 23, 2000] ...@@ -798,6 +826,7 @@ version 1.0.7beta18 [June 23, 2000]
version 1.0.7rc2 [June 28, 2000] version 1.0.7rc2 [June 28, 2000]
Updated license to include disclaimers required by UCITA. Updated license to include disclaimers required by UCITA.
Fixed "DJBPP" typo in pnggccrd.c introduced in beta18. Fixed "DJBPP" typo in pnggccrd.c introduced in beta18.
version 1.0.7 [July 1, 2000] version 1.0.7 [July 1, 2000]
Revised the definition of "trans_values" in libpng.3/libpng.txt Revised the definition of "trans_values" in libpng.3/libpng.txt
version 1.0.8beta1 [July 8, 2000] version 1.0.8beta1 [July 8, 2000]
...@@ -822,6 +851,7 @@ version 1.0.8beta4 [July 14, 2000] ...@@ -822,6 +851,7 @@ version 1.0.8beta4 [July 14, 2000]
Added PNG_NO_ZALLOC_ZERO macro (makes png_zalloc skip zeroing memory) Added PNG_NO_ZALLOC_ZERO macro (makes png_zalloc skip zeroing memory)
version 1.0.8rc1 [July 16, 2000] version 1.0.8rc1 [July 16, 2000]
Revised png_debug() macros and statements to eliminate compiler warnings. Revised png_debug() macros and statements to eliminate compiler warnings.
version 1.0.8 [July 24, 2000] version 1.0.8 [July 24, 2000]
Added png_flush() in pngwrite.c, after png_write_IEND(). Added png_flush() in pngwrite.c, after png_write_IEND().
Updated makefile.hpux to build a shared library. Updated makefile.hpux to build a shared library.
...@@ -892,6 +922,7 @@ version 1.0.9beta11 [January 19, 2001] ...@@ -892,6 +922,7 @@ version 1.0.9beta11 [January 19, 2001]
be re-enabled in version 1.2.0. be re-enabled in version 1.2.0.
version 1.0.9rc2 [January 22, 2001] version 1.0.9rc2 [January 22, 2001]
Revised cygwin support. Revised cygwin support.
version 1.0.9 [January 31, 2001] version 1.0.9 [January 31, 2001]
Added check of cygwin's ALL_STATIC in pngconf.h Added check of cygwin's ALL_STATIC in pngconf.h
Added "-nommx" parameter to contrib/gregbook/rpng2-win and rpng2-x demos. Added "-nommx" parameter to contrib/gregbook/rpng2-win and rpng2-x demos.
...@@ -913,6 +944,7 @@ version 1.0.10rc1 [March 23, 2001] ...@@ -913,6 +944,7 @@ version 1.0.10rc1 [March 23, 2001]
and png_strlen. and png_strlen.
Revised png_mmx_supported() function in pnggccrd.c to return proper value. Revised png_mmx_supported() function in pnggccrd.c to return proper value.
Fixed bug in progressive reading (pngpread.c) with small images (height < 8). Fixed bug in progressive reading (pngpread.c) with small images (height < 8).
version 1.0.10 [March 30, 2001] version 1.0.10 [March 30, 2001]
Deleted extraneous space (introduced in 1.0.9) from line 42 of makefile.cygwin Deleted extraneous space (introduced in 1.0.9) from line 42 of makefile.cygwin
Added beos project files (Chris Herborth) Added beos project files (Chris Herborth)
...@@ -930,6 +962,7 @@ version 1.0.11beta4 [April 20, 2001] ...@@ -930,6 +962,7 @@ version 1.0.11beta4 [April 20, 2001]
from user's malloc_fn(). from user's malloc_fn().
Removed some useless type casts of the NULL pointer. Removed some useless type casts of the NULL pointer.
Added makefile.netbsd Added makefile.netbsd
version 1.0.11 [April 27, 2001] version 1.0.11 [April 27, 2001]
Revised makefile.netbsd Revised makefile.netbsd
version 1.0.12beta1 [May 14, 2001] version 1.0.12beta1 [May 14, 2001]
...@@ -978,6 +1011,7 @@ version 1.2.0beta5 [August 8, 2001] ...@@ -978,6 +1011,7 @@ version 1.2.0beta5 [August 8, 2001]
Revised makefile.sgi and makefile.sggcc Revised makefile.sgi and makefile.sggcc
Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c
Removed restriction that do_invert_mono only operate on 1-bit opaque files Removed restriction that do_invert_mono only operate on 1-bit opaque files
version 1.2.0 [September 1, 2001] version 1.2.0 [September 1, 2001]
Changed a png_warning() to png_debug() in pnggccrd.c Changed a png_warning() to png_debug() in pnggccrd.c
Fixed contrib/gregbook/rpng-x.c, rpng2-x.c to avoid crash with XFreeGC(). Fixed contrib/gregbook/rpng-x.c, rpng2-x.c to avoid crash with XFreeGC().
...@@ -1011,6 +1045,7 @@ version 1.2.1rc2 [December 4, 2001] ...@@ -1011,6 +1045,7 @@ version 1.2.1rc2 [December 4, 2001]
Always allocate 256-entry internal palette, hist, and trans arrays, to Always allocate 256-entry internal palette, hist, and trans arrays, to
avoid out-of-bounds memory reference caused by invalid PNG datastreams. avoid out-of-bounds memory reference caused by invalid PNG datastreams.
Added a check for prefix_length > data_length in iCCP chunk handler. Added a check for prefix_length > data_length in iCCP chunk handler.
version 1.2.1 [December 7, 2001] version 1.2.1 [December 7, 2001]
None. None.
version 1.2.2beta1 [February 22, 2002] version 1.2.2beta1 [February 22, 2002]
...@@ -1064,6 +1099,7 @@ version 1.0.13rc1 [April 7, 2002] ...@@ -1064,6 +1099,7 @@ version 1.0.13rc1 [April 7, 2002]
Save the ebx register in pnggccrd.c (Sami Farin) Save the ebx register in pnggccrd.c (Sami Farin)
Add "mem_ptr = png_ptr->mem_ptr" in png_destroy_write_struct() (Paul Gardner). Add "mem_ptr = png_ptr->mem_ptr" in png_destroy_write_struct() (Paul Gardner).
Updated makefiles to put headers in include/libpng and remove old include/*.h. Updated makefiles to put headers in include/libpng and remove old include/*.h.
version 1.2.2 [April 15, 2002] version 1.2.2 [April 15, 2002]
version 1.0.13 [April 15, 2002] version 1.0.13 [April 15, 2002]
Revised description of png_set_filter() in libpng.3/libpng.txt. Revised description of png_set_filter() in libpng.3/libpng.txt.
...@@ -1118,6 +1154,7 @@ version 1.2.3rc6 [May 14, 2002] ...@@ -1118,6 +1154,7 @@ version 1.2.3rc6 [May 14, 2002]
Changed "Gz" to "Gd" in projects/msvc/libpng.dsp and zlib.dsp. Changed "Gz" to "Gd" in projects/msvc/libpng.dsp and zlib.dsp.
Removed leftover libpng-config "sed" script from four makefiles. Removed leftover libpng-config "sed" script from four makefiles.
Revised libpng-config creating script in 16 makefiles. Revised libpng-config creating script in 16 makefiles.
version 1.2.3 [May 22, 2002] version 1.2.3 [May 22, 2002]
Revised libpng-config target in makefile.cygwin. Revised libpng-config target in makefile.cygwin.
Removed description of png_set_mem_fn() from documentation. Removed description of png_set_mem_fn() from documentation.
...@@ -1147,6 +1184,7 @@ version 1.2.4beta3 [June 28, 2002] ...@@ -1147,6 +1184,7 @@ version 1.2.4beta3 [June 28, 2002]
version 1.2.4rc1 and 1.0.14rc1 [July 2, 2002] version 1.2.4rc1 and 1.0.14rc1 [July 2, 2002]
Added "test-installed" target to makefile.cygwin and makefile.sco. Added "test-installed" target to makefile.cygwin and makefile.sco.
Revised pnggccrd.c to be able to back out version 1.0.x via PNG_1_0_X macro. Revised pnggccrd.c to be able to back out version 1.0.x via PNG_1_0_X macro.
version 1.2.4 and 1.0.14 [July 8, 2002] version 1.2.4 and 1.0.14 [July 8, 2002]
Changed png_warning() to png_error() when width is too large to process. Changed png_warning() to png_error() when width is too large to process.
version 1.2.4patch01 [July 20, 2002] version 1.2.4patch01 [July 20, 2002]
...@@ -1173,6 +1211,7 @@ version 1.2.5rc2 and 1.0.15rc2 [September 16, 2002] ...@@ -1173,6 +1211,7 @@ version 1.2.5rc2 and 1.0.15rc2 [September 16, 2002]
Added missing "; fi" to makefile.32sunu. Added missing "; fi" to makefile.32sunu.
version 1.2.5rc3 and 1.0.15rc3 [September 18, 2002] version 1.2.5rc3 and 1.0.15rc3 [September 18, 2002]
Revised libpng-config script. Revised libpng-config script.
version 1.2.5 and 1.0.15 [October 3, 2002] version 1.2.5 and 1.0.15 [October 3, 2002]
Revised makefile.macosx, makefile.darwin, makefile.hpgcc, and makefile.hpux, Revised makefile.macosx, makefile.darwin, makefile.hpgcc, and makefile.hpux,
and makefile.aix. and makefile.aix.
...@@ -1263,7 +1302,7 @@ version 1.2.6beta4 [July 28, 2004] ...@@ -1263,7 +1302,7 @@ version 1.2.6beta4 [July 28, 2004]
Added some "#if PNG_WRITE_SUPPORTED" blocks. Added some "#if PNG_WRITE_SUPPORTED" blocks.
#ifdef'ed out some redundancy in png_malloc_default(). #ifdef'ed out some redundancy in png_malloc_default().
Use png_malloc instead of png_zalloc to allocate the pallete. Use png_malloc instead of png_zalloc to allocate the pallete.
version 1.2.6rc1 [August 4, 2004] version 1.0.16rc1 and 1.2.6rc1 [August 4, 2004]
Fixed buffer overflow vulnerability in png_handle_tRNS() Fixed buffer overflow vulnerability in png_handle_tRNS()
Fixed integer arithmetic overflow vulnerability in png_read_png(). Fixed integer arithmetic overflow vulnerability in png_read_png().
Fixed some harmless bugs in png_handle_sBIT, etc, that would cause Fixed some harmless bugs in png_handle_sBIT, etc, that would cause
...@@ -1277,7 +1316,7 @@ version 1.2.6rc1 [August 4, 2004] ...@@ -1277,7 +1316,7 @@ version 1.2.6rc1 [August 4, 2004]
Revised use of PNG_SET_USER_LIMITS_SUPPORTED macro. Revised use of PNG_SET_USER_LIMITS_SUPPORTED macro.
Fixed wrong cast of returns from png_get_user_width|height_max(). Fixed wrong cast of returns from png_get_user_width|height_max().
Changed some "keep the compiler happy" from empty statements to returns, Changed some "keep the compiler happy" from empty statements to returns,
version 1.2.6rc2 [August 7, 2004] version 1.0.16rc2 and 1.2.6rc2 [August 7, 2004]
Revised makefile.darwin and makefile.solaris. Removed makefile.macosx. Revised makefile.darwin and makefile.solaris. Removed makefile.macosx.
Revised pngtest's png_debug_malloc() to use png_malloc() instead of Revised pngtest's png_debug_malloc() to use png_malloc() instead of
png_malloc_default() which is not supposed to be exported. png_malloc_default() which is not supposed to be exported.
...@@ -1291,21 +1330,28 @@ version 1.2.6rc2 [August 7, 2004] ...@@ -1291,21 +1330,28 @@ version 1.2.6rc2 [August 7, 2004]
Changed "HANDLE_CHUNK_*" to "PNG_HANDLE_CHUNK_*" (Cosmin) Changed "HANDLE_CHUNK_*" to "PNG_HANDLE_CHUNK_*" (Cosmin)
Added "-@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGMAJ)" to 15 *NIX makefiles. Added "-@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGMAJ)" to 15 *NIX makefiles.
Added code to update the row_info->colortype in png_do_read_filler() (MSB). Added code to update the row_info->colortype in png_do_read_filler() (MSB).
version 1.2.6rc3 [August 9, 2004] version 1.0.16rc3 and 1.2.6rc3 [August 9, 2004]
Eliminated use of "abs()" in testing cHRM and gAMA values, to avoid Eliminated use of "abs()" in testing cHRM and gAMA values, to avoid
trouble with some 64-bit compilers. Created PNG_OUT_OF_RANGE() macro. trouble with some 64-bit compilers. Created PNG_OUT_OF_RANGE() macro.
Revised documentation of png_set_keep_unknown_chunks(). Revised documentation of png_set_keep_unknown_chunks().
Check handle_as_unknown status in pngpread.c, as in pngread.c previously. Check handle_as_unknown status in pngpread.c, as in pngread.c previously.
Moved "PNG_HANDLE_CHUNK_*" macros out of PNG_INTERNAL section of png.h Moved "PNG_HANDLE_CHUNK_*" macros out of PNG_INTERNAL section of png.h
Added "rim" definitions for CONST4 and CONST6 in pnggccrd.c Added "rim" definitions for CONST4 and CONST6 in pnggccrd.c
version 1.2.6rc4 [August 10, 2004] version 1.0.16rc4 and 1.2.6rc4 [August 10, 2004]
Fixed mistake in pngtest.c introduced in 1.2.6rc2 (declaration of Fixed mistake in pngtest.c introduced in 1.2.6rc2 (declaration of
"pinfo" was out of place). "pinfo" was out of place).
version 1.2.6rc5 [August 10, 2004] version 1.0.16rc5 and 1.2.6rc5 [August 10, 2004]
Moved "PNG_HANDLE_CHUNK_*" macros out of PNG_ASSEMBLER_CODE_SUPPORTED Moved "PNG_HANDLE_CHUNK_*" macros out of PNG_ASSEMBLER_CODE_SUPPORTED
section of png.h where they were inadvertently placed in version rc3. section of png.h where they were inadvertently placed in version rc3.
version 1.2.6rc6 [August 15, 2004]
version 1.0.16 and 1.2.6 [August 15, 2004]
Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1. Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1.
version 1.2.7beta1 [August 26, 2004]
Removed unused pngasmrd.h file.
Removed references to uu.net for archived files. Added references to
PNG Spec (second edition) and the PNG ISO/IEC Standard.
Added "test-dd" target in 15 makefiles, to run pngtest in DESTDIR.
Fixed bug with "optimized window size" in the IDAT datastream.
Send comments/corrections/commendations to Send comments/corrections/commendations to
png-implement@ccrc.wustl.edu or to glennrp@users.sourceforge.net png-implement@ccrc.wustl.edu or to glennrp@users.sourceforge.net
......
Installing libpng version 1.2.6 - %DATE% Installing libpng version 1.2.7beta1 - August 26, 2004
Before installing libpng, you must first install zlib. zlib Before installing libpng, you must first install zlib. zlib
can usually be found wherever you got libpng. zlib can be can usually be found wherever you got libpng. zlib can be
...@@ -10,8 +10,8 @@ zlib.h and zconf.h include files that correspond to the ...@@ -10,8 +10,8 @@ zlib.h and zconf.h include files that correspond to the
version of zlib that's installed. version of zlib that's installed.
You can rename the directories that you downloaded (they You can rename the directories that you downloaded (they
might be called "libpng-1.2.6" or "lpng109" and "zlib-1.1.3" might be called "libpng-1.2.7beta1" or "lpng109" and "zlib-1.2.1"
or "zlib113") so that you have directories called "zlib" and "libpng". or "zlib121") so that you have directories called "zlib" and "libpng".
Your directory structure should look like this: Your directory structure should look like this:
...@@ -23,14 +23,13 @@ Your directory structure should look like this: ...@@ -23,14 +23,13 @@ Your directory structure should look like this:
*.c *.c
contrib contrib
gregbook gregbook
msvctest
pngminus pngminus
pngsuite pngsuite
visupng visupng
projects projects
beos beos
borland c5builder (Borland)
msvc visualc6 (msvc)
netware.txt netware.txt
wince.txt wince.txt
scripts scripts
...@@ -48,13 +47,16 @@ If the line endings in the files look funny, you may wish to get the other ...@@ -48,13 +47,16 @@ If the line endings in the files look funny, you may wish to get the other
distribution of libpng. It is available in both tar.gz (UNIX style line distribution of libpng. It is available in both tar.gz (UNIX style line
endings) and zip (DOS style line endings) formats. endings) and zip (DOS style line endings) formats.
If you are building libpng with MSVC, you can enter the libpng\msvc directory
and follow the instructions in msvc\README.txt.
You can build libpng for WindowsCE by entering the downloading and installing If you are building libpng with MSVC, you can enter the
the libpng\wince directory as instructed in the projects\wince.txt file, and libpng projects\visualc6 directory and follow the instructions in
projects\visualc6\README.txt.
You can build libpng for WindowsCE by downloading and installing
the projects\wince directory as instructed in the projects\wince.txt file, and
then following the instructions in the README* files. Similarly, you can then following the instructions in the README* files. Similarly, you can
build libpng for Netware as instructed in projects\netware.txt. build libpng for Netware or Beos as instructed in projects\netware.txt
or projects\beos.
Else enter the zlib directory and follow the instructions in zlib/README, Else enter the zlib directory and follow the instructions in zlib/README,
then come back here and choose the appropriate makefile.sys in the scripts then come back here and choose the appropriate makefile.sys in the scripts
...@@ -64,8 +66,10 @@ The files that are presently available in the scripts directory ...@@ -64,8 +66,10 @@ The files that are presently available in the scripts directory
include include
makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.linux => Linux/ELF makefile (gcc, creates libpng%SONAME%.so.%SONUM%.1.2.6) makefile.linux => Linux/ELF makefile
makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng%SONAME%.so.%SONUM%.1.2.6, (gcc, creates libpng12.so.0.1.2.7beta1)
makefile.gcmmx => Linux/ELF makefile
(gcc, creates libpng12.so.0.1.2.7beta1,
uses assembler code tuned for Intel MMX platform) uses assembler code tuned for Intel MMX platform)
makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with makefile.knr => Archaic UNIX Makefile that converts files with
...@@ -73,23 +77,26 @@ include ...@@ -73,23 +77,26 @@ include
ftp://ftp.cs.wisc.edu/ghost) ftp://ftp.cs.wisc.edu/ghost)
makefile.aix => AIX/gcc makefile makefile.aix => AIX/gcc makefile
makefile.cygwin => Cygwin/gcc makefile makefile.cygwin => Cygwin/gcc makefile
makefile.darwin => Darwin makefile makefile.darwin => Darwin makefile, can use on MacosX
makefile.dec => DEC Alpha UNIX makefile makefile.dec => DEC Alpha UNIX makefile
makefile.hpgcc => FreeBSD makefile makefile.freebsd => FreeBSD makefile
makefile.hpgcc => HPUX makefile using gcc makefile.hpgcc => HPUX makefile using gcc
makefile.hpux => HPUX (10.20 and 11.00) makefile makefile.hpux => HPUX (10.20 and 11.00) makefile
makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static) makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static)
makefile.intel => Intel C/C++ version 4.0 and later makefile.intel => Intel C/C++ version 4.0 and later
libpng.icc => Project file for IBM VisualAge/C++ version 4.0 or later libpng.icc => Project file for IBM VisualAge/C++ version 4.0 or later
makefile.macosx => MACOS X Makefile
makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD, makes libpng.so. makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD, makes libpng.so.
makefile.ne%SONUM%bsd => NetBSD/cc makefile, uses PNGGCCRD, makes libpng%SONUM%.so makefile.ne0bsd => NetBSD/cc makefile, uses PNGGCCRD,
makes libpng0.so
makefile.openbsd => OpenBSD makefile makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib) makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
makefile.sggcc => Silicon Graphics (gcc, creates libpng%SONAME%.so.%SONUM%.1.2.6) makefile.sggcc => Silicon Graphics (gcc,
creates libpng12.so.0.1.2.7beta1)
makefile.sunos => Sun makefile makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile (gcc, creates libpng%SONAME%.so.%SONUM%.1.2.6) makefile.solaris => Solaris 2.X makefile (gcc,
makefile.so9 => Solaris 9 makefile (gcc, creates libpng%SONAME%.so.%SONUM%.1.2.6) creates libpng12.so.0.1.2.7beta1)
makefile.so9 => Solaris 9 makefile (gcc,
creates libpng12.so.0.1.2.7beta1)
makefile.32sunu => Sun Ultra 32-bit makefile makefile.32sunu => Sun Ultra 32-bit makefile
makefile.64sunu => Sun Ultra 64-bit makefile makefile.64sunu => Sun Ultra 64-bit makefile
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
...@@ -130,13 +137,13 @@ target directories to match your preferences. ...@@ -130,13 +137,13 @@ target directories to match your preferences.
Then read pngconf.h to see if you want to make any configuration Then read pngconf.h to see if you want to make any configuration
changes. changes.
Then just run "make test" which will create the libpng library in Then just run "make" which will create the libpng library in
this directory and run a quick test that reads the "pngtest.png" this directory and "make test" which will run a quick test that reads
file and writes a "pngout.png" file that should be identical to it. the "pngtest.png" file and writes a "pngout.png" file that should be
Look for "9782 zero samples" in the output of the test. For more identical to it. Look for "9782 zero samples" in the output of the
confidence, you can run another test by typing "pngtest pngnow.png" test. For more confidence, you can run another test by typing
and looking for "289 zero samples" in the output. Also, you can "pngtest pngnow.png" and looking for "289 zero samples" in the output.
run "pngtest -m *.png" in the "contrib/pngsuite" directory and compare Also, you can run "pngtest -m contrib/pngsuite/*.png" and compare
your output with the result shown in contrib/pngsuite/README. your output with the result shown in contrib/pngsuite/README.
Most of the makefiles will allow you to run "make install" to Most of the makefiles will allow you to run "make install" to
...@@ -145,26 +152,17 @@ do that, run "make install" in the zlib directory first if necessary). ...@@ -145,26 +152,17 @@ do that, run "make install" in the zlib directory first if necessary).
Some also allow you to run "make test-installed" after you have Some also allow you to run "make test-installed" after you have
run "make install". run "make install".
Further information can be found in the README and libpng.txt If you encounter a compiler error message complaining about the
files, in the individual makefiles, in png.h, in the README files in lines
subdirectories of the LIB directory, and the manual pages libpng.3 and png.5. __png.h__ already includes setjmp.h;
__dont__ include it again.;
This means you have compiled another module that includes setjmp.h,
Using the ./configure script -- 16 December 2002. which is hazardous because the two modules might not include exactly
================================================= the same setjmp.h. If you are sure that you know what you are doing
and that they are exactly the same, then you can comment out or
delete the two lines. Better yet, use the cexcept interface
The ./configure script should work compatibly with what scripts/makefile.* instead, as demonstrated in contrib/visupng of the libpng distribution.
did, however there are some options you need to add to configure explicitly,
which previously was done semi-automatically (if you didn't edit
scripts/makefile.* yourself, that is)
CFLAGS="-Wall -O3 -funroll-loops \
-malign-loops=2 -malign-functions=2" ./configure --prefix=/usr/include \
--with-pkgconfigdir=/usr/lib/pkgconfig --includedir=/usr/include
You can alternatively specify --includedir=/usr/include, /usr/local/include,
/usr/include/png12, or whatever.
Further information can be found in the README and libpng.txt
files, in the individual makefiles, in png.h, and the manual pages
libpng.3 and png.5.
Known bugs in libpng version 1.2.6 Known bugs in libpng version 1.2.7beta1
1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when 1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
reading interlaced PNG files, when assembler code is enabled but running reading interlaced PNG files, when assembler code is enabled but running
......
...@@ -8,7 +8,7 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: ...@@ -8,7 +8,7 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
If you modify libpng you may insert additional notices immediately following If you modify libpng you may insert additional notices immediately following
this sentence. this sentence.
libpng version 1.2.6, August 15, 2004, is libpng version 1.2.6, August 26, 2004, is
Copyright (c) 2004 Glenn Randers-Pehrson, and is Copyright (c) 2004 Glenn Randers-Pehrson, and is
distributed according to the same disclaimer and license as libpng-1.2.5 distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors with the following individual added to the list of Contributing Authors
...@@ -106,4 +106,4 @@ certification mark of the Open Source Initiative. ...@@ -106,4 +106,4 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson Glenn Randers-Pehrson
glennrp@users.sourceforge.net glennrp@users.sourceforge.net
August 15, 2004 August 26, 2004
# test
check_PROGRAMS= pngtest
pngtest_SOURCES = pngtest.c
pngtest_LDADD = libpng.la
TESTS = test-pngtest.sh
TESTS_ENVIRONMENT= srcdir=$(srcdir)
dist_man_MANS= libpng.3 libpngpf.3 png.5
include_HEADERS= png.h pngconf.h
bin_SCRIPTS=libpng-config libpng12-config
#rules to build libpng
lib_LTLIBRARIES=libpng12.la libpng.la
libpng12_la_SOURCES = png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
pngwtran.c pngmem.c pngerror.c pngpread.c \
png.h pngconf.h
libpng_la_SOURCES = $(libpng12_la_SOURCES)
libpng12_la_LDFLAGS = -export-dynamic -version-info $(LIBPNG12_VERSION_INFO)
libpng_la_LDFLAGS = -export-dynamic -version-info $(LIBPNG3_VERSION_INFO)
#distribute headers in /usr/include/libpng/*
pkginclude_HEADERS= png.h pngconf.h
#extra source distribution files.
EXTRA_DIST= ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \
pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \
${srcdir}/projects/cbuilder5/* ${srcdir}/projects/beos/* ${srcdir}/projects/visualc6/* \
${srcdir}/projects/wince.txt ${srcdir}/projects/netware.txt \
${srcdir}/scripts/* \
${srcdir}/contrib/gregbook/* \
${srcdir}/contrib/pngminus/* \
${srcdir}/contrib/pngsuite/* \
${srcdir}/contrib/visupng/* \
$(TESTS) \
example.c libpng.txt pngasmrd.h pnggccrd.c pngvcrd.c
CLEANFILES= pngout.png libpng.pc libpng12.pc libpng-config libpng12-config
libpng.pc:
cat ${srcdir}/scripts/libpng.pc.in | \
sed -e 's,[@]PREFIX[@],$(prefix),' -e 's,[@]INCLUDEDIR[@],$(includedir),' > libpng.pc
libpng12.pc: libpng.pc
cp libpng.pc libpng12.pc
install-data-local: libpng.pc libpng12.pc
@INSTALL@ -d @PKGCONFIGDIR@
@INSTALL_DATA@ libpng.pc @PKGCONFIGDIR@
@INSTALL_DATA@ libpng12.pc @PKGCONFIGDIR@
uninstall-local:
rm -f @PKGCONFIGDIR@/libpng.pc
rm -f @PKGCONFIGDIR@/libpng12.pc
libpng-config:
( cat ${srcdir}/scripts/libpng-config-head.in; \
echo prefix=\"$(prefix)\"; \
echo I_opts=\"-I$(includedir)\"; \
echo L_opts=\"-L$(libdir)\"; \
echo R_opts=\"-Wl,-rpath,$(libdir)\"; \
echo libs=\"-lpng12 -lz -lm\"; \
cat ${srcdir}/scripts/libpng-config-body.in ) > libpng-config
libpng12-config: libpng-config
cp libpng-config libpng12-config
此差异已折叠。
README for libpng version 1.2.6 - August 15, 2004 (shared library 12.0) README for libpng version 1.2.7beta1 - August 26, 2004 (shared library 12.0)
See the note about version numbers near the top of png.h See the note about version numbers near the top of png.h
See INSTALL for instructions on how to install libpng. See INSTALL for instructions on how to install libpng.
...@@ -77,16 +77,15 @@ compression library that is useful for more things than just PNG files. ...@@ -77,16 +77,15 @@ compression library that is useful for more things than just PNG files.
You can use zlib as a drop-in replacement for fread() and fwrite() if You can use zlib as a drop-in replacement for fread() and fwrite() if
you are so inclined. you are so inclined.
zlib should be available at the same place that libpng is. zlib should be available at the same place that libpng is, or at.
If not, it should be at ftp.uu.net in /graphics/png ftp://ftp.info-zip.org/pub/infozip/zlib
Eventually, it will be at ftp.uu.net in /pub/archiving/zip/zlib
You may also want a copy of the PNG specification. It is available You may also want a copy of the PNG specification. It is available
as an RFC and a W3C Recommendation. Failing as an RFC, a W3C Recommendation, and an ISO/IEC Standard. You can find
these resources you can try ftp.uu.net in the /graphics/png directory. these at http://www.libpng.org/pub/png/documents/
This code is currently being archived at ftp.uu.net in the This code is currently being archived at libpng.sf.net in the
/graphics/png directory, and on CompuServe, Lib 20 (PNG SUPPORT) [DOWNLOAD] area, and on CompuServe, Lib 20 (PNG SUPPORT)
at GO GRAPHSUP. If you can't find it in any of those places, at GO GRAPHSUP. If you can't find it in any of those places,
e-mail me, and I'll help you find it. e-mail me, and I'll help you find it.
...@@ -122,10 +121,10 @@ and ...". If in doubt, send questions to me. I'll bounce them ...@@ -122,10 +121,10 @@ and ...". If in doubt, send questions to me. I'll bounce them
to others, if necessary. to others, if necessary.
Please do not send suggestions on how to change PNG. We have Please do not send suggestions on how to change PNG. We have
been discussing PNG for three years now, and it is official and been discussing PNG for nine years now, and it is official and
finished. If you have suggestions for libpng, however, I'll finished. If you have suggestions for libpng, however, I'll
gladly listen. Even if your suggestion is not used for version gladly listen. Even if your suggestion is not used immediately,
1.0, it may be used later. it may be used later.
Files in this distribution: Files in this distribution:
...@@ -173,9 +172,9 @@ Files in this distribution: ...@@ -173,9 +172,9 @@ Files in this distribution:
visupng => Contains a MSVC workspace for VisualPng visupng => Contains a MSVC workspace for VisualPng
projects => Contains project files and workspaces for building DLL projects => Contains project files and workspaces for building DLL
beos => Contains a Beos workspace for building libpng beos => Contains a Beos workspace for building libpng
borland => Contains a Borland workspace for building libpng c5builder => Contains a Borland workspace for building libpng
and zlib and zlib
msvc => Contains a Microsoft Visual C++ (MSVC) workspace visualc6 => Contains a Microsoft Visual C++ (MSVC) workspace
for building libpng and zlib for building libpng and zlib
netware.txt => Contains instructions for downloading a set of netware.txt => Contains instructions for downloading a set of
project files for building libpng and zlib on project files for building libpng and zlib on
...@@ -187,10 +186,10 @@ Files in this distribution: ...@@ -187,10 +186,10 @@ Files in this distribution:
descrip.mms => VMS makefile for MMS or MMK descrip.mms => VMS makefile for MMS or MMK
makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.linux => Linux/ELF makefile makefile.linux => Linux/ELF makefile
(gcc, creates libpng12.so.0.1.2.5) (gcc, creates libpng12.so.0.1.2.7beta1)
makefile.gcmmx => Linux/ELF makefile (gcc, creates makefile.gcmmx => Linux/ELF makefile
libpng12.so.0.1.2.5, uses assembler code (gcc, creates libpng12.so.0.1.2.7beta1,
tuned for Intel MMX platform) uses assembler code tuned for Intel MMX platform)
makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with makefile.knr => Archaic UNIX Makefile that converts files with
ansi2knr (Requires ansi2knr.c from ansi2knr (Requires ansi2knr.c from
...@@ -205,17 +204,17 @@ Files in this distribution: ...@@ -205,17 +204,17 @@ Files in this distribution:
makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static) makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static)
makefile.intel => Intel C/C++ version 4.0 and later makefile.intel => Intel C/C++ version 4.0 and later
libpng.icc => Project file, IBM VisualAge/C++ 4.0 or later libpng.icc => Project file, IBM VisualAge/C++ 4.0 or later
makefile.macosx => MACOS X Makefile
makefile.netbsd => NetBSD/cc makefile, PNGGCCRD, makes libpng.so. makefile.netbsd => NetBSD/cc makefile, PNGGCCRD, makes libpng.so.
makefile.ne0bsd => NetBSD/cc makefile, PNGGCCRD, makes libpng0.so makefile.ne0bsd => NetBSD/cc makefile, PNGGCCRD, makes libpng0.so
makefile.openbsd => OpenBSD makefile makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib) makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
makefile.sggcc => Silicon Graphics (gcc, creates libpng12.so.0.1.2.5) makefile.sggcc => Silicon Graphics
(gcc, creates libpng12.so.0.1.2.7beta1)
makefile.sunos => Sun makefile makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile makefile.solaris => Solaris 2.X makefile
(gcc, creates libpng12.so.0.1.2.5) (gcc, creates libpng12.so.0.1.2.7beta1)
makefile.so9 => Solaris 9 makefile makefile.so9 => Solaris 9 makefile
(gcc, creates libpng12.so.0.1.2.5) (gcc, creates libpng12.so.0.1.2.7beta1)
makefile.32sunu => Sun Ultra 32-bit makefile makefile.32sunu => Sun Ultra 32-bit makefile
makefile.64sunu => Sun Ultra 64-bit makefile makefile.64sunu => Sun Ultra 64-bit makefile
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
...@@ -233,7 +232,7 @@ Files in this distribution: ...@@ -233,7 +232,7 @@ Files in this distribution:
makefile.tc3 => Turbo C 3.0 makefile makefile.tc3 => Turbo C 3.0 makefile
makefile.dj2 => DJGPP 2 makefile makefile.dj2 => DJGPP 2 makefile
makefile.msc => Microsoft C makefile makefile.msc => Microsoft C makefile
makefile.vcawin32 => makefile for Microsoft Visual C++ 5.0 and makefile.vcawin32=> makefile for Microsoft Visual C++ 5.0 and
later (uses assembler code tuned for Intel MMX later (uses assembler code tuned for Intel MMX
platform) platform)
makefile.vcwin32 => makefile for Microsoft Visual C++ 4.0 and makefile.vcwin32 => makefile for Microsoft Visual C++ 4.0 and
...@@ -244,26 +243,16 @@ Files in this distribution: ...@@ -244,26 +243,16 @@ Files in this distribution:
makevms.com => VMS build script makevms.com => VMS build script
pngdef.pas => Defines for a png32bd.dll with Borland C++ 4.5 pngdef.pas => Defines for a png32bd.dll with Borland C++ 4.5
SCOPTIONS.ppc => Used with smakefile.ppc SCOPTIONS.ppc => Used with smakefile.ppc
mangle => Directory containing scripts to build libpng12m.so:
mangle.in => Function-decoration macros added to png.h by the
makefiles.
makefile.linux => Linux/ELF makefile
(gcc, creates libpng12m.so.0.1.2.5)
makefile.gcmmx => Linux/ELF makefile (gcc, creates
libpng12.so.0m.1.2.5, uses assembler code
tuned for Intel MMX platform)
makefile.sgi => Silicon Graphics (cc, creates libpng12m.so)
makefile.sggcc => Silicon Graphics (gcc, creates libpng12m.so)
Good luck, and happy coding. Good luck, and happy coding.
-Glenn Randers-Pehrson -Glenn Randers-Pehrson (current maintainer)
Internet: randeg@alum.rpi.edu Internet: glennrp@users.sourceforge.net
-Andreas Eric Dilger -Andreas Eric Dilger (former maintainer, 1996-1997)
Internet: adilger@enel.ucalgary.ca Internet: adilger@enel.ucalgary.ca
Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/ Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/
-Guy Eric Schalnat -Guy Eric Schalnat (original author and former maintainer, 1995-1996)
(formerly of Group 42, Inc) (formerly of Group 42, Inc)
Internet: gschal@infinet.com Internet: gschal@infinet.com
Y2K compliance in libpng: Y2K compliance in libpng:
========================= =========================
August 15, 2004 August 26, 2004
Since the PNG Development group is an ad-hoc body, we can't make Since the PNG Development group is an ad-hoc body, we can't make
an official declaration. an official declaration.
This is your unofficial assurance that libpng from version 0.71 and This is your unofficial assurance that libpng from version 0.71 and
upward through 1.2.6 are Y2K compliant. It is my belief that earlier upward through 1.2.7beta1 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant. versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer Libpng only has three year fields. One is a 2-byte unsigned integer
......
此差异已折叠。
#! /bin/sh
# a quick hack script to generate necessary files from
# auto* tools.
libtoolize -c -f && aclocal && autoheader && automake --foreign -a -c && autoconf
此差异已折叠。
/* config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the `m' library (-lm). */
#undef HAVE_LIBM
/* Define to 1 if you have the `z' library (-lz). */
#undef HAVE_LIBZ
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
to 0 otherwise. */
#undef HAVE_MALLOC
/* Define to 1 if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the `memset' function. */
#undef HAVE_MEMSET
/* Define to 1 if you have the `pow' function. */
#undef HAVE_POW
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the `strrchr' function. */
#undef HAVE_STRRCHR
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME
/* Version number of package */
#undef VERSION
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc
/* Define to `unsigned' if <sys/types.h> does not define. */
#undef size_t
此差异已折叠。
此差异已折叠。
# Process this file with autoconf to produce a configure script.
m4_define(PNGPKG_VERSION,[1.2.6-automake])
AC_INIT([libpng], PNGPKG_VERSION, png-implement@ccrc.wustl.edu)
AM_INIT_AUTOMAKE([libpng], PNGPKG_VERSION)
AC_CONFIG_SRCDIR([pngget.c])
AM_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CC
AC_PROG_MAKE_SET
AC_PROG_LIBTOOL
# Checks for header files.
AC_PATH_X
AC_HEADER_STDC
AC_CHECK_HEADERS([fcntl.h malloc.h stdlib.h string.h strings.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
AC_STRUCT_TM
# Checks for library functions.
AC_FUNC_MALLOC
AC_FUNC_STRTOD
AC_CHECK_FUNCS([memset pow strrchr])
AC_CHECK_FUNC(sqrt, , AC_CHECK_LIB(m, sqrt,, [cannot find sqrt]))
AC_CHECK_LIB(z, zlibVersion,, AC_ERROR([ZLib not installed]))
AC_ARG_WITH(pkgconfigdir, AC_HELP_STRING([--with-pkgconfigdir],[Use the specified pkgconfig dir (default is prefix/lib/pkgconfig)]),[PKGCONFIGDIR=${withval}],[PKGCONFIGDIR='${prefix}/lib/pkgconfig'])
AC_MSG_CHECKING([pkgconfig directory])
AC_MSG_RESULT([$PKGCONFIGDIR])
AC_SUBST([PKGCONFIGDIR])
AC_SUBST(LIBPNG12_VERSION_INFO,0:0:0)
AC_SUBST(LIBPNG3_VERSION_INFO,3:0:0)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
此差异已折叠。
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd=$cpprog
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "$0: no input file specified" >&2
exit 1
else
:
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d "$dst" ]; then
instcmd=:
chmodcmd=""
else
instcmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f "$src" ] || [ -d "$src" ]
then
:
else
echo "$0: $src does not exist" >&2
exit 1
fi
if [ x"$dst" = x ]
then
echo "$0: no destination specified" >&2
exit 1
else
:
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d "$dst" ]
then
dst=$dst/`basename "$src"`
else
:
fi
fi
## this sed command emulates the dirname command
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-$defaultIFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS=$oIFS
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp=$pathcomp$1
shift
if [ ! -d "$pathcomp" ] ;
then
$mkdirprog "$pathcomp"
else
:
fi
pathcomp=$pathcomp/
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd "$dst" &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename "$dst"`
else
dstfile=`basename "$dst" $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename "$dst"`
else
:
fi
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/#inst.$$#
rmtmp=$dstdir/#rm.$$#
# Trap to clean up temp files at exit.
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
# Move or copy the file name to the temp name
$doit $instcmd "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
# Now remove or move aside any old file at destination location. We try this
# two ways since rm can't unlink itself on some systems and the destination
# file might be busy for other reasons. In this case, the final cleanup
# might fail but the new file should still install successfully.
{
if [ -f "$dstdir/$dstfile" ]
then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
{
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
fi &&
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(exit 0); exit
}
此差异已折叠。
此差异已折叠。
.TH LIBPNGPF 3 "August 15, 2004" .TH LIBPNGPF 3 "August 26, 2004"
.SH NAME .SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.6 libpng \- Portable Network Graphics (PNG) Reference Library 1.2.7beta1
(private functions) (private functions)
.SH SYNOPSIS .SH SYNOPSIS
\fB\fB#include <png.h>\fP\fP \fB\fB#include <png.h>\fP\fP
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
pngnow.png

2.0 KB | W: | H:

pngnow.png

2.0 KB | W: | H:

pngnow.png
pngnow.png
pngnow.png
pngnow.png
  • 2-up
  • Swipe
  • Onion skin
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
pngtest.png

8.4 KB | W: | H:

pngtest.png

8.4 KB | W: | H:

pngtest.png
pngtest.png
pngtest.png
pngtest.png
  • 2-up
  • Swipe
  • Onion skin
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
#!/bin/sh
./pngtest ${srcdir}/pngtest.png
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册