[libpng17] Removed cc -E workround, corrected png_get_palette_max API. Tested
on SUN OS cc 5.9, which demonstrates the tokenization problem previously
avoided by using /lib/cpp. Since all .dfn output is now protected
in double quotes unless it is to be macro substituted the fix should work
everywhere.
diff --git a/ANNOUNCE b/ANNOUNCE
index 9acf68a..916925b 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -128,6 +128,11 @@
Ported libpng 1.5 options.awk/dfn file handling to 1.7, fixed one bug.
Rebuilt Makefile.in, configure, etc., with autoconf-2.69 and automake-1.13.
Minor fixes to assembler changes, verified with a dummy .S file
+ Removed cc -E workround, corrected png_get_palette_max API. Tested on
+ SUN OS cc 5.9, which demonstrates the tokenization problem previously
+ avoided by using /lib/cpp. Since all .dfn output is now protected
+ in double quotes unless it is to be macro substituted the fix should work
+ everywhere.
===========================================================================
NOTICE November 17, 2012:
diff --git a/CHANGES b/CHANGES
index 12304c2..ddfeb68 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4414,6 +4414,11 @@
Ported libpng 1.5 options.awk/dfn file handling to 1.7, fixed one bug.
Rebuilt Makefile.in, configure, etc., with autoconf-2.69 and automake-1.13.
Minor fixes to assembler changes, verified with a dummy .S file
+ Removed cc -E workround, corrected png_get_palette_max API. Tested on
+ SUN OS cc 5.9, which demonstrates the tokenization problem previously
+ avoided by using /lib/cpp. Since all .dfn output is now protected
+ in double quotes unless it is to be macro substituted the fix should work
+ everywhere.
===========================================================================
NOTICE November 17, 2012:
diff --git a/configure.ac b/configure.ac
index c3f21c0..108d392 100644
--- a/configure.ac
+++ b/configure.ac
@@ -53,8 +53,7 @@
AM_PROG_AS
LT_PATH_LD
AC_PROG_CPP
-AC_CHECK_TOOL(SED, sed, :)
-AC_CHECK_TOOL(AWK, awk, :)
+AC_PROG_AWK
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
@@ -64,30 +63,23 @@
LT_INIT([win32-dll])
LT_PREREQ([2.4.2])
-# On Solaris 10 and 12 CPP gets set to cc -E, however this still
-# does some input parsing. We need strict ANSI-C style tokenization,
-# check this:
-AC_REQUIRE_CPP
-AC_MSG_CHECKING([for a C preprocessor that does not parse its input])
-AC_PREPROC_IFELSE([AC_LANG_SOURCE([[1.1.1 16BIT]])],
- [DFNCPP="$CPP"],
- [ DFNCPP=""
- sav_CPP="$CPP"
- for CPP in "${CC-cc} -E" "${CC-cc} -E -traditional-cpp" "/lib/cpp" "cpp"
- do
- AC_PREPROC_IFELSE([AC_LANG_SOURCE([[1.1.1 16BIT]])],
- [DFNCPP="$CPP"]
- [break],,)
- done
- CPP="$sav_CPP"
- ])
-if test -n "$DFNCPP"; then
- AC_MSG_RESULT([$DFNCPP])
- AC_SUBST(DFNCPP)
+# Some awks crash when confronted with pnglibconf.dfa, do a test run now
+# to make sure this doesn't happen
+AC_MSG_CHECKING([that AWK works])
+if ${AWK} -f ${srcdir}/scripts/options.awk out="/dev/null" version=search\
+ ${srcdir}/pngconf.h ${srcdir}/scripts/pnglibconf.dfa\
+ ${srcdir}/pngusr.dfa 1>&2
+then
+ AC_MSG_RESULT([ok])
else
- AC_MSG_FAILURE([not found], 1)
+ AC_MSG_FAILURE([failed], 1)
fi
+# This is a remnant of the old cc -E validation, where it may have been
+# necessary to use a different preprocessor for .dfn files
+DFNCPP="$CPP"
+AC_SUBST(DFNCPP)
+
# -Werror cannot be passed to GCC in CFLAGS because configure will fail (it
# checks the compiler with a program that generates a warning), add the
# following option to deal with this
@@ -116,7 +108,7 @@
# Checks for header files.
AC_HEADER_STDC
# Headers used in pngpriv.h:
-AC_CHECK_HEADERS([stdlib.h string.h float.h fp.h math.h m68881.h])
+AC_CHECK_HEADERS([assert.h stdlib.h string.h float.h fp.h math.h m68881.h])
# Additional headers used in pngconf.h:
AC_CHECK_HEADERS([limits.h stddef.h stdio.h setjmp.h time.h])
# Used by pngread.c (for the simplified API):
@@ -126,8 +118,6 @@
AC_CHECK_HEADERS([ctype.h])
# Additional requirements of contrib/libtests/pngvalid.c:
AC_CHECK_HEADERS([fenv.h])
-# Additional requirements of contrib/libtests/tarith.c:
-AC_CHECK_HEADERS([assert.h])
# Checks for typedefs, structures, and compiler characteristics.
# Most of these have been removed from 1.7.0 because they checked for non-ANSI-C
diff --git a/png.h b/png.h
index 53d8481..b6e949b 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library
*
- * libpng version 1.7.0alpha10 - February 5, 2013
+ * libpng version 1.7.0alpha10 - February 6, 2013
* Copyright (c) 1998-2013 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@@ -11,7 +11,7 @@
* Authors and maintainers:
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
- * libpng versions 0.97, January 1998, through 1.7.0alpha10 - February 5, 2013: Glenn
+ * libpng versions 0.97, January 1998, through 1.7.0alpha10 - February 6, 2013: Glenn
* See also "Contributing Authors", below.
*
* Note about libpng version numbers:
@@ -199,7 +199,7 @@
*
* This code is released under the libpng license.
*
- * libpng versions 1.2.6, August 15, 2004, through 1.7.0alpha10, February 5, 2013, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.7.0alpha10, February 6, 2013, are
* Copyright (c) 2004, 2006-2013 Glenn Randers-Pehrson, and are
* distributed according to the same disclaimer and license as libpng-1.2.5
* with the following individual added to the list of Contributing Authors:
@@ -311,7 +311,7 @@
* Y2K compliance in libpng:
* =========================
*
- * February 5, 2013
+ * February 6, 2013
*
* Since the PNG Development group is an ad-hoc body, we can't make
* an official declaration.
@@ -379,7 +379,7 @@
/* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.7.0alpha10"
#define PNG_HEADER_VERSION_STRING \
- " libpng version 1.7.0alpha10 - February 5, 2013\n"
+ " libpng version 1.7.0alpha10 - February 6, 2013\n"
#define PNG_LIBPNG_VER_SONUM 17
#define PNG_LIBPNG_VER_DLLNUM 17
@@ -3208,8 +3208,8 @@
defined(PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED)
PNG_EXPORT(242, void, png_set_check_for_invalid_index,
(png_structrp png_ptr, int allowed));
-PNG_EXPORT(243, int, png_get_palette_max, (png_const_structp png_ptr,
- png_const_infop info_ptr));
+PNG_EXPORT(243, int, png_get_palette_max, (png_const_structrp png_ptr,
+ png_const_inforp info_ptr));
#endif
/* Maintainer: Put new public prototypes here ^, in libpng.3, and project
diff --git a/pngget.c b/pngget.c
index 6d1aaa3..5a6d966 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1164,7 +1164,7 @@
#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED
int PNGAPI
-png_get_palette_max(png_const_structp png_ptr, png_const_infop info_ptr)
+png_get_palette_max(png_const_structrp png_ptr, png_const_inforp info_ptr)
{
if (png_ptr != NULL && info_ptr != NULL)
return png_ptr->num_palette_max;