summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2004-11-27 18:22:29 -0600
committerGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2009-04-06 16:08:15 -0500
commitc3dda6daeaf9d69f0c73d857d4c6b5e41349f696 (patch)
treecf1fb4a5a88a6c110df7892df8b4d0631fc018aa
parent73b029f9d39e27db5e423c92a2c553f760997540 (diff)
downloadlibpng-c3dda6daeaf9d69f0c73d857d4c6b5e41349f696.tar.gz
Imported from libpng-1.2.8rc3.tarv1.2.8rc3
-rw-r--r--ANNOUNCE10
-rw-r--r--CHANGES6
-rw-r--r--INSTALL16
-rw-r--r--KNOWNBUG2
-rw-r--r--LICENSE4
-rw-r--r--README14
-rw-r--r--Y2KINFO4
-rwxr-xr-xconfigure4
-rw-r--r--libpng.320
-rw-r--r--libpng.txt6
-rw-r--r--libpngpf.34
-rw-r--r--png.52
-rw-r--r--png.c6
-rw-r--r--png.h22
-rw-r--r--pngconf.h13
-rw-r--r--pngerror.c2
-rw-r--r--pnggccrd.c2
-rw-r--r--pngget.c2
-rw-r--r--pngmem.c2
-rw-r--r--pngpread.c2
-rw-r--r--pngread.c6
-rw-r--r--pngrio.c2
-rw-r--r--pngrtran.c2
-rw-r--r--pngrutil.c615
-rw-r--r--pngset.c2
-rw-r--r--pngtest.c4
-rw-r--r--pngtrans.c2
-rw-r--r--pngvcrd.c2
-rw-r--r--pngwio.c2
-rw-r--r--pngwrite.c2
-rw-r--r--pngwtran.c2
-rw-r--r--pngwutil.c2
-rwxr-xr-xscripts/libpng-config-head.in2
-rw-r--r--scripts/libpng.pc.in2
-rw-r--r--scripts/makefile.32sunu2
-rw-r--r--scripts/makefile.64sunu2
-rw-r--r--scripts/makefile.aix2
-rw-r--r--scripts/makefile.beos2
-rw-r--r--scripts/makefile.cygwin2
-rw-r--r--scripts/makefile.darwin2
-rw-r--r--scripts/makefile.dec2
-rw-r--r--scripts/makefile.elf249
-rw-r--r--scripts/makefile.gcmmx2
-rw-r--r--scripts/makefile.hp642
-rw-r--r--scripts/makefile.hpgcc2
-rw-r--r--scripts/makefile.hpux2
-rw-r--r--scripts/makefile.linux2
-rw-r--r--scripts/makefile.ne12bsd2
-rw-r--r--scripts/makefile.netbsd2
-rw-r--r--scripts/makefile.openbsd2
-rw-r--r--scripts/makefile.sco2
-rw-r--r--scripts/makefile.sggcc2
-rw-r--r--scripts/makefile.sgi2
-rw-r--r--scripts/makefile.so92
-rw-r--r--scripts/makefile.solaris2
-rw-r--r--scripts/pngos2.def2
-rw-r--r--scripts/pngw32.def2
57 files changed, 620 insertions, 463 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index c1feaea68..6e857db20 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
-Libpng 1.2.8rc2 - November 26, 2004
+Libpng 1.2.8rc3 - November 28, 2004
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.
@@ -31,6 +31,7 @@ version 1.2.8beta5 [November 20, 2004]
Revised handling of SPECIALBUILD, PRIVATEBUILD,
PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
version 1.2.8rc1 [Novermber 24, 2004]
+ Inadvertently installed a supposedly faster test version of pngrutil.c
Moved handling of BUILD macros from pngconf.h to png.h
Added definition of PNG_LIBPNG_BASE_TYPE in png.h, inadvertently
omitted from beta5.
@@ -38,6 +39,13 @@ version 1.2.8rc1 [Novermber 24, 2004]
Despammed mailing addresses by masking "@" with "at".
version 1.2.8rc2 [November 26, 2004]
Added two missing "\" in png.h
+ Change tests in pngread.c and pngpread.c to
+ if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
+ png_do_read_transformations(png_ptr);
+version 1.2.8rc3 [November 28, 2004]
+ Reverted pngrutil.c to version libpng-1.2.8beta5.
+ Added scripts/makefile.elf with supporting code in pngconf.h for symbol
+ versioning (John Bowler).
Send comments/corrections/commendations to
png-implement at ccrc.wustl.edu (subscription required; write to
diff --git a/CHANGES b/CHANGES
index 66dd1b672..ed828dad1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1394,12 +1394,16 @@ version 1.2.8rc1 [November 24, 2004]
omitted from beta5.
Revised scripts/pngw32.rc
Despammed mailing addresses by masking "@" with "at".
+ Inadvertently installed a supposedly faster test version of pngrutil.c
version 1.2.8rc2 [November 26, 2004]
Added two missing "\" in png.h
Change tests in pngread.c and pngpread.c to
if (png_ptr->transformations || (png_ptr->flags&PNG_FLAG_STRIP_ALPHA))
png_do_read_transformations(png_ptr);
-
+version 1.2.8rc3 [November 28, 2004]
+ Reverted pngrutil.c to version libpng-1.2.8beta5.
+ Added scripts/makefile.elf with supporting code in pngconf.h for symbol
+ versioning (John Bowler).
Send comments/corrections/commendations to
png-implement at ccrc.wustl.edu (subscription required; write to
diff --git a/INSTALL b/INSTALL
index e9a1198c0..0f9a66645 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
-Installing libpng version 1.2.8rc2 - November 26, 2004
+Installing libpng version 1.2.8rc3 - November 28, 2004
Before installing libpng, you must first install zlib. zlib
can usually be found wherever you got libpng. zlib can be
@@ -10,7 +10,7 @@ zlib.h and zconf.h include files that correspond to the
version of zlib that's installed.
You can rename the directories that you downloaded (they
-might be called "libpng-1.2.8rc2" or "lpng109" and "zlib-1.2.1"
+might be called "libpng-1.2.8rc3" or "lpng109" and "zlib-1.2.1"
or "zlib121") so that you have directories called "zlib" and "libpng".
Your directory structure should look like this:
@@ -66,10 +66,12 @@ The files that are presently available in the scripts directory
include
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
+ makefile.elf => Linux/ELF makefile symbol versioning,
+ gcc, creates libpng12.so.0.1.2.8rc3)
makefile.linux => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.8rc2)
+ (gcc, creates libpng12.so.0.1.2.8rc3)
makefile.gcmmx => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.8rc2,
+ (gcc, creates libpng12.so.0.1.2.8rc3,
uses assembler code tuned for Intel MMX platform)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
@@ -92,12 +94,12 @@ include
makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
makefile.sggcc => Silicon Graphics (gcc,
- creates libpng12.so.0.1.2.8rc2)
+ creates libpng12.so.0.1.2.8rc3)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile (gcc,
- creates libpng12.so.0.1.2.8rc2)
+ creates libpng12.so.0.1.2.8rc3)
makefile.so9 => Solaris 9 makefile (gcc,
- creates libpng12.so.0.1.2.8rc2)
+ creates libpng12.so.0.1.2.8rc3)
makefile.32sunu => Sun Ultra 32-bit makefile
makefile.64sunu => Sun Ultra 64-bit makefile
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
diff --git a/KNOWNBUG b/KNOWNBUG
index 6af22471b..4859980d0 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -1,5 +1,5 @@
-Known bugs in libpng version 1.2.8rc2
+Known bugs in libpng version 1.2.8rc3
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
diff --git a/LICENSE b/LICENSE
index b9ac6d046..9898cab27 100644
--- a/LICENSE
+++ b/LICENSE
@@ -8,7 +8,7 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
If you modify libpng you may insert additional notices immediately following
this sentence.
-libpng version 1.2.6, November 26, 2004, is
+libpng version 1.2.6, November 28, 2004, is
Copyright (c) 2004 Glenn Randers-Pehrson, and is
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@@ -106,4 +106,4 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-November 26, 2004
+November 28, 2004
diff --git a/README b/README
index 1c1e4b660..09e790bf3 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.2.8rc2 - November 26, 2004 (shared library 12.0)
+README for libpng version 1.2.8rc3 - November 28, 2004 (shared library 12.0)
See the note about version numbers near the top of png.h
See INSTALL for instructions on how to install libpng.
@@ -188,10 +188,12 @@ Files in this distribution:
scripts => Directory containing scripts for building libpng:
descrip.mms => VMS makefile for MMS or MMK
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
+ makefile.elf => Linux/ELF makefile symbol versioning,
+ gcc, creates libpng12.so.0.1.2.8rc3)
makefile.linux => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.8rc2)
+ (gcc, creates libpng12.so.0.1.2.8rc3)
makefile.gcmmx => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.8rc2,
+ (gcc, creates libpng12.so.0.1.2.8rc3,
uses assembler code tuned for Intel MMX platform)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
@@ -213,12 +215,12 @@ Files in this distribution:
makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
makefile.sggcc => Silicon Graphics
- (gcc, creates libpng12.so.0.1.2.8rc2)
+ (gcc, creates libpng12.so.0.1.2.8rc3)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile
- (gcc, creates libpng12.so.0.1.2.8rc2)
+ (gcc, creates libpng12.so.0.1.2.8rc3)
makefile.so9 => Solaris 9 makefile
- (gcc, creates libpng12.so.0.1.2.8rc2)
+ (gcc, creates libpng12.so.0.1.2.8rc3)
makefile.32sunu => Sun Ultra 32-bit makefile
makefile.64sunu => Sun Ultra 64-bit makefile
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
diff --git a/Y2KINFO b/Y2KINFO
index 752963296..b01253dc2 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
Y2K compliance in libpng:
=========================
- November 26, 2004
+ November 28, 2004
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
- upward through 1.2.8rc2 are Y2K compliant. It is my belief that earlier
+ upward through 1.2.8rc3 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer
diff --git a/configure b/configure
index 3037d3598..f688936de 100755
--- a/configure
+++ b/configure
@@ -1,13 +1,13 @@
#!/bin/sh
echo "
There is no \"configure\" script in this distribution of
- libpng-1.2.8rc2.
+ libpng-1.2.8rc3.
Instead, please copy the appropriate makefile for your system from the
\"scripts\" directory. Read the INSTALL file for more details.
Update, July 2004: you can get a "configure" based distribution
from the libpng distribution sites. Download the file
- libpng-1.2.8rc2-config.tar.gz
+ libpng-1.2.8rc3-config.tar.gz
"
diff --git a/libpng.3 b/libpng.3
index 432000ac3..05f243d1c 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "November 26, 2004"
+.TH LIBPNG 3 "November 28, 2004"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8rc2
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8rc3
.SH SYNOPSIS
\fI\fB
@@ -781,7 +781,7 @@ Following is a copy of the libpng.txt file that accompanies libpng.
.SH LIBPNG.TXT
libpng.txt - A description on how to use and modify libpng
- libpng version 1.2.8rc2 - November 26, 2004
+ libpng version 1.2.8rc3 - November 28, 2004
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2004 Glenn Randers-Pehrson
@@ -3685,13 +3685,13 @@ application:
.SH IX. Y2K Compliance in libpng
-November 26, 2004
+November 28, 2004
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.2.8rc2 are Y2K compliant. It is my belief that earlier
+upward through 1.2.8rc3 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that
@@ -3840,8 +3840,8 @@ the first widely used release:
1.0.17 10 10017 12.so.0.1.0.17
1.2.7 13 10207 12.so.0.1.2.7
1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5
- 1.0.18rc1-2 10 10018 12.so.0.1.0.18rc1-2
- 1.2.8rc1-2 13 10208 12.so.0.1.2.8rc1-2
+ 1.0.18rc1-3 10 10018 12.so.0.1.0.18rc1-3
+ 1.2.8rc1-3 13 10208 12.so.0.1.2.8rc1-3
Henceforth the source version will match the shared-library minor
and patch numbers; the shared-library major version number will be
@@ -3897,7 +3897,7 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation.
-Libpng version 1.2.8rc2 - November 26, 2004:
+Libpng version 1.2.8rc3 - November 28, 2004:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
@@ -3915,7 +3915,7 @@ included in the libpng distribution, the latter shall prevail.)
If you modify libpng you may insert additional notices immediately following
this sentence.
-libpng version 1.2.6, November 26, 2004, is
+libpng version 1.2.6, November 28, 2004, is
Copyright (c) 2004 Glenn Randers-Pehrson, and is
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@@ -4014,7 +4014,7 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-November 26, 2004
+November 28, 2004
.\" end of man page
diff --git a/libpng.txt b/libpng.txt
index 70fe44f46..a1be987f6 100644
--- a/libpng.txt
+++ b/libpng.txt
@@ -1,6 +1,6 @@
libpng.txt - A description on how to use and modify libpng
- libpng version 1.2.8rc2 - November 26, 2004
+ libpng version 1.2.8rc3 - November 28, 2004
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2004 Glenn Randers-Pehrson
@@ -2904,13 +2904,13 @@ application:
IX. Y2K Compliance in libpng
-November 26, 2004
+November 28, 2004
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.2.8rc2 are Y2K compliant. It is my belief that earlier
+upward through 1.2.8rc3 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that
diff --git a/libpngpf.3 b/libpngpf.3
index 401d0d6b3..234d1caf0 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "November 26, 2004"
+.TH LIBPNGPF 3 "November 28, 2004"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8rc2
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8rc3
(private functions)
.SH SYNOPSIS
\fB\fB#include <png.h>\fP\fP
diff --git a/png.5 b/png.5
index a9c9efc84..e0476db71 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "November 26, 2004"
+.TH PNG 5 "November 28, 2004"
.SH NAME
png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION
diff --git a/png.c b/png.c
index 9bc8d7f75..4af84246f 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
/* png.c - location for general purpose libpng functions
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -13,7 +13,7 @@
#include "png.h"
/* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_8rc2 Your_png_h_is_not_version_1_2_8rc2;
+typedef version_1_2_8rc3 Your_png_h_is_not_version_1_2_8rc3;
/* Version information for C files. This had better match the version
* string defined in png.h. */
@@ -680,7 +680,7 @@ png_charp PNGAPI
png_get_copyright(png_structp png_ptr)
{
if (&png_ptr != NULL) /* silence compiler warning about unused png_ptr */
- return ((png_charp) "\n libpng version 1.2.8rc2 - November 26, 2004\n\
+ return ((png_charp) "\n libpng version 1.2.8rc3 - November 28, 2004\n\
Copyright (c) 1998-2004 Glenn Randers-Pehrson\n\
Copyright (c) 1996-1997 Andreas Dilger\n\
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
diff --git a/png.h b/png.h
index 9dfa95db9..5c0f58f8c 100644
--- a/png.h
+++ b/png.h
@@ -1,6 +1,6 @@
/* png.h - header file for PNG reference library
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* Copyright (c) 1998-2004 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.)
@@ -8,7 +8,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.2.8rc2 - November 26, 2004: Glenn
+ * libpng versions 0.97, January 1998, through 1.2.8rc3 - November 28, 2004: Glenn
* See also "Contributing Authors", below.
*
* Note about libpng version numbers:
@@ -107,8 +107,8 @@
* 1.0.17 10 10017 12.so.0.1.0.17
* 1.2.7 13 10207 12.so.0.1.2.7
* 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5
- * 1.0.18rc1-2 10 10018 12.so.0.1.0.18rc1-2
- * 1.2.8rc1-2 13 10208 12.so.0.1.2.8rc1-2
+ * 1.0.18rc1-3 10 10018 12.so.0.1.0.18rc1-3
+ * 1.2.8rc1-3 13 10208 12.so.0.1.2.8rc1-3
*
* Henceforth the source version will match the shared-library major
* and minor numbers; the shared-library major version number will be
@@ -138,7 +138,7 @@
* If you modify libpng you may insert additional notices immediately following
* this sentence.
*
- * libpng versions 1.2.6, August 15, 2004, through 1.2.8rc2, November 26, 2004, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.2.8rc3, November 28, 2004, are
* Copyright (c) 2004 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:
@@ -250,13 +250,13 @@
* Y2K compliance in libpng:
* =========================
*
- * November 26, 2004
+ * November 28, 2004
*
* Since the PNG Development group is an ad-hoc body, we can't make
* an official declaration.
*
* This is your unofficial assurance that libpng from version 0.71 and
- * upward through 1.2.8rc2 are Y2K compliant. It is my belief that earlier
+ * upward through 1.2.8rc3 are Y2K compliant. It is my belief that earlier
* versions were also Y2K compliant.
*
* Libpng only has three year fields. One is a 2-byte unsigned integer
@@ -312,9 +312,9 @@
*/
/* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.2.8rc2"
+#define PNG_LIBPNG_VER_STRING "1.2.8rc3"
#define PNG_HEADER_VERSION_STRING \
- " libpng version 1.2.8rc2 - November 26, 2004 (header)\n"
+ " libpng version 1.2.8rc3 - November 28, 2004 (header)\n"
#define PNG_LIBPNG_VER_SONUM 0
#define PNG_LIBPNG_VER_DLLNUM 13
@@ -326,7 +326,7 @@
/* This should match the numeric part of the final component of
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */
-#define PNG_LIBPNG_VER_BUILD 2
+#define PNG_LIBPNG_VER_BUILD 3
/* Release Status */
#define PNG_LIBPNG_BUILD_ALPHA 1
@@ -1354,7 +1354,7 @@ struct png_struct_def
/* This triggers a compiler error in png.c, if png.c and png.h
* do not agree upon the version number.
*/
-typedef png_structp version_1_2_8rc2;
+typedef png_structp version_1_2_8rc3;
typedef png_struct FAR * FAR * png_structpp;
diff --git a/pngconf.h b/pngconf.h
index 316fab878..afa77fa0c 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
/* pngconf.h - machine configurable file for libpng
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1322,6 +1322,17 @@ typedef z_stream FAR * png_zstreamp;
# define PNG_IMPEXP
#endif
+#ifdef PNG_BUILDSYMS
+# ifndef PNG_EXPORT
+# define PNG_EXPORT(type,symbol) PNG_FUNCTION_EXPORT symbol END
+# endif
+# ifdef PNG_USE_GLOBAL_ARRAYS
+# ifndef PNG_EXPORT_VAR
+# define PNG_EXPORT_VAR(type) PNG_DATA_EXPORT
+# endif
+# endif
+#endif
+
#ifndef PNG_EXPORT
# define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol
#endif
diff --git a/pngerror.c b/pngerror.c
index a8850c70c..2d7fc171e 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
/* pngerror.c - stub functions for i/o and memory allocation
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pnggccrd.c b/pnggccrd.c
index 51ccd85d1..7eb064e3d 100644
--- a/pnggccrd.c
+++ b/pnggccrd.c
@@ -6,7 +6,7 @@
* and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
* for Intel's performance analysis of the MMX vs. non-MMX code.
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* Copyright (c) 1998, Intel Corporation
diff --git a/pngget.c b/pngget.c
index 853f29ea4..c0bd58bfb 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
/* pngget.c - retrieval of values from info struct
*
- * libpng 1.2.8rc2 - November 26, 2004
+ * libpng 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngmem.c b/pngmem.c
index 22a1c2179..be834e2e7 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
/* pngmem.c - stub functions for memory allocation
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngpread.c b/pngpread.c
index c735e4f17..e8a86ab38 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
/* pngpread.c - read a png file in push mode
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngread.c b/pngread.c
index 9ba0bda28..29173b362 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
/* pngread.c - read a PNG file
*
- * libpng 1.2.8rc2 - November 26, 2004
+ * libpng 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -806,7 +806,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
* not called png_set_interlace_handling(), the display_row buffer will
* be ignored, so pass NULL to it.
*
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.8rc2
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.8rc3
*/
void PNGAPI
@@ -856,7 +856,7 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
* only call this function once. If you desire to have an image for
* each pass of a interlaced image, use png_read_rows() instead.
*
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.8rc2
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.8rc3
*/
void PNGAPI
png_read_image(png_structp png_ptr, png_bytepp image)
diff --git a/pngrio.c b/pngrio.c
index d8e4d15e6..d06e57d9f 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
/* pngrio.c - functions for data input
*
- * libpng 1.2.8rc2 - November 26, 2004
+ * libpng 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrtran.c b/pngrtran.c
index 46474f45e..995acb6bc 100644
--- a/pngrtran.c
+++ b/pngrtran.c
@@ -1,7 +1,7 @@
/* pngrtran.c - transforms the data in a row for PNG readers
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrutil.c b/pngrutil.c
index d8c6f764b..92e4a940e 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,6 +1,6 @@
/* pngrutil.c - utilities to read a PNG file
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -2260,46 +2260,59 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
}
else
{
-#if defined(PNG_READ_PACKSWAP_SUPPORTED)
- static const png_byte bitrev[16] =
- {0x00, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E,
- 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F};
- static const png_byte lastbyte_mask_norm[8] =
- {0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE};
- static const png_byte lastbyte_mask_swap[8] =
- {0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F};
- const png_byte *lastbyte_mask =
- (png_ptr->transformations & PNG_PACKSWAP) ?
- lastbyte_mask_swap : lastbyte_mask_norm;
-#else
- static const png_byte lastbyte_mask[8] =
- {0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE};
-#endif
switch (png_ptr->row_info.pixel_depth)
{
case 1:
{
png_bytep sp = png_ptr->row_buf + 1;
png_bytep dp = row;
+ int s_inc, s_start, s_end;
+ int m = 0x80;
+ int shift;
png_uint_32 i;
- png_byte pixel_mask;
+ png_uint_32 row_width = png_ptr->width;
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
if (png_ptr->transformations & PNG_PACKSWAP)
- mask = (bitrev[mask & 0x0F] << 4) | bitrev[(mask >> 4) & 0x0F];
+ {
+ s_start = 0;
+ s_end = 7;
+ s_inc = 1;
+ }
+ else
#endif
- pixel_mask = (png_byte)mask;
-
- for (i = png_ptr->width; i >= 8; i -= 8)
{
- *dp = (*sp & pixel_mask) | (*dp & ~pixel_mask);
- sp++;
- dp++;
+ s_start = 7;
+ s_end = 0;
+ s_inc = -1;
}
- if (i > 0)
+
+ shift = s_start;
+
+ for (i = 0; i < row_width; i++)
{
- pixel_mask &= lastbyte_mask[i];
- *dp = (*sp & pixel_mask) | (*dp & ~pixel_mask);
+ if (m & mask)
+ {
+ int value;
+
+ value = (*sp >> shift) & 0x01;
+ *dp &= (png_byte)((0x7f7f >> (7 - shift)) & 0xff);
+ *dp |= (png_byte)(value << shift);
+ }
+
+ if (shift == s_end)
+ {
+ shift = s_start;
+ sp++;
+ dp++;
+ }
+ else
+ shift += s_inc;
+
+ if (m == 1)
+ m = 0x80;
+ else
+ m >>= 1;
}
break;
}
@@ -2307,40 +2320,51 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
{
png_bytep sp = png_ptr->row_buf + 1;
png_bytep dp = row;
- png_uint_32 i;
- png_byte pixel_mask[2];
+ int s_start, s_end, s_inc;
int m = 0x80;
- int j;
+ int shift;
+ png_uint_32 i;
+ png_uint_32 row_width = png_ptr->width;
+ int value;
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
if (png_ptr->transformations & PNG_PACKSWAP)
- mask = bitrev[mask & 0x0F] | (bitrev[(mask >> 4) & 0x0F] << 4);
-#endif
- for (j = 0; j < 2; j++)
{
- pixel_mask[j] = 0;
- for (i = 4; i > 0; i--)
- {
- pixel_mask[j] <<= 2;
- if (m & mask)
- pixel_mask[j] |= 0x03;
- m >>= 1;
- }
+ s_start = 0;
+ s_end = 6;
+ s_inc = 2;
}
- j = 0;
- for (i = png_ptr->width; i >= 4; i -= 4)
+ else
+#endif
{
- if (pixel_mask[j] != 0)
- *dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
- sp++;
- dp++;
- j ^= 1;
+ s_start = 6;
+ s_end = 0;
+ s_inc = -2;
}
- if (i > 0)
+
+ shift = s_start;
+
+ for (i = 0; i < row_width; i++)
{
- pixel_mask[j] &= lastbyte_mask[i * 2];
- if (pixel_mask[j] != 0)
- *dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
+ if (m & mask)
+ {
+ value = (*sp >> shift) & 0x03;
+ *dp &= (png_byte)((0x3f3f >> (6 - shift)) & 0xff);
+ *dp |= (png_byte)(value << shift);
+ }
+
+ if (shift == s_end)
+ {
+ shift = s_start;
+ sp++;
+ dp++;
+ }
+ else
+ shift += s_inc;
+ if (m == 1)
+ m = 0x80;
+ else
+ m >>= 1;
}
break;
}
@@ -2348,41 +2372,50 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
{
png_bytep sp = png_ptr->row_buf + 1;
png_bytep dp = row;
- png_uint_32 i;
- png_byte pixel_mask[4];
+ int s_start, s_end, s_inc;
int m = 0x80;
- int j;
+ int shift;
+ png_uint_32 i;
+ png_uint_32 row_width = png_ptr->width;
+ int value;
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
if (png_ptr->transformations & PNG_PACKSWAP)
- mask = ((mask & 0x55) << 1) | ((mask & 0xAA) >> 1);
-#endif
- for (j = 0; j < 4; j++)
{
- pixel_mask[j] = 0;
- for (i = 2; i > 0; i--)
- {
- pixel_mask[j] <<= 4;
- if (m & mask)
- pixel_mask[j] |= 0x0F;
- m >>= 1;
- }
+ s_start = 0;
+ s_end = 4;
+ s_inc = 4;
}
- j = 0;
- for (i = png_ptr->width; i >= 2; i -= 2)
+ else
+#endif
{
- if (pixel_mask[j] != 0)
- *dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
- sp++;
- dp++;
- j += 1;
- j &= 3;
+ s_start = 4;
+ s_end = 0;
+ s_inc = -4;
}
- if (i > 0)
+ shift = s_start;
+
+ for (i = 0; i < row_width; i++)
{
- pixel_mask[j] &= lastbyte_mask[4];
- if (pixel_mask[j] != 0)
- *dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
+ if (m & mask)
+ {
+ value = (*sp >> shift) & 0xf;
+ *dp &= (png_byte)((0xf0f >> (4 - shift)) & 0xff);
+ *dp |= (png_byte)(value << shift);
+ }
+
+ if (shift == s_end)
+ {
+ shift = s_start;
+ sp++;
+ dp++;
+ }
+ else
+ shift += s_inc;
+ if (m == 1)
+ m = 0x80;
+ else
+ m >>= 1;
}
break;
}
@@ -2392,123 +2425,24 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
png_bytep dp = row;
png_size_t pixel_bytes = (png_ptr->row_info.pixel_depth >> 3);
png_uint_32 i;
- int m = 0x80;
+ png_uint_32 row_width = png_ptr->width;
+ png_byte m = 0x80;
- switch (pixel_bytes)
+
+ for (i = 0; i < row_width; i++)
{
- case 1:
- for (i = png_ptr->width; i > 0; i--)
- {
- if (m & mask)
- {
- *(dp + 0) = *(sp + 0);
- }
- sp += 1;
- dp += 1;
- if ((m >>= 1) == 0)
- m = 0x80;
- }
- break;
- case 2:
- for (i = png_ptr->width; i > 0; i--)
- {
- if (m & mask)
- {
- *(dp + 0) = *(sp + 0);
- *(dp + 1) = *(sp + 1);
- }
- sp += 2;
- dp += 2;
- if ((m >>= 1) == 0)
- m = 0x80;
- }
- break;
- case 3:
- for (i = png_ptr->width; i > 0; i--)
- {
- if (m & mask)
- {
- *(dp + 0) = *(sp + 0);
- *(dp + 1) = *(sp + 1);
- *(dp + 2) = *(sp + 2);
- }
- sp += 3;
- dp += 3;
- if ((m >>= 1) == 0)
- m = 0x80;
- }
- break;
- case 4:
- for (i = png_ptr->width; i > 0; i--)
- {
- if (m & mask)
- {
- *(dp + 0) = *(sp + 0);
- *(dp + 1) = *(sp + 1);
- *(dp + 2) = *(sp + 2);
- *(dp + 3) = *(sp + 3);
- }
- sp += 4;
- dp += 4;
- if ((m >>= 1) == 0)
- m = 0x80;
- }
- break;
- case 6:
- for (i = png_ptr->width; i > 0; i--)
- {
- if (m & mask)
- {
- *(dp + 0) = *(sp + 0);
- *(dp + 1) = *(sp + 1);
- *(dp + 2) = *(sp + 2);
- *(dp + 3) = *(sp + 3);
- *(dp + 4) = *(sp + 4);
- *(dp + 5) = *(sp + 5);
- }
- sp += 6;
- dp += 6;
- if ((m >>= 1) == 0)
- m = 0x80;
- }
- break;
- case 8:
- for (i = png_ptr->width; i > 0; i--)
- {
- if (m & mask)
- {
- *(dp + 0) = *(sp + 0);
- *(dp + 1) = *(sp + 1);
- *(dp + 2) = *(sp + 2);
- *(dp + 3) = *(sp + 3);
- *(dp + 4) = *(sp + 4);
- *(dp + 5) = *(sp + 5);
- *(dp + 6) = *(sp + 6);
- *(dp + 7) = *(sp + 7);
- }
- sp += 8;
- dp += 8;
- if ((m >>= 1) == 0)
- m = 0x80;
- }
- break;
- default:
- /*for (i = png_ptr->width; i > 0; i--)
- *{
- * if (m & mask)
- * {
- * png_size_t j;
- * for (j = 0; j < pixel_bytes; j++)
- * {
- * *(dp + j) = *(sp + j);
- * }
- * }
- * sp += pixel_bytes;
- * dp += pixel_bytes;
- * if ((m >>= 1) == 0)
- * m = 0x80;
- *}
- */break;
+ if (m & mask)
+ {
+ png_memcpy(dp, sp, pixel_bytes);
+ }
+
+ sp += pixel_bytes;
+ dp += pixel_bytes;
+
+ if (m == 1)
+ m = 0x80;
+ else
+ m >>= 1;
}
break;
}
@@ -2537,101 +2471,122 @@ png_do_read_interlace(png_structp png_ptr)
#endif
png_debug(1,"in png_do_read_interlace (stock C version)\n");
- if (row != NULL && row_info != NULL &&
- pass < 6)
+ if (row != NULL && row_info != NULL)
{
- png_uint_32 final_width = row_info->width * png_pass_inc[pass];
+ png_uint_32 final_width;
+
+ final_width = row_info->width * png_pass_inc[pass];
switch (row_info->pixel_depth)
{
case 1:
{
- static const png_byte pixeltable1[24] =
- {0x00, 0x00, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0xFF,
- 0x00, 0x03, 0x0C, 0x0F, 0x30, 0x33, 0x3C, 0x3F,
- 0xC0, 0xC3, 0xCC, 0xCF, 0xF0, 0xF3, 0xFC, 0xFF};
png_bytep sp = row + (png_size_t)((row_info->width - 1) >> 3);
png_bytep dp = row + (png_size_t)((final_width - 1) >> 3);
- int nbits = 8 / png_pass_inc[pass];
- int sshift = 7 - (int)((row_info->width + 7) & 0x07);
- int s_inc = nbits;
- png_byte smask = (1 << nbits) - 1;
- const png_byte *pix = pixeltable1 + (2 * nbits);
+ int sshift, dshift;
+ int s_start, s_end, s_inc;
+ int jstop = png_pass_inc[pass];
+ png_byte v;
png_uint_32 i;
+ int j;
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
if (transformations & PNG_PACKSWAP)
{
- sshift = 7 - sshift;
- s_inc = -s_inc;
+ sshift = (int)((row_info->width + 7) & 0x07);
+ dshift = (int)((final_width + 7) & 0x07);
+ s_start = 7;
+ s_end = 0;
+ s_inc = -1;
}
+ else
#endif
- sshift &= (0x10 - nbits);
-
- for (i = (row_info->width + nbits - 1) / nbits;
- i > 0; i--)
{
- *dp-- = pix[(*sp >> sshift) & smask];
+ sshift = 7 - (int)((row_info->width + 7) & 0x07);
+ dshift = 7 - (int)((final_width + 7) & 0x07);
+ s_start = 0;
+ s_end = 7;
+ s_inc = 1;
+ }
- sshift += s_inc;
- if (sshift >= 8)
+ for (i = 0; i < row_info->width; i++)
+ {
+ v = (png_byte)((*sp >> sshift) & 0x01);
+ for (j = 0; j < jstop; j++)
{
- sshift -= 8;
- sp--;
+ *dp &= (png_byte)((0x7f7f >> (7 - dshift)) & 0xff);
+ *dp |= (png_byte)(v << dshift);
+ if (dshift == s_end)
+ {
+ dshift = s_start;
+ dp--;
+ }
+ else
+ dshift += s_inc;
}
- else if (sshift < 0)
+ if (sshift == s_end)
{
- sshift += 8;
+ sshift = s_start;
sp--;
}
+ else
+ sshift += s_inc;
}
break;
}
case 2:
{
- static const png_byte pixeltable2[20] =
- {0x00, 0x55, 0xAA, 0xFF,
- 0x00, 0x05, 0x0A, 0x0F, 0x50, 0x55, 0x5A, 0x5F,
- 0xA0, 0xA5, 0xAA, 0xAF, 0xF0, 0xF5, 0xFA, 0xFF};
- png_bytep sp = row + (png_size_t)((row_info->width - 1) >> 2);
- png_bytep dp = row + (png_size_t)((final_width - 1) >> 2);
- int is2 = (png_pass_inc[pass] == 2);
- int is8 = (png_pass_inc[pass] == 8);
- int sshift = (int)((3 - ((row_info->width + 3) & 0x03)) << 1);
- int s_inc = 2 << is2;
- png_byte smask = (4 << (2 * is2)) - 1;
- const png_byte *pix = pixeltable2 + (4 * is2);
+ png_bytep sp = row + (png_uint_32)((row_info->width - 1) >> 2);
+ png_bytep dp = row + (png_uint_32)((final_width - 1) >> 2);
+ int sshift, dshift;
+ int s_start, s_end, s_inc;
+ int jstop = png_pass_inc[pass];
png_uint_32 i;
- png_byte v;
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
if (transformations & PNG_PACKSWAP)
{
- sshift = 6 - sshift;
- s_inc = -s_inc;
+ sshift = (int)(((row_info->width + 3) & 0x03) << 1);
+ dshift = (int)(((final_width + 3) & 0x03) << 1);
+ s_start = 6;
+ s_end = 0;
+ s_inc = -2;
}
+ else
#endif
- sshift &= (0x0E - (2 * is2));
+ {
+ sshift = (int)((3 - ((row_info->width + 3) & 0x03)) << 1);
+ dshift = (int)((3 - ((final_width + 3) & 0x03)) << 1);
+ s_start = 0;
+ s_end = 6;
+ s_inc = 2;
+ }
- for (i = (row_info->width + is2) >> is2;
- i > 0; i--)
+ for (i = 0; i < row_info->width; i++)
{
- v = pix[(*sp >> sshift) & smask];
- *dp-- = v;
- if (is8)
- *dp-- = v;
+ png_byte v;
+ int j;
- sshift += s_inc;
- if (sshift >= 8)
+ v = (png_byte)((*sp >> sshift) & 0x03);
+ for (j = 0; j < jstop; j++)
{
- sshift -= 8;
- sp--;
+ *dp &= (png_byte)((0x3f3f >> (6 - dshift)) & 0xff);
+ *dp |= (png_byte)(v << dshift);
+ if (dshift == s_end)
+ {
+ dshift = s_start;
+ dp--;
+ }
+ else
+ dshift += s_inc;
}
- else if (sshift < 0)
+ if (sshift == s_end)
{
- sshift += 8;
+ sshift = s_start;
sp--;
}
+ else
+ sshift += s_inc;
}
break;
}
@@ -2639,39 +2594,54 @@ png_do_read_interlace(png_structp png_ptr)
{
png_bytep sp = row + (png_size_t)((row_info->width - 1) >> 1);
png_bytep dp = row + (png_size_t)((final_width - 1) >> 1);
- int jinit = png_pass_inc[pass] >> 1;
- int sshift = (int)((1 - ((row_info->width + 1) & 0x01)) << 2);
- int s_inc = 4;
+ int sshift, dshift;
+ int s_start, s_end, s_inc;
png_uint_32 i;
- png_byte v;
- int j;
+ int jstop = png_pass_inc[pass];
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
if (transformations & PNG_PACKSWAP)
{
- sshift = 4 - sshift;
- s_inc = -s_inc;
+ sshift = (int)(((row_info->width + 1) & 0x01) << 2);
+ dshift = (int)(((final_width + 1) & 0x01) << 2);
+ s_start = 4;
+ s_end = 0;
+ s_inc = -4;
}
+ else
#endif
- for (i = row_info->width; i > 0; i--)
{
- v = (*sp >> sshift) & 0x0F;
- v |= v << 4;
+ sshift = (int)((1 - ((row_info->width + 1) & 0x01)) << 2);
+ dshift = (int)((1 - ((final_width + 1) & 0x01)) << 2);
+ s_start = 0;
+ s_end = 4;
+ s_inc = 4;
+ }
- for (j = jinit; j > 0; j--)
- *dp-- = v;
+ for (i = 0; i < row_info->width; i++)
+ {
+ png_byte v = (png_byte)((*sp >> sshift) & 0xf);
+ int j;
- sshift += s_inc;
- if (sshift >= 8)
+ for (j = 0; j < jstop; j++)
{
- sshift -= 8;
- sp--;
+ *dp &= (png_byte)((0xf0f >> (4 - dshift)) & 0xff);
+ *dp |= (png_byte)(v << dshift);
+ if (dshift == s_end)
+ {
+ dshift = s_start;
+ dp--;
+ }
+ else
+ dshift += s_inc;
}
- else if (sshift < 0)
+ if (sshift == s_end)
{
- sshift += 8;
+ sshift = s_start;
sp--;
}
+ else
+ sshift += s_inc;
}
break;
}
@@ -2679,112 +2649,23 @@ png_do_read_interlace(png_structp png_ptr)
{
png_size_t pixel_bytes = (row_info->pixel_depth >> 3);
png_bytep sp = row + (png_size_t)(row_info->width - 1) * pixel_bytes;
- png_bytep dp = row + (png_size_t)(final_width - 2) * pixel_bytes;
- int jinit = png_pass_inc[pass] >> 1;
+ png_bytep dp = row + (png_size_t)(final_width - 1) * pixel_bytes;
+
+ int jstop = png_pass_inc[pass];
png_uint_32 i;
- int j;
- switch (pixel_bytes)
+ for (i = 0; i < row_info->width; i++)
{
- case 1:
- for (i = row_info->width; i > 0; i--)
- {
- for (j = jinit; j > 0; j--)
- {
- *(dp + 0) = *(dp + 1) = *(sp + 0);
- dp -= 2;
- }
- sp -= 1;
- }
- break;
- case 2:
- for (i = row_info->width; i > 0; i--)
- {
- for (j = jinit; j > 0; j--)
- {
- *(dp + 0) = *(dp + 2) = *(sp + 0);
- *(dp + 1) = *(dp + 3) = *(sp + 1);
- dp -= 4;
- }
- sp -= 2;
- }
- break;
- case 3:
- for (i = row_info->width; i > 0; i--)
- {
- for (j = jinit; j > 0; j--)
- {
- *(dp + 0) = *(dp + 3) = *(sp + 0);
- *(dp + 1) = *(dp + 4) = *(sp + 1);
- *(dp + 2) = *(dp + 5) = *(sp + 2);
- dp -= 6;
- }
- sp -= 3;
- }
- break;
- case 4:
- for (i = row_info->width; i > 0; i--)
- {
- for (j = jinit; j > 0; j--)
- {
- *(dp + 0) = *(dp + 4) = *(sp + 0);
- *(dp + 1) = *(dp + 5) = *(sp + 1);
- *(dp + 2) = *(dp + 6) = *(sp + 2);
- *(dp + 3) = *(dp + 7) = *(sp + 3);
- dp -= 8;
- }
- sp -= 4;
- }
- break;
- case 6:
- for (i = row_info->width; i > 0; i--)
- {
- for (j = jinit; j > 0; j--)
- {
- *(dp + 0) = *(dp + 6) = *(sp + 0);
- *(dp + 1) = *(dp + 7) = *(sp + 1);
- *(dp + 2) = *(dp + 8) = *(sp + 2);
- *(dp + 3) = *(dp + 9) = *(sp + 3);
- *(dp + 4) = *(dp + 10) = *(sp + 4);
- *(dp + 5) = *(dp + 11) = *(sp + 5);
- dp -= 12;
- }
- sp -= 6;
- }
- break;
- case 8:
- for (i = row_info->width; i > 0; i--)
- {
- for (j = jinit; j > 0; j--)
- {
- *(dp + 0) = *(dp + 8) = *(sp + 0);
- *(dp + 1) = *(dp + 9) = *(sp + 1);
- *(dp + 2) = *(dp + 10) = *(sp + 2);
- *(dp + 3) = *(dp + 11) = *(sp + 3);
- *(dp + 4) = *(dp + 12) = *(sp + 4);
- *(dp + 5) = *(dp + 13) = *(sp + 5);
- *(dp + 6) = *(dp + 14) = *(sp + 6);
- *(dp + 7) = *(dp + 15) = *(sp + 7);
- dp -= 16;
- }
- sp -= 8;
- }
- break;
- default:
- /*for (i = row_info->width; i > 0; i--)
- *{
- * for (j = jinit; j > 0; j--)
- * {
- * png_size_t k;
- * for (k = 0; k < pixel_bytes; k++)
- * {
- * *(dp + pixel_bytes + k) = *(dp + k) = *(sp + k);
- * }
- * dp -= (2 * pixel_bytes);
- * }
- * sp -= pixel_bytes;
- *}
- */break;
+ png_byte v[8];
+ int j;
+
+ png_memcpy(v, sp, pixel_bytes);
+ for (j = 0; j < jstop; j++)
+ {
+ png_memcpy(dp, v, pixel_bytes);
+ dp -= pixel_bytes;
+ }
+ sp -= pixel_bytes;
}
break;
}
diff --git a/pngset.c b/pngset.c
index c5781f35a..bf94d06b1 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
/* pngset.c - storage of image information into info struct
*
- * libpng 1.2.8rc2 - November 26, 2004
+ * libpng 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngtest.c b/pngtest.c
index dff7f0c29..c9678876f 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
/* pngtest.c - a simple test program to test libpng
*
- * libpng 1.2.8rc2 - November 26, 2004
+ * libpng 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1551,4 +1551,4 @@ main(int argc, char *argv[])
}
/* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_8rc2 your_png_h_is_not_version_1_2_8rc2;
+typedef version_1_2_8rc3 your_png_h_is_not_version_1_2_8rc3;
diff --git a/pngtrans.c b/pngtrans.c
index b2c58c734..936a46d6a 100644
--- a/pngtrans.c
+++ b/pngtrans.c
@@ -1,7 +1,7 @@
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
*
- * libpng 1.2.8rc2 - November 26, 2004
+ * libpng 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngvcrd.c b/pngvcrd.c
index 95c860ede..253019e66 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -2,7 +2,7 @@
*
* For Intel x86 CPU and Microsoft Visual C++ compiler
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* Copyright (c) 1998, Intel Corporation
diff --git a/pngwio.c b/pngwio.c
index 155888e89..f66351389 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
/* pngwio.c - functions for data output
*
- * libpng 1.2.8rc2 - November 26, 2004
+ * libpng 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwrite.c b/pngwrite.c
index a01e7680f..a2eae2ac4 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
/* pngwrite.c - general routines to write a PNG file
*
- * libpng 1.2.8rc2 - November 26, 2004
+ * libpng 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwtran.c b/pngwtran.c
index a0602f5b7..38ec94d57 100644
--- a/pngwtran.c
+++ b/pngwtran.c
@@ -1,7 +1,7 @@
/* pngwtran.c - transforms the data in a row for PNG writers
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwutil.c b/pngwutil.c
index 351ab519a..a35484dc0 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
/* pngwutil.c - utilities to write a PNG file
*
- * libpng version 1.2.8rc2 - November 26, 2004
+ * libpng version 1.2.8rc3 - November 28, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in
index 3205b0717..9c0502fc8 100755
--- a/scripts/libpng-config-head.in
+++ b/scripts/libpng-config-head.in
@@ -8,7 +8,7 @@
# Modeled after libxml-config.
-version=1.2.8rc2
+version=1.2.8rc3
prefix=""
libdir=""
libs=""
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index 9381a388e..f92902155 100644
--- a/scripts/libpng.pc.in
+++ b/scripts/libpng.pc.in
@@ -6,6 +6,6 @@ includedir=${exec_prefix}/include
Name: libpng12
Description: Loads and saves PNG files
-Version: 1.2.8rc2
+Version: 1.2.8rc3
Libs: -L${libdir} -lpng12 -lz -lm
Cflags: -I${includedir}/libpng12
diff --git a/scripts/makefile.32sunu b/scripts/makefile.32sunu
index 4256cb4b5..f505f1683 100644
--- a/scripts/makefile.32sunu
+++ b/scripts/makefile.32sunu
@@ -33,7 +33,7 @@ RANLIB=echo
LIBNAME=libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include
diff --git a/scripts/makefile.64sunu b/scripts/makefile.64sunu
index 6933cbb4c..da84a3bbf 100644
--- a/scripts/makefile.64sunu
+++ b/scripts/makefile.64sunu
@@ -33,7 +33,7 @@ RANLIB=echo
LIBNAME=libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include
diff --git a/scripts/makefile.aix b/scripts/makefile.aix
index 57365dbac..f38a2b4c4 100644
--- a/scripts/makefile.aix
+++ b/scripts/makefile.aix
@@ -18,7 +18,7 @@ RM = rm -f
LIBNAME=libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
prefix=/usr/local
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index efa1f1682..89f6c276b 100644
--- a/scripts/makefile.beos
+++ b/scripts/makefile.beos
@@ -12,7 +12,7 @@ ZLIBLIB=/usr/local/lib
ZLIBINC=/usr/local/include
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
ALIGN=
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
index 83b6bf4de..f5bb4e7d7 100644
--- a/scripts/makefile.cygwin
+++ b/scripts/makefile.cygwin
@@ -79,7 +79,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \
LIBNAME = libpng12
PNGMAJ = 0
CYGDLL = 12
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
SHAREDLIB=cygpng$(CYGDLL).dll
diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin
index b0b3a2ae8..5d11d0c14 100644
--- a/scripts/makefile.darwin
+++ b/scripts/makefile.darwin
@@ -23,7 +23,7 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng12 -lz
RANLIB=ranlib
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index 31958ac27..34ff3efd1 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -32,7 +32,7 @@ ZLIBLIB=../zlib
ZLIBINC=../zlib
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.elf b/scripts/makefile.elf
new file mode 100644
index 000000000..c2df4356c
--- /dev/null
+++ b/scripts/makefile.elf
@@ -0,0 +1,249 @@
+# makefile for libpng.a and libpng12.so on Linux ELF with gcc
+# Copyright (C) 1998, 1999, 2002 Greg Roelofs and Glenn Randers-Pehrson
+# Copyright (C) 1996, 1997 Andreas Dilger
+# For conditions of distribution and use, see copyright notice in png.h
+
+LIBNAME = libpng12
+PNGMAJ = 0
+PNGMIN = 1.2.8rc3
+PNGVER = $(PNGMAJ).$(PNGMIN)
+
+CC=gcc
+
+# where "make install" puts libpng12.a, libpng12.so*,
+# libpng12/png.h and libpng12/pngconf.h
+# Prefix must be a full pathname.
+prefix=/usr/local
+
+# Where the zlib library and include files are located.
+#ZLIBLIB=/usr/local/lib
+#ZLIBINC=/usr/local/include
+ZLIBLIB=../zlib
+ZLIBINC=../zlib
+
+ALIGN=
+# for i386:
+#ALIGN=-malign-loops=2 -malign-functions=2
+
+WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
+ -Wmissing-declarations -Wtraditional -Wcast-align \
+ -Wstrict-prototypes -Wmissing-prototypes #-Wconversion
+
+# for pgcc version 2.95.1, -O3 is buggy; don't use it.
+
+CFLAGS=-I$(ZLIBINC) -Wall -O3 -funroll-loops \
+ $(ALIGN) # $(WARNMORE) -g -DPNG_DEBUG=5
+
+LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng12 -lz -lm
+LDFLAGS_A=-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) libpng.a -lz -lm
+
+RANLIB=ranlib
+#RANLIB=echo
+
+INCPATH=$(prefix)/include
+LIBPATH=$(prefix)/lib
+MANPATH=$(prefix)/man
+BINPATH=$(prefix)/bin
+
+# override DESTDIR= on the make install command line to easily support
+# installing into a temporary location. Example:
+#
+# make install DESTDIR=/tmp/build/libpng
+#
+# If you're going to install into a temporary location
+# via DESTDIR, $(DESTDIR)$(prefix) must already exist before
+# you execute make install.
+DESTDIR=
+
+DB=$(DESTDIR)$(BINPATH)
+DI=$(DESTDIR)$(INCPATH)
+DL=$(DESTDIR)$(LIBPATH)
+DM=$(DESTDIR)$(MANPATH)
+
+OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
+ pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
+ pngwtran.o pngmem.o pngerror.o pngpread.o
+
+OBJSDLL = $(OBJS:.o=.pic.o)
+
+.SUFFIXES: .c .o .pic.o
+
+.c.pic.o:
+ $(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
+
+all: libpng.a $(LIBNAME).so pngtest pngtest-static libpng.pc libpng-config
+
+libpng.a: $(OBJS)
+ ar rc $@ $(OBJS)
+ $(RANLIB) $@
+
+libpng.pc:
+ cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
+
+libpng.syms: png.h pngconf.h
+ $(CC) $(CFLAGS) -E -DPNG_BUILDSYMS png.h |\
+ awk -F '[\t [\]();]' 'BEGIN{print "{global:"}\
+ { for (i=1;i+2<=NF;++i)\
+ if ($$(i)=="PNG_FUNCTION_EXPORT" && $$(i+2)=="END")\
+ print $$(i+1) ";";\
+ for (i=1;i+1<=NF;++i)\
+ if ($$(i)=="PNG_DATA_EXPORT")\
+ print $$(i+1) ";";}\
+ END{print "local: *; };"}' >$@.new
+ rm -f $@
+ mv $@.new $@
+
+libpng-config:
+ ( cat scripts/libpng-config-head.in; \
+ echo prefix=\"$(prefix)\"; \
+ echo I_opts=\"-I$(INCPATH)/$(LIBNAME)\"; \
+ echo L_opts=\"-L$(LIBPATH)\"; \
+ echo R_opts=\"-Wl,-rpath,$(LIBPATH)\"; \
+ echo libs=\"-lpng12 -lz -lm\"; \
+ cat scripts/libpng-config-body.in ) > libpng-config
+ chmod +x libpng-config
+
+$(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
+ ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
+
+$(LIBNAME).so.$(PNGMAJ): $(LIBNAME).so.$(PNGVER)
+ ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ)
+
+$(LIBNAME).so.$(PNGVER): $(OBJSDLL) libpng.syms
+ $(CC) -shared -Wl,-soname,$(LIBNAME).so.$(PNGMAJ) \
+ -Wl,-version-script,libpng.syms \
+ -o $(LIBNAME).so.$(PNGVER) \
+ $(OBJSDLL)
+
+libpng.so.3.$(PNGMIN): $(OBJSDLL) libpng.syms
+ $(CC) -shared -Wl,-soname,libpng.so.3 \
+ -Wl,-version-script,libpng.syms \
+ -o libpng.so.3.$(PNGMIN) \
+ $(OBJSDLL)
+
+pngtest: pngtest.o $(LIBNAME).so
+ $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
+
+pngtest-static: pngtest.o libpng.a
+ $(CC) -o pngtest-static $(CFLAGS) pngtest.o $(LDFLAGS_A)
+
+test: pngtest pngtest-static
+ @echo ""
+ @echo " Running pngtest dynamically linked with $(LIBNAME).so:"
+ @echo ""
+ ./pngtest
+ @echo ""
+ @echo " Running pngtest statically linked with libpng.a:"
+ @echo ""
+ ./pngtest-static
+
+install-headers: png.h pngconf.h
+ -@if [ ! -d $(DI) ]; then mkdir $(DI); fi
+ -@if [ ! -d $(DI)/$(LIBNAME) ]; then mkdir $(DI)/$(LIBNAME); fi
+ cp png.h pngconf.h $(DI)/$(LIBNAME)
+ chmod 644 $(DI)/$(LIBNAME)/png.h $(DI)/$(LIBNAME)/pngconf.h
+ -@/bin/rm -f $(DI)/png.h $(DI)/pngconf.h
+ -@/bin/rm -f $(DI)/libpng
+ (cd $(DI); ln -sf $(LIBNAME) libpng; ln -sf $(LIBNAME)/* .)
+
+install-static: install-headers libpng.a
+ -@if [ ! -d $(DL) ]; then mkdir $(DL); fi
+ cp libpng.a $(DL)/$(LIBNAME).a
+ chmod 644 $(DL)/$(LIBNAME).a
+ -@/bin/rm -f $(DL)/libpng.a
+ (cd $(DL); ln -sf $(LIBNAME).a libpng.a)
+
+install-shared: install-headers $(LIBNAME).so.$(PNGVER) libpng.pc \
+ libpng.so.3.$(PNGMIN)
+ -@if [ ! -d $(DL) ]; then mkdir $(DL); fi
+ -@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGVER)* $(DL)/$(LIBNAME).so
+ -@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGMAJ)
+ -@/bin/rm -f $(DL)/libpng.so
+ -@/bin/rm -f $(DL)/libpng.so.3
+ -@/bin/rm -f $(DL)/libpng.so.3.$(PNGMIN)*
+ cp $(LIBNAME).so.$(PNGVER) $(DL)
+ cp libpng.so.3.$(PNGMIN) $(DL)
+ chmod 755 $(DL)/$(LIBNAME).so.$(PNGVER)
+ chmod 755 $(DL)/libpng.so.3.$(PNGMIN)
+ (cd $(DL); \
+ ln -sf libpng.so.3.$(PNGMIN) libpng.so.3; \
+ ln -sf libpng.so.3 libpng.so; \
+ ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
+ ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
+ -@if [ ! -d $(DL)/pkgconfig ]; then mkdir $(DL)/pkgconfig; fi
+ -@/bin/rm -f $(DL)/pkgconfig/$(LIBNAME).pc
+ -@/bin/rm -f $(DL)/pkgconfig/libpng.pc
+ cp libpng.pc $(DL)/pkgconfig/$(LIBNAME).pc
+ chmod 644 $(DL)/pkgconfig/$(LIBNAME).pc
+ (cd $(DL)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
+
+install-man: libpng.3 libpngpf.3 png.5
+ -@if [ ! -d $(DM) ]; then mkdir $(DM); fi
+ -@if [ ! -d $(DM)/man3 ]; then mkdir $(DM)/man3; fi
+ -@/bin/rm -f $(DM)/man3/libpng.3
+ -@/bin/rm -f $(DM)/man3/libpngpf.3
+ cp libpng.3 $(DM)/man3
+ cp libpngpf.3 $(DM)/man3
+ -@if [ ! -d $(DM)/man5 ]; then mkdir $(DM)/man5; fi
+ -@/bin/rm -f $(DM)/man5/png.5
+ cp png.5 $(DM)/man5
+
+install-config: libpng-config
+ -@if [ ! -d $(DB) ]; then mkdir $(DB); fi
+ -@/bin/rm -f $(DB)/libpng-config
+ -@/bin/rm -f $(DB)/$(LIBNAME)-config
+ cp libpng-config $(DB)/$(LIBNAME)-config
+ chmod 755 $(DB)/$(LIBNAME)-config
+ (cd $(DB); ln -sf $(LIBNAME)-config libpng-config)
+
+install: install-static install-shared install-man install-config
+
+# If you installed in $(DESTDIR), test-installed won't work until you
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng12-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) -W1, -rpath,$(DL) -Wl,-rpath,$(ZLIBLIB) \
+ -o pngtestd `$(BINPATH)/libpng12-config --ldflags`
+ ./pngtestd pngtest.png
+
+test-installed:
+ $(CC) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng12-config --cflags` pngtest.c \
+ -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) \
+ -o pngtesti `$(BINPATH)/libpng12-config --ldflags`
+ ./pngtesti pngtest.png
+
+clean:
+ /bin/rm -f *.o libpng.a libpng.syms pngtest pngout.png libpng-config \
+ $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)* pngtest-static pngtesti \
+ libpng.so.3.$(PNGMIN) \
+ libpng.pc
+
+DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
+writelock:
+ chmod a-w *.[ch35] $(DOCS) scripts/*
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+png.o png.pic.o: png.h pngconf.h
+pngerror.o pngerror.pic.o: png.h pngconf.h
+pngrio.o pngrio.pic.o: png.h pngconf.h
+pngwio.o pngwio.pic.o: png.h pngconf.h
+pngmem.o pngmem.pic.o: png.h pngconf.h
+pngset.o pngset.pic.o: png.h pngconf.h
+pngget.o pngget.pic.o: png.h pngconf.h
+pngread.o pngread.pic.o: png.h pngconf.h
+pngrtran.o pngrtran.pic.o: png.h pngconf.h
+pngrutil.o pngrutil.pic.o: png.h pngconf.h
+pngtrans.o pngtrans.pic.o: png.h pngconf.h
+pngwrite.o pngwrite.pic.o: png.h pngconf.h
+pngwtran.o pngwtran.pic.o: png.h pngconf.h
+pngwutil.o pngwutil.pic.o: png.h pngconf.h
+pngpread.o pngpread.pic.o: png.h pngconf.h
+
+pngtest.o: png.h pngconf.h
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index 731b670ef..86e937835 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -15,7 +15,7 @@
LIBNAME = libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
CC=gcc
diff --git a/scripts/makefile.hp64 b/scripts/makefile.hp64
index fdb599a8b..5e88ed6fb 100644
--- a/scripts/makefile.hp64
+++ b/scripts/makefile.hp64
@@ -27,7 +27,7 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
RANLIB=ranlib
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc
index e267eb7a7..df8c56cc8 100644
--- a/scripts/makefile.hpgcc
+++ b/scripts/makefile.hpgcc
@@ -41,7 +41,7 @@ RANLIB=ranlib
#RANLIB=echo
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux
index f792992cb..0801c6475 100644
--- a/scripts/makefile.hpux
+++ b/scripts/makefile.hpux
@@ -24,7 +24,7 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
RANLIB=ranlib
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index 3e62ae224..46a6c47e8 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -5,7 +5,7 @@
LIBNAME = libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
CC=gcc
diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd
index ac230fb42..032006241 100644
--- a/scripts/makefile.ne12bsd
+++ b/scripts/makefile.ne12bsd
@@ -13,7 +13,7 @@ INCSDIR=${LOCALBASE}/include/libpng12
LIB= png12
SHLIB_MAJOR= 0
-SHLIB_MINOR= 1.2.8rc2
+SHLIB_MINOR= 1.2.8rc3
SRCS= pnggccrd.c 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
diff --git a/scripts/makefile.netbsd b/scripts/makefile.netbsd
index 6115ea612..98b97477a 100644
--- a/scripts/makefile.netbsd
+++ b/scripts/makefile.netbsd
@@ -13,7 +13,7 @@ INCSDIR=${LOCALBASE}/include/libpng
LIB= png
SHLIB_MAJOR= 3
-SHLIB_MINOR= 1.2.8rc2
+SHLIB_MINOR= 1.2.8rc3
SRCS= pnggccrd.c 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
diff --git a/scripts/makefile.openbsd b/scripts/makefile.openbsd
index 967705098..60f2a51cc 100644
--- a/scripts/makefile.openbsd
+++ b/scripts/makefile.openbsd
@@ -7,7 +7,7 @@ LIBDIR= ${PREFIX}/lib
MANDIR= ${PREFIX}/man/cat
SHLIB_MAJOR= 0
-SHLIB_MINOR= 1.2.8rc2
+SHLIB_MINOR= 1.2.8rc3
LIB= png
SRCS= png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \
diff --git a/scripts/makefile.sco b/scripts/makefile.sco
index 3d61e8fe2..4aa341be9 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -24,7 +24,7 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng12 -lz -lm
RANLIB=echo
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index 49a47e49f..10c41aee7 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -18,7 +18,7 @@ ZLIBINC=../zlib
LIBNAME=libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
CC=gcc
diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi
index 8317ec0d3..bf1abeaab 100644
--- a/scripts/makefile.sgi
+++ b/scripts/makefile.sgi
@@ -5,7 +5,7 @@
LIBNAME=libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
# Where make install puts libpng.a, libpng12.so, and libpng12/png.h
diff --git a/scripts/makefile.so9 b/scripts/makefile.so9
index a4a2ef468..c74a9b06e 100644
--- a/scripts/makefile.so9
+++ b/scripts/makefile.so9
@@ -34,7 +34,7 @@ LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng12 -lz -lm
RANLIB=echo
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index ecbcf995e..eee14cfe6 100644
--- a/scripts/makefile.solaris
+++ b/scripts/makefile.solaris
@@ -30,7 +30,7 @@ LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng12 -lz -lm
RANLIB=echo
PNGMAJ = 0
-PNGMIN = 1.2.8rc2
+PNGMIN = 1.2.8rc3
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index 59ae31461..ca1766078 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -2,7 +2,7 @@
; PNG.LIB module definition file for OS/2
;----------------------------------------
-; Version 1.2.8rc2
+; Version 1.2.8rc3
LIBRARY PNG
DESCRIPTION "PNG image compression library for OS/2"
diff --git a/scripts/pngw32.def b/scripts/pngw32.def
index 1c3ddfd53..7acf13ce9 100644
--- a/scripts/pngw32.def
+++ b/scripts/pngw32.def
@@ -6,7 +6,7 @@ LIBRARY
DESCRIPTION "PNG image compression library for Windows"
EXPORTS
-;Version 1.2.8rc2
+;Version 1.2.8rc3
png_build_grayscale_palette @1
png_check_sig @2
png_chunk_error @3