summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2004-11-24 07:50:16 -0600
committerGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2009-04-06 16:08:11 -0500
commit5dd2b8e208855642b692695653c181b2fe7f919d (patch)
treea4ead305df6abe5c052a5e9918981952d4281888
parent4093607bc9063cef4b199468ac07a25672dc8d0a (diff)
downloadlibpng-5dd2b8e208855642b692695653c181b2fe7f919d.tar.gz
Imported from libpng-1.2.8rc1.tarv1.2.8rc1
-rw-r--r--ANNOUNCE14
-rw-r--r--CHANGES12
-rw-r--r--INSTALL14
-rw-r--r--KNOWNBUG2
-rw-r--r--LICENSE6
-rw-r--r--README28
-rw-r--r--Y2KINFO4
-rwxr-xr-xconfigure4
-rw-r--r--libpng.332
-rw-r--r--libpng.txt10
-rw-r--r--libpngpf.38
-rw-r--r--png.52
-rw-r--r--png.c6
-rw-r--r--png.h51
-rw-r--r--pngconf.h127
-rw-r--r--pngerror.c2
-rw-r--r--pnggccrd.c4
-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.c4
-rw-r--r--pngrutil.c615
-rw-r--r--pngset.c2
-rw-r--r--pngtest.c4
-rw-r--r--pngtrans.c2
-rw-r--r--pngvcrd.c4
-rw-r--r--pngwio.c2
-rw-r--r--pngwrite.c2
-rw-r--r--pngwtran.c2
-rw-r--r--pngwutil.c2
-rw-r--r--projects/visualc6/README.txt16
-rw-r--r--projects/visualc6/libpng.dsp36
-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.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
-rw-r--r--scripts/pngw32.rc90
59 files changed, 653 insertions, 516 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index 4781b57c5..3d0e6ef5f 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
-Libpng 1.2.8beta5 - November 20, 2004
+Libpng 1.2.8rc1 - November 24, 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.
@@ -30,10 +30,16 @@ version 1.2.8beta5 [November 20, 2004]
compatibility.
Revised handling of SPECIALBUILD, PRIVATEBUILD,
PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
+version 1.2.8rc1 [November 24, 2004]
+ 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.
+ Revised scripts/pngw32.rc
+ Despammed mailing addresses by masking "@" with "at".
Send comments/corrections/commendations to
-png-implement@ccrc.wustl.edu (subscription required; write to
-majordomo@ccrc.wustl.edu with "subscribe png-implement" in the message)
-or to glennrp@users.sourceforge.net
+png-implement at ccrc.wustl.edu (subscription required; write to
+majordomo at ccrc.wustl.edu with "subscribe png-implement" in the message)
+or to glennrp at users.sourceforge.net
Glenn R-P
diff --git a/CHANGES b/CHANGES
index 513c1c8bd..4f79c8b39 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1388,10 +1388,16 @@ version 1.2.8beta5 [November 20, 2004]
compatibility.
Revised handling of SPECIALBUILD, PRIVATEBUILD,
PNG_LIBPNG_BUILD_SPECIAL_STRING and PNG_LIBPNG_BUILD_PRIVATE_STRING.
+version 1.2.8rc1 [November 24, 2004]
+ 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.
+ Revised scripts/pngw32.rc
+ Despammed mailing addresses by masking "@" with "at".
Send comments/corrections/commendations to
-png-implement@ccrc.wustl.edu (subscription required; write to
-majordomo@ccrc.wustl.edu with "subscribe png-implement" in the message)
-or to glennrp@users.sourceforge.net
+png-implement at ccrc.wustl.edu (subscription required; write to
+majordomo at ccrc.wustl.edu with "subscribe png-implement" in the message)
+or to glennrp at users.sourceforge.net
Glenn R-P
diff --git a/INSTALL b/INSTALL
index 88c2cfd75..a2112ec72 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
-Installing libpng version 1.2.8beta5 - November 20, 2004
+Installing libpng version 1.2.8rc1 - November 24, 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.8beta5" or "lpng109" and "zlib-1.2.1"
+might be called "libpng-1.2.8rc1" 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:
@@ -67,9 +67,9 @@ include
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.linux => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.8beta5)
+ (gcc, creates libpng12.so.0.1.2.8rc1)
makefile.gcmmx => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.8beta5,
+ (gcc, creates libpng12.so.0.1.2.8rc1,
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 +92,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.8beta5)
+ creates libpng12.so.0.1.2.8rc1)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile (gcc,
- creates libpng12.so.0.1.2.8beta5)
+ creates libpng12.so.0.1.2.8rc1)
makefile.so9 => Solaris 9 makefile (gcc,
- creates libpng12.so.0.1.2.8beta5)
+ creates libpng12.so.0.1.2.8rc1)
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 de9e907fb..5032e3b98 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -1,5 +1,5 @@
-Known bugs in libpng version 1.2.8beta5
+Known bugs in libpng version 1.2.8rc1
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 521fe6647..f705ad1ce 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 20, 2004, is
+libpng version 1.2.6, November 24, 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
@@ -105,5 +105,5 @@ Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a
certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
-glennrp@users.sourceforge.net
-November 20, 2004
+glennrp at users.sourceforge.net
+November 24, 2004
diff --git a/README b/README
index 42afe18b7..4f283e0f6 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.2.8beta5 - November 20, 2004 (shared library 12.0)
+README for libpng version 1.2.8rc1 - November 24, 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.
@@ -103,17 +103,17 @@ fix. Please mention "libpng" somewhere in the subject line. Thanks.
This release was created and will be supported by myself (of course
based in a large way on Guy's and Andreas' earlier work), and the PNG group.
-glennrp@users.sourceforge.net
-png-implement@ccrc.wustl.edu (subscription required; write to
-majordomo@ccrc.wustl.edu with "subscribe png-implement" in the message).
+glennrp at users.sourceforge.net
+png-implement at ccrc.wustl.edu (subscription required; write to
+majordomo at ccrc.wustl.edu with "subscribe png-implement" in the message).
You can't reach Guy, the original libpng author, at the addresses
given in previous versions of this document. He and Andreas will read mail
addressed to the png-implement list, however.
Please do not send general questions about PNG. Send them to
-the (png-list@ccrc.wustl.edu, subscription required, write to
-majordomo@ccrc.wustl.edu with "subscribe png-list" in your message).
+the (png-list at ccrc.wustl.edu, subscription required, write to
+majordomo at ccrc.wustl.edu with "subscribe png-list" in your message).
On the other hand,
please do not send libpng questions to that address, send them to me
or to the png-implement list. I'll
@@ -189,9 +189,9 @@ Files in this distribution:
descrip.mms => VMS makefile for MMS or MMK
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.linux => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.8beta5)
+ (gcc, creates libpng12.so.0.1.2.8rc1)
makefile.gcmmx => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.8beta5,
+ (gcc, creates libpng12.so.0.1.2.8rc1,
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 +213,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.8beta5)
+ (gcc, creates libpng12.so.0.1.2.8rc1)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile
- (gcc, creates libpng12.so.0.1.2.8beta5)
+ (gcc, creates libpng12.so.0.1.2.8rc1)
makefile.so9 => Solaris 9 makefile
- (gcc, creates libpng12.so.0.1.2.8beta5)
+ (gcc, creates libpng12.so.0.1.2.8rc1)
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
@@ -249,12 +249,12 @@ Files in this distribution:
Good luck, and happy coding.
-Glenn Randers-Pehrson (current maintainer)
- Internet: glennrp@users.sourceforge.net
+ Internet: glennrp at users.sourceforge.net
-Andreas Eric Dilger (former maintainer, 1996-1997)
- Internet: adilger@enel.ucalgary.ca
+ Internet: adilger at enel.ucalgary.ca
Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/
-Guy Eric Schalnat (original author and former maintainer, 1995-1996)
(formerly of Group 42, Inc)
- Internet: gschal@infinet.com
+ Internet: gschal at infinet.com
diff --git a/Y2KINFO b/Y2KINFO
index 8b361d705..bab818989 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
Y2K compliance in libpng:
=========================
- November 20, 2004
+ November 24, 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.8beta5 are Y2K compliant. It is my belief that earlier
+ upward through 1.2.8rc1 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 5ef881b3a..974de42ce 100755
--- a/configure
+++ b/configure
@@ -1,13 +1,13 @@
#!/bin/sh
echo "
There is no \"configure\" script in this distribution of
- libpng-1.2.8beta5.
+ libpng-1.2.8rc1.
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.8beta5-config.tar.gz
+ libpng-1.2.8rc1-config.tar.gz
"
diff --git a/libpng.3 b/libpng.3
index 045bac3d3..f346379cc 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "November 20, 2004"
+.TH LIBPNG 3 "November 24, 2004"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8beta5
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8rc1
.SH SYNOPSIS
\fI\fB
@@ -781,9 +781,9 @@ 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.8beta5 - November 20, 2004
+ libpng version 1.2.8rc1 - November 24, 2004
Updated and distributed by Glenn Randers-Pehrson
- <glennrp@users.sourceforge.net>
+ <glennrp at users.sourceforge.net>
Copyright (c) 1998-2004 Glenn Randers-Pehrson
For conditions of distribution and use, see copyright
notice in png.h.
@@ -1704,7 +1704,7 @@ the normalized graylevel is computed:
The default values approximate those recommended in the Charles
Poynton's Color FAQ, <http://www.inforamp.net/~poynton/>
-Copyright (c) 1998-01-04 Charles Poynton poynton@inforamp.net
+Copyright (c) 1998-01-04 Charles Poynton <poynton at inforamp.net>
Y = 0.212671 * R + 0.715160 * G + 0.072169 * B
@@ -3685,13 +3685,13 @@ application:
.SH IX. Y2K Compliance in libpng
-November 20, 2004
+November 24, 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.8beta5 are Y2K compliant. It is my belief that earlier
+upward through 1.2.8rc1 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,6 +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 10 10018 12.so.0.1.0.18rc1
+ 1.2.8rc1 13 10208 12.so.0.1.2.8rc1
Henceforth the source version will match the shared-library minor
and patch numbers; the shared-library major version number will be
@@ -3887,7 +3889,7 @@ and this library, the specification takes precedence.
.SH AUTHORS
This man page: Glenn Randers-Pehrson
-<glennrp@users.sourceforge.net>
+<glennrp at users.sourceforge.net>
The contributing authors would like to thank all those who helped
with testing, bug fixes, and patience. This wouldn't have been
@@ -3895,14 +3897,14 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation.
-Libpng version 1.2.8beta5 - November 20, 2004:
+Libpng version 1.2.8rc1 - November 24, 2004:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
-Currently maintained by Glenn Randers-Pehrson (glennrp@users.sourceforge.net).
+Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
Supported by the PNG development group
.br
-png-implement@ccrc.wustl.edu (subscription required; write to
-majordomo@ccrc.wustl.edu with "subscribe png-implement" in the message).
+png-implement at ccrc.wustl.edu (subscription required; write to
+majordomo at ccrc.wustl.edu with "subscribe png-implement" in the message).
.SH COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
@@ -3913,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 20, 2004, is
+libpng version 1.2.6, November 24, 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
@@ -4011,8 +4013,8 @@ Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a
certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
-glennrp@users.sourceforge.net
-November 20, 2004
+glennrp at users.sourceforge.net
+November 24, 2004
.\" end of man page
diff --git a/libpng.txt b/libpng.txt
index 2c49a71ac..dbf5c080a 100644
--- a/libpng.txt
+++ b/libpng.txt
@@ -1,8 +1,8 @@
libpng.txt - A description on how to use and modify libpng
- libpng version 1.2.8beta5 - November 20, 2004
+ libpng version 1.2.8rc1 - November 24, 2004
Updated and distributed by Glenn Randers-Pehrson
- <glennrp@users.sourceforge.net>
+ <glennrp at users.sourceforge.net>
Copyright (c) 1998-2004 Glenn Randers-Pehrson
For conditions of distribution and use, see copyright
notice in png.h.
@@ -923,7 +923,7 @@ the normalized graylevel is computed:
The default values approximate those recommended in the Charles
Poynton's Color FAQ, <http://www.inforamp.net/~poynton/>
-Copyright (c) 1998-01-04 Charles Poynton poynton@inforamp.net
+Copyright (c) 1998-01-04 Charles Poynton <poynton at inforamp.net>
Y = 0.212671 * R + 0.715160 * G + 0.072169 * B
@@ -2904,13 +2904,13 @@ application:
IX. Y2K Compliance in libpng
-November 20, 2004
+November 24, 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.8beta5 are Y2K compliant. It is my belief that earlier
+upward through 1.2.8rc1 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 7a4b247aa..25e40c614 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "November 20, 2004"
+.TH LIBPNGPF 3 "November 24, 2004"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8beta5
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8rc1
(private functions)
.SH SYNOPSIS
\fB\fB#include <png.h>\fP\fP
@@ -827,7 +827,7 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8beta5
\fI\fB
-\fB\fBint png_set_text_2 (png_structp \fP\fI\fP\fIpng_ptr\fP\fB\fP\fB, png_infop \fP\fI\fP\fIinfo_ptr\fP\fB\fP\fB, png_textp \fP\fI\fP\fItext_ptr\fP\fB\fP\fB, int \fI\fInum_text)\fP\fB\fP\fB);\fP\fP
+\fB\fBint png_set_text_2 (png_structp \fP\fI\fP\fIpng_ptr\fP\fB\fP\fB, png_infop \fP\fI\fP\fIinfo_ptr\fP\fB\fP\fB, png_textp \fP\fI\fP\fItext_ptr\fP\fB\fP\fB, int \fI\fInum_text\fP\fB\fP\fB);\fP\fP
\fI\fB
@@ -939,7 +939,7 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.2.8beta5
\fI\fB
-\fB\fBvoid png_write_iTXt (png_structp \fP\fI\fP\fIpng_ptr\fP\fB\fP\fB, int \fP\fI\fP\fIcompression\fP\fB\fP\fB, png_charp \fP\fI\fP\fIkey\fP\fB\fP\fB, png_charp \fP\fI\fP\fIlang\fP\fB\fP\fB, png_charp \fP\fI\fP\fItranslated_key\fP\fB\fP\fB, png_charp \fI\fItext)\fP\fB\fP\fB);\fP\fP
+\fB\fBvoid png_write_iTXt (png_structp \fP\fI\fP\fIpng_ptr\fP\fB\fP\fB, int \fP\fI\fP\fIcompression\fP\fB\fP\fB, png_charp \fP\fI\fP\fIkey\fP\fB\fP\fB, png_charp \fP\fI\fP\fIlang\fP\fB\fP\fB, png_charp \fP\fI\fP\fItranslated_key\fP\fB\fP\fB, png_charp \fI\fItext\fP\fB\fP\fB);\fP\fP
\fI\fB
diff --git a/png.5 b/png.5
index b357936c7..2eb7aedb4 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "November 20, 2004"
+.TH PNG 5 "November 24, 2004"
.SH NAME
png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION
diff --git a/png.c b/png.c
index 2c32b3330..70a350d2b 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
/* png.c - location for general purpose libpng functions
*
- * libpng version 1.2.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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_8beta5 Your_png_h_is_not_version_1_2_8beta5;
+typedef version_1_2_8rc1 Your_png_h_is_not_version_1_2_8rc1;
/* 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.8beta5 - November 20, 2004\n\
+ return ((png_charp) "\n libpng version 1.2.8rc1 - November 24, 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 452a1a44c..28afc58a2 100644
--- a/png.h
+++ b/png.h
@@ -1,6 +1,6 @@
/* png.h - header file for PNG reference library
*
- * libpng version 1.2.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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.8beta5 - November 20, 2004: Glenn
+ * libpng versions 0.97, January 1998, through 1.2.8rc1 - November 24, 2004: Glenn
* See also "Contributing Authors", below.
*
* Note about libpng version numbers:
@@ -107,6 +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 10 10018 12.so.0.1.0.18rc1
+ * 1.2.8rc1 13 10208 12.so.0.1.2.8rc1
*
* Henceforth the source version will match the shared-library major
* and minor numbers; the shared-library major version number will be
@@ -136,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.8beta5, November 20, 2004, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.2.8rc1, November 24, 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:
@@ -248,13 +250,13 @@
* Y2K compliance in libpng:
* =========================
*
- * November 20, 2004
+ * November 24, 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.8beta5 are Y2K compliant. It is my belief that earlier
+ * upward through 1.2.8rc1 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
@@ -310,9 +312,9 @@
*/
/* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.2.8beta5"
+#define PNG_LIBPNG_VER_STRING "1.2.8rc1"
#define PNG_HEADER_VERSION_STRING \
- " libpng version 1.2.8beta5 - November 20, 2004 (header)\n"
+ " libpng version 1.2.8rc1 - November 24, 2004 (header)\n"
#define PNG_LIBPNG_VER_SONUM 0
#define PNG_LIBPNG_VER_DLLNUM 13
@@ -324,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 5
+#define PNG_LIBPNG_VER_BUILD 1
/* Release Status */
#define PNG_LIBPNG_BUILD_ALPHA 1
@@ -341,6 +343,8 @@
#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with
PNG_LIBPNG_BUILD_PRIVATE */
+#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_RC
+
/* Careful here. At one time, Guy wanted to use 082, but that would be octal.
* We must not include leading zeros.
* Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
@@ -349,13 +353,40 @@
#define PNG_LIBPNG_VER 10208 /* 1.2.8 */
#ifndef PNG_VERSION_INFO_ONLY
-
/* include the compression library's header */
#include "zlib.h"
+#endif
/* include all user configurable info, including optional assembler routines */
#include "pngconf.h"
+/*
+ * Added at libpng-1.2.8 */
+/* Ref MSDN: Private as priority over Special
+ * VS_FF_PRIVATEBUILD File *was not* built using standard release
+ * procedures. If this value is given, the StringFileInfo block must
+ * contain a PrivateBuild string.
+ *
+ * VS_FF_SPECIALBUILD File *was* built by the original company using
+ * standard release procedures but is a variation of the standard
+ * file of the same version number. If this value is given, the
+ * StringFileInfo block must contain a SpecialBuild string.
+ */
+
+#if defined(PNG_USER_PRIVATEBUILD)
+# define PNG_LIBPNG_BUILD_TYPE PNG_LIBPNG_BUILD_BASE_TYPE |
+PNG_LIBPNG_BUILD_PRIVATE
+#else
+# if defined(PNG_LIBPNG_SPECIALBUILD)
+# define PNG_LIBPNG_BUILD_TYPE PNG_LIBPNG_BUILD_BASE_TYPE |
+ PNG_LIBPNG_BUILD_SPECIAL
+# else
+# define PNG_LIBPNG_BUILD_TYPE PNG_LIBPNG_BUILD_BASE_TYPE
+# endif
+#endif
+
+#ifndef PNG_VERSION_INFO_ONLY
+
/* Inhibit C++ name-mangling for libpng functions but not for system calls. */
#ifdef __cplusplus
extern "C" {
@@ -1323,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_8beta5;
+typedef png_structp version_1_2_8rc1;
typedef png_struct FAR * FAR * png_structpp;
diff --git a/pngconf.h b/pngconf.h
index 9b91d9b09..1236b228d 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
/* pngconf.h - machine configurable file for libpng
*
- * libpng version 1.2.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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)
@@ -17,13 +17,53 @@
#ifndef PNGCONF_H
#define PNGCONF_H
+#define PNG_1_2_X
+
+/*
+ * PNG_USER_CONFIG has to be defined on the compiler command line. This
+ * includes the resource compiler for Windows DLL configurations.
+ */
#ifdef PNG_USER_CONFIG
#include "pngusr.h"
#endif
-#define PNG_1_2_X
-/* Added at libpng-1.2.8 */
-#define PNG_LIBPNG_BUILD_TYPE PNG_LIBPNG_BUILD_BETA
+/*
+ * Added at libpng-1.2.8
+ *
+ * If you create a private DLL you need to define in "pngusr.h" the followings:
+ * #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of
+ * the DLL was built>
+ * e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons."
+ * #define PNG_USER_DLLFNAME_POSTFIX <two-letter postfix that serve to
+ * distinguish your DLL from those of the official release. These
+ * correspond to the trailing letters that come after the version
+ * number and must match your private DLL name>
+ * e.g. // private DLL "libpng13gx.dll"
+ * #define PNG_USER_DLLFNAME_POSTFIX "gx"
+ *
+ * The following macros are also at your disposal if you want to complete the
+ * DLL VERSIONINFO structure.
+ * - PNG_USER_VERSIONINFO_COMMENTS
+ * - PNG_USER_VERSIONINFO_COMPANYNAME
+ * - PNG_USER_VERSIONINFO_LEGALTRADEMARKS
+ */
+
+#ifdef __STDC__
+#ifdef SPECIALBUILD
+# pragma message("PNG_LIBPNG_SPECIALBUILD (and deprecated SPECIALBUILD)\
+ are now LIBPNG reserved macros. Use PNG_USER_PRIVATEBUILD instead.")
+#endif
+
+#ifdef PRIVATEBUILD
+# pragma message("PRIVATEBUILD is deprecated. Use\
+ PNG_USER_PRIVATEBUILD instead.")
+# define PNG_USER_PRIVATEBUILD PRIVATEBUILD
+#endif
+#endif /* __STDC__ */
+
+#ifndef PNG_VERSION_INFO_ONLY
+
+/* End of material added to libpng-1.2.8 */
/* This is the size of the compression buffer, and thus the size of
* an IDAT chunk. Make this whatever size you feel is best for your
@@ -1125,6 +1165,9 @@ typedef double FAR * FAR * png_doublepp;
/* Pointers to pointers to pointers; i.e., pointer to array */
typedef char FAR * FAR * FAR * png_charppp;
+#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
+/* SPC - Is this stuff deprecated? */
+/* It'll be removed as of libpng-1.3.0 - GR-P */
/* libpng typedefs for types in zlib. If zlib changes
* or another compression library is used, then change these.
* Eliminates need to change all the source files.
@@ -1132,6 +1175,7 @@ typedef char FAR * FAR * FAR * png_charppp;
typedef charf * png_zcharp;
typedef charf * FAR * png_zcharpp;
typedef z_stream FAR * png_zstreamp;
+#endif /* (PNG_1_0_X) || defined(PNG_1_2_X) */
/*
* Define PNG_BUILD_DLL if the module being built is a Windows
@@ -1376,78 +1420,7 @@ typedef z_stream FAR * png_zstreamp;
#endif /* PNG_INTERNAL */
#endif /* PNG_READ_SUPPORTED */
-/*
- * Added at libpng-1.2.8
- *
- * Can define PNG_LIBPNG_BUILD_TYPE using only the following:
- * PNG_LIBPNG_BUILD_PRIVATE (including DLLFNAME_POSTFIX and
- * PNG_LIBPNG_BUILD_PRIVATE_STRING)
- *
- * Ref MSDN
- * VS_FF_PRIVATEBUILD File was ****not built using standard release****
- * procedures. If this value is given, the StringFileInfo block must
- * contain a PrivateBuild string.
- *
- * VS_FF_SPECIALBUILD File was built by the original company *****using
- * standard release procedures***** but is a variation of the standard
- * file of the same version number. If this value is given, the
- * StringFileInfo block must contain a SpecialBuild string.
- */
-
-#ifndef PNG_LIBPNG_BUILD_TYPE
-# define PNG_LIBPNG_BUILD_TYPE PNG_LIBPNG_BUILD_BASE_TYPE
-#else
-# define PNG_LIBPNG_BUILD_TYPE_SAVE (PNG_LIBPNG_BUILD_TYPE & \
- PNG_LIBPNG_BUILD_PRIVATE)
-# undef PNG_LIBPNG_BUILD_TYPE
-# define PNG_LIBPNG_BUILD_TYPE PNG_LIBPNG_BUILD_BASE_TYPE | \
- PNG_LIBPNG_BUILD_TYPE_SAVE
-# undef PNG_LIBPNG_BUILD_TYPE_SAVE
-#endif
-
-#undef PNG_LIBPNG_BUILD_BASE_TYPE
-
-/* Private as priority over Special */
-#if ((PNG_LIBPNG_BUILD_TYPE & (PNG_LIBPNG_BUILD_PRIVATE | \
- PNG_LIBPNG_BUILD_SPECIAL)) == (PNG_LIBPNG_BUILD_PRIVATE | \
- PNG_LIBPNG_BUILD_SPECIAL))
-# define PNG_LIBPNG_BUILD_TYPE_SAVE PNG_LIBPNG_BUILD_TYPE
-# define PNG_LIBPNG_BUILD_TYPE PNG_LIBPNG_BUILD_TYPE_SAVE & \
- ~PNG_LIBPNG_BUILD_SPECIAL
-# undef PNG_LIBPNG_BUILD_TYPE_SAVE
-#endif
-
-/* Verify if PNG_LIBPNG_BUILD_PRIVATE_STRING is defined if PNG_LIBPNG_BUILD_PRIVATE is set */
-#if (PNG_LIBPNG_BUILD_TYPE & PNG_LIBPNG_BUILD_PRIVATE)
- /*
- * PRIVATEBUILD is deprecated. Use PNG_LIBPNG_BUILD_PRIVATE_STRING instead.
- */
-# if defined(PRIVATEBUILD) && !defined(PNG_LIBPNG_BUILD_PRIVATE_STRING)
-# define PNG_LIBPNG_BUILD_PRIVATE_STRING PRIVATEBUILD
-# else
-# if !defined(PNG_LIBPNG_BUILD_PRIVATE_STRING)
-# error "PNG_LIBPNG_BUILD_PRIVATE_STRING must be defined if \
- PNG_LIBPNG_BUILD_PRIVATE set"
-# endif
-# endif
-/* Verify if PNG_LIBPNG_BUILD_SPECIAL_STRING is defined \
- if PNG_LIBPNG_BUILD_SPECIAL is set */
-#else
-# if (PNG_LIBPNG_BUILD_TYPE & PNG_LIBPNG_BUILD_SPECIAL)
- /*
- * SPECIALBUILD is deprecated. Use PNG_LIBPNG_BUILD_SPECIAL_STRING instead.
- */
-# if defined(SPECIALBUILD) && !defined(PNG_LIBPNG_BUILD_SPECIAL_STRING)
-# define PNG_LIBPNG_BUILD_SPECIAL_STRING SPECIALBUILD
-# else
-# if !defined(PNG_LIBPNG_BUILD_SPECIAL_STRING)
-# error "PNG_LIBPNG_BUILD_SPECIAL_STRING must be defined \
- if PNG_LIBPNG_BUILD_SPECIAL is set"
-# endif
-# endif
-# endif
-#endif
-/* End of material added to libpng-1.2.8 */
+/* Added at libpng-1.2.8 */
+#endif /* PNG_VERSION_INFO_ONLY */
#endif /* PNGCONF_H */
-
diff --git a/pngerror.c b/pngerror.c
index dcea107fd..f70b7fe02 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.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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 c20a8701f..c78fc71dd 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.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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
@@ -4998,7 +4998,7 @@ png_read_filter_row_mmx_up(png_row_infop row_info, png_bytep row,
"jz up_end \n\t"
"cmpl $8, %%edx \n\t" // test for less than 8 bytes
- "jb up_lt8 \n\t" // [added by lcreeve@netins.net]
+ "jb up_lt8 \n\t" // [added by lcreeve at netins.net]
"addl %%edx, %%ecx \n\t"
"andl $0x00000007, %%edx \n\t" // calc bytes over mult of 8
diff --git a/pngget.c b/pngget.c
index 41d36c515..c6ced8b01 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
/* pngget.c - retrieval of values from info struct
*
- * libpng 1.2.8beta5 - November 20, 2004
+ * libpng 1.2.8rc1 - November 24, 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 3209f9e10..377e57605 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
/* pngmem.c - stub functions for memory allocation
*
- * libpng version 1.2.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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 3438c4941..85c5ba58d 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
/* pngpread.c - read a png file in push mode
*
- * libpng version 1.2.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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 cb0094b41..3d8d71fc1 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
/* pngread.c - read a PNG file
*
- * libpng 1.2.8beta5 - November 20, 2004
+ * libpng 1.2.8rc1 - November 24, 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)
@@ -805,7 +805,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.8beta5
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.8rc1
*/
void PNGAPI
@@ -855,7 +855,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.8beta5
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.8rc1
*/
void PNGAPI
png_read_image(png_structp png_ptr, png_bytepp image)
diff --git a/pngrio.c b/pngrio.c
index 2b2580943..a14070fab 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
/* pngrio.c - functions for data input
*
- * libpng 1.2.8beta5 - November 20, 2004
+ * libpng 1.2.8rc1 - November 24, 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 37e82a7fb..064ffc94f 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.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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)
@@ -2104,7 +2104,7 @@ png_do_gray_to_rgb(png_row_infop row_info, png_bytep row)
/* reduce RGB files to grayscale, with or without alpha
* using the equation given in Poynton's ColorFAQ at
* <http://www.inforamp.net/~poynton/>
- * Copyright (c) 1998-01-04 Charles Poynton poynton@inforamp.net
+ * Copyright (c) 1998-01-04 Charles Poynton poynton at inforamp.net
*
* Y = 0.212671 * R + 0.715160 * G + 0.072169 * B
*
diff --git a/pngrutil.c b/pngrutil.c
index 3ddb645f5..e7403054b 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,6 +1,6 @@
/* pngrutil.c - utilities to read a PNG file
*
- * libpng version 1.2.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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,59 +2260,46 @@ 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_uint_32 row_width = png_ptr->width;
+ png_byte pixel_mask;
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
if (png_ptr->transformations & PNG_PACKSWAP)
- {
- s_start = 0;
- s_end = 7;
- s_inc = 1;
- }
- else
+ mask = (bitrev[mask & 0x0F] << 4) | bitrev[(mask >> 4) & 0x0F];
#endif
+ pixel_mask = (png_byte)mask;
+
+ for (i = png_ptr->width; i >= 8; i -= 8)
{
- s_start = 7;
- s_end = 0;
- s_inc = -1;
+ *dp = (*sp & pixel_mask) | (*dp & ~pixel_mask);
+ sp++;
+ dp++;
}
-
- shift = s_start;
-
- for (i = 0; i < row_width; i++)
+ if (i > 0)
{
- 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;
+ pixel_mask &= lastbyte_mask[i];
+ *dp = (*sp & pixel_mask) | (*dp & ~pixel_mask);
}
break;
}
@@ -2320,51 +2307,40 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
{
png_bytep sp = png_ptr->row_buf + 1;
png_bytep dp = row;
- int s_start, s_end, s_inc;
- int m = 0x80;
- int shift;
png_uint_32 i;
- png_uint_32 row_width = png_ptr->width;
- int value;
+ png_byte pixel_mask[2];
+ int m = 0x80;
+ int j;
#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++)
{
- s_start = 0;
- s_end = 6;
- s_inc = 2;
+ pixel_mask[j] = 0;
+ for (i = 4; i > 0; i--)
+ {
+ pixel_mask[j] <<= 2;
+ if (m & mask)
+ pixel_mask[j] |= 0x03;
+ m >>= 1;
+ }
}
- else
-#endif
+ j = 0;
+ for (i = png_ptr->width; i >= 4; i -= 4)
{
- s_start = 6;
- s_end = 0;
- s_inc = -2;
+ if (pixel_mask[j] != 0)
+ *dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
+ sp++;
+ dp++;
+ j ^= 1;
}
-
- shift = s_start;
-
- for (i = 0; i < row_width; i++)
+ if (i > 0)
{
- 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;
+ pixel_mask[j] &= lastbyte_mask[i * 2];
+ if (pixel_mask[j] != 0)
+ *dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
}
break;
}
@@ -2372,50 +2348,41 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
{
png_bytep sp = png_ptr->row_buf + 1;
png_bytep dp = row;
- int s_start, s_end, s_inc;
- int m = 0x80;
- int shift;
png_uint_32 i;
- png_uint_32 row_width = png_ptr->width;
- int value;
+ png_byte pixel_mask[4];
+ int m = 0x80;
+ int j;
#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++)
{
- s_start = 0;
- s_end = 4;
- s_inc = 4;
+ pixel_mask[j] = 0;
+ for (i = 2; i > 0; i--)
+ {
+ pixel_mask[j] <<= 4;
+ if (m & mask)
+ pixel_mask[j] |= 0x0F;
+ m >>= 1;
+ }
}
- else
-#endif
+ j = 0;
+ for (i = png_ptr->width; i >= 2; i -= 2)
{
- s_start = 4;
- s_end = 0;
- s_inc = -4;
+ if (pixel_mask[j] != 0)
+ *dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
+ sp++;
+ dp++;
+ j += 1;
+ j &= 3;
}
- shift = s_start;
-
- for (i = 0; i < row_width; i++)
+ if (i > 0)
{
- 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;
+ pixel_mask[j] &= lastbyte_mask[4];
+ if (pixel_mask[j] != 0)
+ *dp = (*sp & pixel_mask[j]) | (*dp & ~pixel_mask[j]);
}
break;
}
@@ -2425,24 +2392,123 @@ 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;
- png_uint_32 row_width = png_ptr->width;
- png_byte m = 0x80;
-
+ int m = 0x80;
- for (i = 0; i < row_width; i++)
+ switch (pixel_bytes)
{
- if (m & mask)
- {
- png_memcpy(dp, sp, pixel_bytes);
- }
-
- sp += pixel_bytes;
- dp += pixel_bytes;
-
- if (m == 1)
- m = 0x80;
- else
- m >>= 1;
+ 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;
}
break;
}
@@ -2471,122 +2537,101 @@ 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)
+ if (row != NULL && row_info != NULL &&
+ pass < 6)
{
- png_uint_32 final_width;
-
- final_width = row_info->width * png_pass_inc[pass];
+ png_uint_32 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 sshift, dshift;
- int s_start, s_end, s_inc;
- int jstop = png_pass_inc[pass];
- png_byte v;
+ 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);
png_uint_32 i;
- int j;
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
if (transformations & PNG_PACKSWAP)
{
- sshift = (int)((row_info->width + 7) & 0x07);
- dshift = (int)((final_width + 7) & 0x07);
- s_start = 7;
- s_end = 0;
- s_inc = -1;
+ sshift = 7 - sshift;
+ s_inc = -s_inc;
}
- else
#endif
- {
- 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 &= (0x10 - nbits);
- for (i = 0; i < row_info->width; i++)
+ for (i = (row_info->width + nbits - 1) / nbits;
+ i > 0; i--)
{
- v = (png_byte)((*sp >> sshift) & 0x01);
- for (j = 0; j < jstop; j++)
+ *dp-- = pix[(*sp >> sshift) & smask];
+
+ sshift += s_inc;
+ if (sshift >= 8)
{
- *dp &= (png_byte)((0x7f7f >> (7 - dshift)) & 0xff);
- *dp |= (png_byte)(v << dshift);
- if (dshift == s_end)
- {
- dshift = s_start;
- dp--;
- }
- else
- dshift += s_inc;
+ sshift -= 8;
+ sp--;
}
- if (sshift == s_end)
+ else if (sshift < 0)
{
- sshift = s_start;
+ sshift += 8;
sp--;
}
- else
- sshift += s_inc;
}
break;
}
case 2:
{
- 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];
+ 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_uint_32 i;
+ png_byte v;
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
if (transformations & PNG_PACKSWAP)
{
- sshift = (int)(((row_info->width + 3) & 0x03) << 1);
- dshift = (int)(((final_width + 3) & 0x03) << 1);
- s_start = 6;
- s_end = 0;
- s_inc = -2;
+ sshift = 6 - sshift;
+ s_inc = -s_inc;
}
- else
#endif
- {
- 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;
- }
+ sshift &= (0x0E - (2 * is2));
- for (i = 0; i < row_info->width; i++)
+ for (i = (row_info->width + is2) >> is2;
+ i > 0; i--)
{
- png_byte v;
- int j;
+ v = pix[(*sp >> sshift) & smask];
+ *dp-- = v;
+ if (is8)
+ *dp-- = v;
- v = (png_byte)((*sp >> sshift) & 0x03);
- for (j = 0; j < jstop; j++)
+ sshift += s_inc;
+ if (sshift >= 8)
{
- *dp &= (png_byte)((0x3f3f >> (6 - dshift)) & 0xff);
- *dp |= (png_byte)(v << dshift);
- if (dshift == s_end)
- {
- dshift = s_start;
- dp--;
- }
- else
- dshift += s_inc;
+ sshift -= 8;
+ sp--;
}
- if (sshift == s_end)
+ else if (sshift < 0)
{
- sshift = s_start;
+ sshift += 8;
sp--;
}
- else
- sshift += s_inc;
}
break;
}
@@ -2594,54 +2639,39 @@ 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 sshift, dshift;
- int s_start, s_end, s_inc;
+ int jinit = png_pass_inc[pass] >> 1;
+ int sshift = (int)((1 - ((row_info->width + 1) & 0x01)) << 2);
+ int s_inc = 4;
png_uint_32 i;
- int jstop = png_pass_inc[pass];
+ png_byte v;
+ int j;
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
if (transformations & PNG_PACKSWAP)
{
- sshift = (int)(((row_info->width + 1) & 0x01) << 2);
- dshift = (int)(((final_width + 1) & 0x01) << 2);
- s_start = 4;
- s_end = 0;
- s_inc = -4;
+ sshift = 4 - sshift;
+ s_inc = -s_inc;
}
- else
#endif
+ for (i = row_info->width; i > 0; i--)
{
- 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;
- }
+ v = (*sp >> sshift) & 0x0F;
+ v |= v << 4;
- for (i = 0; i < row_info->width; i++)
- {
- png_byte v = (png_byte)((*sp >> sshift) & 0xf);
- int j;
+ for (j = jinit; j > 0; j--)
+ *dp-- = v;
- for (j = 0; j < jstop; j++)
+ sshift += s_inc;
+ if (sshift >= 8)
{
- *dp &= (png_byte)((0xf0f >> (4 - dshift)) & 0xff);
- *dp |= (png_byte)(v << dshift);
- if (dshift == s_end)
- {
- dshift = s_start;
- dp--;
- }
- else
- dshift += s_inc;
+ sshift -= 8;
+ sp--;
}
- if (sshift == s_end)
+ else if (sshift < 0)
{
- sshift = s_start;
+ sshift += 8;
sp--;
}
- else
- sshift += s_inc;
}
break;
}
@@ -2649,23 +2679,112 @@ 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 - 1) * pixel_bytes;
-
- int jstop = png_pass_inc[pass];
+ png_bytep dp = row + (png_size_t)(final_width - 2) * pixel_bytes;
+ int jinit = png_pass_inc[pass] >> 1;
png_uint_32 i;
+ int j;
- for (i = 0; i < row_info->width; i++)
+ switch (pixel_bytes)
{
- 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;
+ 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;
}
break;
}
diff --git a/pngset.c b/pngset.c
index 5bc600d02..a4ebd17a1 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
/* pngset.c - storage of image information into info struct
*
- * libpng 1.2.8beta5 - November 20, 2004
+ * libpng 1.2.8rc1 - November 24, 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 c6a60dd7d..06c76915b 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
/* pngtest.c - a simple test program to test libpng
*
- * libpng 1.2.8beta5 - November 20, 2004
+ * libpng 1.2.8rc1 - November 24, 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_8beta5 your_png_h_is_not_version_1_2_8beta5;
+typedef version_1_2_8rc1 your_png_h_is_not_version_1_2_8rc1;
diff --git a/pngtrans.c b/pngtrans.c
index a82e29ac6..b513fe4cc 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.8beta5 - November 20, 2004
+ * libpng 1.2.8rc1 - November 24, 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 24317d2f9..a7d168457 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -2,7 +2,7 @@
*
* For Intel x86 CPU and Microsoft Visual C++ compiler
*
- * libpng version 1.2.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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
@@ -3632,7 +3632,7 @@ duploop:
jz dupend
- // 2 lines added by lcreeve@netins.net
+ // 2 lines added by lcreeve at netins.net
// (mail 11 Jul 98 in png-implement list)
cmp edx, 8 //test for less than 8 bytes
jb duplt8
diff --git a/pngwio.c b/pngwio.c
index 2c6302553..42fb36995 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
/* pngwio.c - functions for data output
*
- * libpng 1.2.8beta5 - November 20, 2004
+ * libpng 1.2.8rc1 - November 24, 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 4b7c6669c..d5dceaec1 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
/* pngwrite.c - general routines to write a PNG file
*
- * libpng 1.2.8beta5 - November 20, 2004
+ * libpng 1.2.8rc1 - November 24, 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 89ab60ba7..028e53dd0 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.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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 c634f77d3..f8e1ab136 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
/* pngwutil.c - utilities to write a PNG file
*
- * libpng version 1.2.8beta5 - November 20, 2004
+ * libpng version 1.2.8rc1 - November 24, 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/projects/visualc6/README.txt b/projects/visualc6/README.txt
index ccd7b98cb..d34980d57 100644
--- a/projects/visualc6/README.txt
+++ b/projects/visualc6/README.txt
@@ -46,19 +46,9 @@ Notes:
If you change anything in the source files, or select different compiler
settings, please change the DLL name to something different than any of
-the above names.
-
-Also, make sure that DLLFNAME_POSTFIX and (PNG_LIBPNG_BUILD_PRIVATE_STRING
-or PNG_LIBPNG_BUILD_SPECIAL_STRING) are defined and that PNG_LIBPNG_BUILD_TYPE
-has either the PNG_LIBPNG_BUILD_SPECIAL or PNG_LIBPNG_BUILD_PRIVATE flag
-set when compiling the resource file. DLLFNAME_POSTFIX contains
-the trailing letters that come after the version number.
-PNG_LIBPNG_BUILD_PRIVATE_STRING and/or PNG_LIBPNG_BUILD_SPECIAL_STRING store
-information describing the type of change made
-in the VERSIONINFO structure. Please refer to MSDN for more information
-on the used macros and the nature of their content. For an example on
-how to define these macros, look at the resource compiler settings for
-the "Win32 DLL VB" configuration.
+the above names. Also, make sure that in your "pngusr.h" you define
+PNG_USER_PRIVATEBUILD and PNG_USER_DLLFNAME_POSTFIX according to the
+instructions provided in "pngconf.h".
All DLLs built by this project use the Microsoft dynamic C runtime library
MSVCRT.DLL (MSVCRTD.DLL for debug versions). If you distribute any of the
diff --git a/projects/visualc6/libpng.dsp b/projects/visualc6/libpng.dsp
index 73a3766f7..1992c2b98 100644
--- a/projects/visualc6/libpng.dsp
+++ b/projects/visualc6/libpng.dsp
@@ -8,16 +8,16 @@
CFG=libpng - Win32 DLL Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
-!MESSAGE
+!MESSAGE
!MESSAGE NMAKE /f "libpng.mak".
-!MESSAGE
+!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
+!MESSAGE
!MESSAGE NMAKE /f "libpng.mak" CFG="libpng - Win32 DLL Release"
-!MESSAGE
+!MESSAGE
!MESSAGE Possible choices for configuration are:
-!MESSAGE
+!MESSAGE
!MESSAGE "libpng - Win32 DLL Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "libpng - Win32 DLL Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "libpng - Win32 DLL ASM Release" (based on "Win32 (x86) Dynamic-Link Library")
@@ -27,7 +27,7 @@ CFG=libpng - Win32 DLL Release
!MESSAGE "libpng - Win32 LIB Debug" (based on "Win32 (x86) Static Library")
!MESSAGE "libpng - Win32 LIB ASM Release" (based on "Win32 (x86) Static Library")
!MESSAGE "libpng - Win32 LIB ASM Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
+!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
@@ -112,14 +112,14 @@ LINK32=link.exe
CPP=cl.exe
# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c
# SUBTRACT BASE CPP /YX /Yc /Yu
-# ADD CPP /nologo /MD /W3 /O2 /I "..\.." /I "..\..\..\zlib" /D "WIN32" /D "NDEBUG" /D "PNG_USE_PNGVCRD" /D "PNG_BUILD_DLL" /D "ZLIB_DLL" /FD /c
+# ADD CPP /nologo /MD /W3 /O2 /I "..\.." /I "..\..\..\zlib" /D "WIN32" /D "NDEBUG" /D "PNG_USE_PNGVCRD" /D "PNG_BUILD_DLL" /D "ZLIB_DLL" /D "PNG_LIBPNG_SPECIALBUILD" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
MTL=midl.exe
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
RSC=rc.exe
# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /i "..\.." /d "NDEBUG" /d "PNG_USE_PNGVCRD"
+# ADD RSC /l 0x409 /i "..\.." /d "NDEBUG" /d PNG_LIBPNG_SPECIALBUILD=""""Use MMX instructions""""
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
@@ -143,14 +143,14 @@ LINK32=link.exe
CPP=cl.exe
# ADD BASE CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c
# SUBTRACT BASE CPP /YX /Yc /Yu
-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "..\.." /I "..\..\..\zlib" /D "WIN32" /D "_DEBUG" /D "DEBUG" /D PNG_DEBUG=1 /D "PNG_USE_PNGVCRD" /D "PNG_BUILD_DLL" /D "ZLIB_DLL" /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "..\.." /I "..\..\..\zlib" /D "WIN32" /D "_DEBUG" /D "DEBUG" /D PNG_DEBUG=1 /D "PNG_USE_PNGVCRD" /D "PNG_BUILD_DLL" /D "ZLIB_DLL" /D "PNG_LIBPNG_SPECIALBUILD" /FD /GZ /c
# SUBTRACT CPP /YX /Yc /Yu
MTL=midl.exe
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
RSC=rc.exe
# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /i "..\.." /d "_DEBUG" /d PNG_DEBUG=1 /d "PNG_USE_PNGVCRD"
+# ADD RSC /l 0x409 /i "..\.." /d "_DEBUG" /d PNG_DEBUG=1 /d PNG_LIBPNG_SPECIALBUILD=""""Use MMX instructions""""
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
@@ -174,14 +174,14 @@ LINK32=link.exe
CPP=cl.exe
# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c
# SUBTRACT BASE CPP /YX /Yc /Yu
-# ADD CPP /nologo /MD /W3 /O2 /I "..\.." /I "..\..\..\zlib" /D "WIN32" /D "NDEBUG" /D "PNG_BUILD_DLL" /D "ZLIB_DLL" /D PNGAPI=__stdcall /D "PNG_NO_MODULEDEF" /FD /c
+# ADD CPP /nologo /MD /W3 /O2 /I "..\.." /I "..\..\..\zlib" /D "WIN32" /D "NDEBUG" /D "PNG_BUILD_DLL" /D "ZLIB_DLL" /D PNGAPI=__stdcall /D "PNG_NO_MODULEDEF" /D "PNG_LIBPNG_SPECIALBUILD" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
MTL=midl.exe
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
RSC=rc.exe
# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /i "..\.." /d "NDEBUG" /dDLLFNAME_POSTFIX=""""VB"""" /dSPECIALBUILD=""""__stdcall calling convention used for exported functions""""
+# ADD RSC /l 0x409 /i "..\.." /d "NDEBUG" /dPNG_LIBPNG_DLLFNAME_POSTFIX=""""VB"""" /dPNG_LIBPNG_SPECIALBUILD=""""__stdcall calling convention used for exported functions""""
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
@@ -264,7 +264,7 @@ LIB32=link.exe -lib
CPP=cl.exe
# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c
# SUBTRACT BASE CPP /YX /Yc /Yu
-# ADD CPP /nologo /MD /W3 /O2 /I "..\.." /I "..\..\..\zlib" /D "WIN32" /D "NDEBUG" /D "PNG_USE_PNGVCRD" /FD /c
+# ADD CPP /nologo /MD /W3 /O2 /I "..\.." /I "..\..\..\zlib" /D "WIN32" /D "NDEBUG" /D "PNG_USE_PNGVCRD" /D "PNG_LIBPNG_SPECIALBUILD" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
RSC=rc.exe
# ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -291,7 +291,7 @@ LIB32=link.exe -lib
CPP=cl.exe
# ADD BASE CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c
# SUBTRACT BASE CPP /YX /Yc /Yu
-# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "..\.." /I "..\..\..\zlib" /D "WIN32" /D "_DEBUG" /D "DEBUG" /D PNG_DEBUG=1 /D "PNG_USE_PNGVCRD" /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /I "..\.." /I "..\..\..\zlib" /D "WIN32" /D "_DEBUG" /D "DEBUG" /D PNG_DEBUG=1 /D "PNG_USE_PNGVCRD" /D "PNG_LIBPNG_SPECIALBUILD" /FD /GZ /c
# SUBTRACT CPP /YX /Yc /Yu
RSC=rc.exe
# ADD BASE RSC /l 0x409 /d "_DEBUG"
@@ -303,7 +303,7 @@ LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"Win32_LIB_ASM_Debug\libpngd.lib"
-!ENDIF
+!ENDIF
# Begin Target
@@ -395,7 +395,7 @@ SOURCE=..\..\pngvcrd.c
!ELSEIF "$(CFG)" == "libpng - Win32 LIB ASM Debug"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -430,7 +430,7 @@ SOURCE=..\..\scripts\pngw32.def
# PROP Exclude_From_Build 1
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -495,7 +495,7 @@ SOURCE=..\..\scripts\pngw32.rc
# PROP Exclude_From_Build 1
-!ENDIF
+!ENDIF
# End Source File
# End Group
diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in
index c9866e263..cc66754d6 100755
--- a/scripts/libpng-config-head.in
+++ b/scripts/libpng-config-head.in
@@ -8,7 +8,7 @@
# Modeled after libxml-config.
-version=1.2.8beta5
+version=1.2.8rc1
prefix=""
libdir=""
libs=""
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index 4f4b513cd..900bdeb86 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.8beta5
+Version: 1.2.8rc1
Libs: -L${libdir} -lpng12 -lz -lm
Cflags: -I${includedir}/libpng12
diff --git a/scripts/makefile.32sunu b/scripts/makefile.32sunu
index 3b9239b38..af0a8dc36 100644
--- a/scripts/makefile.32sunu
+++ b/scripts/makefile.32sunu
@@ -33,7 +33,7 @@ RANLIB=echo
LIBNAME=libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include
diff --git a/scripts/makefile.64sunu b/scripts/makefile.64sunu
index 44e24c052..4a706eef0 100644
--- a/scripts/makefile.64sunu
+++ b/scripts/makefile.64sunu
@@ -33,7 +33,7 @@ RANLIB=echo
LIBNAME=libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include
diff --git a/scripts/makefile.aix b/scripts/makefile.aix
index 943639098..8ae6491de 100644
--- a/scripts/makefile.aix
+++ b/scripts/makefile.aix
@@ -18,7 +18,7 @@ RM = rm -f
LIBNAME=libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
prefix=/usr/local
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index c7a361fb2..8a7dac3a7 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.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
ALIGN=
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
index 39da78cbb..cfc7a51ae 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.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
SHAREDLIB=cygpng$(CYGDLL).dll
diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin
index c35ec4c97..c20e637a4 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.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index f689cf4f0..021898991 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -32,7 +32,7 @@ ZLIBLIB=../zlib
ZLIBINC=../zlib
PNGMAJ = 0
-PNGMIN = 1.2.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index c61e681a2..c49a7c780 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -15,7 +15,7 @@
LIBNAME = libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
CC=gcc
diff --git a/scripts/makefile.hp64 b/scripts/makefile.hp64
index 8d553be88..153200507 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.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc
index d78a7e2a3..ead25b2bc 100644
--- a/scripts/makefile.hpgcc
+++ b/scripts/makefile.hpgcc
@@ -41,7 +41,7 @@ RANLIB=ranlib
#RANLIB=echo
PNGMAJ = 0
-PNGMIN = 1.2.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux
index d82fdf1f3..3e7e49ee2 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.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index 8bfbd7d43..d119d89a6 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -5,7 +5,7 @@
LIBNAME = libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
CC=gcc
diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd
index bde126d3d..2b594f475 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.8beta5
+SHLIB_MINOR= 1.2.8rc1
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 6b909b7d6..fc6ba1f68 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.8beta5
+SHLIB_MINOR= 1.2.8rc1
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 70ed87326..b4cd10246 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.8beta5
+SHLIB_MINOR= 1.2.8rc1
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 5454195a8..933139c70 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.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index a26e723ae..38b4b3645 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -18,7 +18,7 @@ ZLIBINC=../zlib
LIBNAME=libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
CC=gcc
diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi
index 486415c75..9c2667df6 100644
--- a/scripts/makefile.sgi
+++ b/scripts/makefile.sgi
@@ -5,7 +5,7 @@
LIBNAME=libpng12
PNGMAJ = 0
-PNGMIN = 1.2.8beta5
+PNGMIN = 1.2.8rc1
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 5812bd545..0f72be720 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.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index d8dbf2a89..8f7769288 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.8beta5
+PNGMIN = 1.2.8rc1
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index 1713ff14d..38c6ab356 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -2,7 +2,7 @@
; PNG.LIB module definition file for OS/2
;----------------------------------------
-; Version 1.2.8beta5
+; Version 1.2.8rc1
LIBRARY PNG
DESCRIPTION "PNG image compression library for OS/2"
diff --git a/scripts/pngw32.def b/scripts/pngw32.def
index 73bb00639..32bc09eae 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.8beta5
+;Version 1.2.8rc1
png_build_grayscale_palette @1
png_check_sig @2
png_chunk_error @3
diff --git a/scripts/pngw32.rc b/scripts/pngw32.rc
index 0e2f3f397..0fab587dd 100644
--- a/scripts/pngw32.rc
+++ b/scripts/pngw32.rc
@@ -8,64 +8,68 @@
#define PNG_LIBPNG_DLLFNAME "LIBPNG"
-#if defined(DLLFNAME_POSTFIX) && !defined(PNG_LIBPNG_BUILD_PRIVATE_STRING) && \
- !defined(PNG_LIBPNG_BUILD_SPECIAL_STRING)
-# error PNG_LIBPNG_BUILD_PRIVATE_STRING or PNG_LIBPNG_BUILD_SPECIAL_STRING \
-must be defined as a string describing the type of change brought to the \
-standard library
-#endif /* defined(DLLFNAME_POSTFIX)... */
+/* Support deprecated PRIVATEBUILD macro */
+#if defined(PRIVATEBUILD) && !defined(PNG_USER_PRIVATEBUILD)
+# define PNG_USER_PRIVATEBUILD PRIVATEBUILD
+#endif
+
+#if defined(PNG_USER_DLLFNAME_POSTFIX) && !defined(PNG_USER_PRIVATEBUILD)
+# error "PNG_USER_PRIVATEBUILD must be defined as a string describing the\
+ custom changes made to the library."
+#endif
+
+/* Prioritize PNG_USER_x over PNG_LIBPNG_x */
+#ifdef PNG_USER_DLLFNAME_POSTFIX
+# undef PNG_LIBPNG_DLLFNAME_POSTFIX
+# define PNG_LIBPNG_DLLFNAME_POSTFIX PNG_USER_DLLFNAME_POSTFIX
+#endif
-#if defined(PNG_USE_PNGVCRD)
-# if !(PNG_LIBPNG_BUILD_TYPE & PNG_LIBPNG_BUILD_SPECIAL)
-# define PNG_LIBPNG_BUILD_TYPE_SAVE PNG_LIBPNG_BUILD_TYPE
-# undef PNG_LIBPNG_BUILD_TYPE
-# define PNG_LIBPNG_BUILD_TYPE \
- PNG_LIBPNG_BUILD_TYPE_SAVE|PNG_LIBPNG_BUILD_SPECIAL
-# define PNG_LIBPNG_BUILD_SPECIAL_STRING "Use MMX instructions"
-# endif /* PNG_LIBPNG_BUILD_SPECIAL */
+#ifdef PNG_USER_VERSIONINFO_COMMENTS
+# undef PNG_LIBPNG_VERSIONINFO_COMMENTS
+# define PNG_LIBPNG_VERSIONINFO_COMMENTS PNG_USER_VERSIONINFO_COMMENTS
#endif
#if defined(PNG_DEBUG) && (PNG_DEBUG > 0)
# define VS_DEBUG VS_FF_DEBUG
-# ifndef DLLFNAME_POSTFIX
-# define DLLFNAME_POSTFIX "D"
-# endif /* DLLFNAME_POSTFIX */
-# ifndef COMMENTS
-# define COMMENTS "PNG_DEBUG=" QUOTE(PNG_DEBUG)
-# endif /* COMMENTS */
+# ifndef PNG_LIBPNG_DLLFNAME_POSTFIX
+# define PNG_LIBPNG_DLLFNAME_POSTFIX "D"
+# endif /* PNG_LIBPNG_DLLFNAME_POSTFIX */
+# ifndef PNG_LIBPNG_VERSIONINFO_COMMENTS
+# define PNG_LIBPNG_VERSIONINFO_COMMENTS "PNG_DEBUG=" QUOTE(PNG_DEBUG)
+# endif /* PNG_LIBPNG_VERSIONINFO_COMMENTS */
#else
# define VS_DEBUG 0
-# ifndef DLLFNAME_POSTFIX
-# define DLLFNAME_POSTFIX
-# endif /* DLLFNAME_POSTFIX */
+# ifndef PNG_LIBPNG_DLLFNAME_POSTFIX
+# define PNG_LIBPNG_DLLFNAME_POSTFIX
+# endif /* PNG_LIBPNG_DLLFNAME_POSTFIX */
#endif /* defined(DEBUG)... */
-#if (PNG_LIBPNG_BUILD_PRIVATE & PNG_LIBPNG_BUILD_TYPE)
+#ifdef PNG_USER_PRIVATEBUILD
# define VS_PRIVATEBUILD VS_FF_PRIVATEBUILD
#else
# define VS_PRIVATEBUILD 0
-#endif /* PNG_LIBPNG_BUILD_PRIVATE */
+#endif /* PNG_USER_PRIVATEBUILD */
-#if (PNG_LIBPNG_BUILD_SPECIAL & PNG_LIBPNG_BUILD_TYPE)
+#ifdef PNG_LIBPNG_SPECIALBUILD
# define VS_SPECIALBUILD VS_FF_SPECIALBUILD
#else
# define VS_SPECIALBUILD 0
#endif /* PNG_LIBPNG_BUILD_SPECIAL */
-#if ((PNG_LIBPNG_BUILD_TYPE & PNG_LIBPNG_RELEASE_STATUS_MASK) != \
+#if ((PNG_LIBPNG_BUILD_BASE_TYPE & PNG_LIBPNG_RELEASE_STATUS_MASK) !=\
PNG_LIBPNG_BUILD_STABLE)
# define VS_PRERELEASE VS_FF_PRERELEASE
# define VS_PATCHED 0
#else
# define VS_PRERELEASE 0
-# if (PNG_LIBPNG_BUILD_TYPE & PNG_LIBPNG_BUILD_PATCHED)
+# if (PNG_LIBPNG_BUILD_BASE_TYPE & PNG_LIBPNG_BUILD_PATCHED)
# define VS_PATCHED VS_FF_PATCHED
# else
# define VS_PATCHED 0
# endif
#endif
-VS_VERSION_INFO VERSIONINFO
+VS_VERSION_INFO VERSIONINFO
FILEVERSION PNG_LIBPNG_VER_MAJOR, PNG_LIBPNG_VER_MINOR, PNG_LIBPNG_VER_RELEASE, PNG_LIBPNG_VER_BUILD
PRODUCTVERSION PNG_LIBPNG_VER_MAJOR, PNG_LIBPNG_VER_MINOR, PNG_LIBPNG_VER_RELEASE, PNG_LIBPNG_VER_BUILD
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
@@ -77,22 +81,28 @@ BEGIN
BLOCK "StringFileInfo"
BEGIN BLOCK "040904E4" /* Language type = U.S English(0x0409) and Character Set = Windows, Multilingual(0x04E4) */
BEGIN
-#ifdef COMMENTS
- VALUE "Comments", COMMENTS "\000"
-#endif /* COMMENTS */
+#ifdef PNG_LIBPNG_VERSIONINFO_COMMENTS
+ VALUE "Comments", PNG_LIBPNG_VERSIONINFO_COMMENTS "\000"
+#endif /* PNG_LIBPNG_VERSIONINFO_COMMENTS */
+#ifdef PNG_USER_VERSIONINFO_COMPANYNAME
+ VALUE "CompanyName", PNG_USER_VERSIONINFO_COMPANYNAME "\000"
+#endif /* PNG_USER_VERSIONINFO_COMPANYNAME */
VALUE "FileDescription", "PNG image compression library\000"
VALUE "FileVersion", PNG_LIBPNG_VER_STRING "\000"
- VALUE "InternalName", PNG_LIBPNG_DLLFNAME QUOTE(PNG_LIBPNG_VER_DLLNUM) DLLFNAME_POSTFIX " (Windows 32 bit)\000"
+ VALUE "InternalName", PNG_LIBPNG_DLLFNAME QUOTE(PNG_LIBPNG_VER_DLLNUM) PNG_LIBPNG_DLLFNAME_POSTFIX " (Windows 32 bit)\000"
VALUE "LegalCopyright", "\251 1998-2004 Glenn Randers-Pehrson et al.\000"
- VALUE "OriginalFilename", PNG_LIBPNG_DLLFNAME QUOTE(PNG_LIBPNG_VER_DLLNUM) DLLFNAME_POSTFIX ".DLL\000"
-#ifdef PRIVATEBUILD
- VALUE "PrivateBuild", PRIVATEBUILD
-#endif /* PRIVATEBUILD */
+#ifdef PNG_USER_VERSIONINFO_LEGALTRADEMARKS
+ VALUE "LegalTrademarks", PNG_USER_VERSIONINFO_LEGALTRADEMARKS "\000"
+#endif /* PNG_USER_VERSIONINFO_LEGALTRADEMARKS */
+ VALUE "OriginalFilename", PNG_LIBPNG_DLLFNAME QUOTE(PNG_LIBPNG_VER_DLLNUM) PNG_LIBPNG_DLLFNAME_POSTFIX ".DLL\000"
+#ifdef PNG_LIBPNG_PRIVATEBUILD
+ VALUE "PrivateBuild", PNG_LIBPNG_PRIVATEBUILD "\000"
+#endif /* PNG_LIBPNG_PRIVATEBUILD */
VALUE "ProductName", "LibPNG\000"
VALUE "ProductVersion", "1\000"
-#ifdef SPECIALBUILD
- VALUE "SpecialBuild", SPECIALBUILD
-#endif /* SPECIALBUILD */
+#ifdef PNG_LIBPNG_SPECIALBUILD
+ VALUE "SpecialBuild", PNG_LIBPNG_SPECIALBUILD "\000"
+#endif /* PNG_LIBPNG_SPECIALBUILD */
END
END
BLOCK "VarFileInfo"