[libpng16] Imported from libpng-1.6.18beta07.tar
diff --git a/ANNOUNCE b/ANNOUNCE
index 3ce3f0b..d03d3d2 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,4 +1,4 @@
-Libpng 1.6.18beta07 - June 3, 2015
+Libpng 1.6.18beta07 - June 6, 2015
 
 This is not intended to be a public release.  It will be replaced
 within a few weeks by a public version or by another test version.
@@ -69,7 +69,7 @@
     png_set_filter_heuristics_fixed() APIs are retained but deprecated
     and do nothing.
 
-Version 1.6.18beta07 [June 3, 2015]
+Version 1.6.18beta07 [June 6, 2015]
   Removed non-working progressive reader 'skip' function. This
     function has apparently never been used. It was implemented
     to support back-door modification of png_struct in libpng-1.4.x
@@ -80,9 +80,12 @@
     being lost over the setjmp (John Bowler).
   Fixed NO_WRITE_FILTER and -Wconversion build breaks (John Bowler).
   Fix g++ build breaks (John Bowler).
-  Quieted Coverity issues in pngfix.c, png-fix-itxt.c, pngvalid.c,
+  Quieted some Coverity issues in pngfix.c, png-fix-itxt.c, pngvalid.c,
     pngstest.c, and pngimage.c. Most seem harmless, but png-fix-itxt
     would only work with iTXt chunks with length 255 or less.
+  Added #ifdef's to contrib/examples programs so people don't try
+    to compile them without the minimum required support enabled
+    (suggested by Flavio Medeiros).
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/CHANGES b/CHANGES
index 1d15e8a..60015e2 100644
--- a/CHANGES
+++ b/CHANGES
@@ -5254,7 +5254,7 @@
     png_set_filter_heuristics_fixed() APIs are retained but deprecated
     and do nothing.
 
-Version 1.6.18beta07 [June 3, 2015]
+Version 1.6.18beta07 [June 6, 2015]
   Removed non-working progressive reader 'skip' function. This
     function has apparently never been used. It was implemented
     to support back-door modification of png_struct in libpng-1.4.x
@@ -5265,9 +5265,12 @@
     being lost over the setjmp (John Bowler).
   Fixed NO_WRITE_FILTER and -Wconversion build breaks (John Bowler).
   Fix g++ build breaks (John Bowler).
-  Quieted Coverity issues in pngfix.c, png-fix-itxt.c, pngvalid.c,
+  Quieted some Coverity issues in pngfix.c, png-fix-itxt.c, pngvalid.c,
     pngstest.c, and pngimage.c. Most seem harmless, but png-fix-itxt
     would only work with iTXt chunks with length 255 or less.
+  Added #ifdef's to contrib/examples programs so people don't try
+    to compile them without the minimum required support enabled
+    (suggested by Flavio Medeiros).
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/LICENSE b/LICENSE
index 072c238..a8ac5e3 100644
--- a/LICENSE
+++ b/LICENSE
@@ -10,7 +10,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.6.18beta07, June 1, 2015, are
+libpng versions 1.2.6, August 15, 2004, through 1.6.18beta07, June 6, 2015, are
 Copyright (c) 2004, 2006-2015 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.2.5
 with the following individual added to the list of Contributing Authors
@@ -108,4 +108,4 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-June 1, 2015
+June 6, 2015
diff --git a/README b/README
index 5b10bf4..77c72fd 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.6.18beta07 - June 1, 2015 (shared library 16.0)
+README for libpng version 1.6.18beta07 - June 6, 2015 (shared library 16.0)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
diff --git a/contrib/examples/iccfrompng.c b/contrib/examples/iccfrompng.c
index 386e522..603037e 100644
--- a/contrib/examples/iccfrompng.c
+++ b/contrib/examples/iccfrompng.c
@@ -26,6 +26,10 @@
 
 #include <png.h>
 
+#if defined(PNG_READ_SUPPORTED) && defined(PNG_STDIO_SUPPORTED) && \
+    defined (PNG_iCCP_SUPPORTED)
+
+
 static int verbose = 1;
 static png_byte no_profile[] = "no profile";
 
@@ -178,3 +182,4 @@
    /* Exit code is true if any extract succeeds */
    return extracted == 0;
 }
+#endif /* READ && STDIO && iCCP */
diff --git a/contrib/examples/pngpixel.c b/contrib/examples/pngpixel.c
index e0d43e3..27f2cb9 100644
--- a/contrib/examples/pngpixel.c
+++ b/contrib/examples/pngpixel.c
@@ -27,6 +27,8 @@
  */
 #include "../../png.h"
 
+#if defined(PNG_READ_SUPPORTED) && defined(PNG_SEQUENTIAL_READ_SUPPORTED)
+
 /* Return component 'c' of pixel 'x' from the given row. */
 static unsigned int
 component(png_const_bytep row, png_uint_32 x, unsigned int c,
@@ -366,3 +368,4 @@
 
    return result;
 }
+#endif /* READ && SEQUENTIAL_READ */
diff --git a/contrib/examples/pngtopng.c b/contrib/examples/pngtopng.c
index b1b3be6..4acf6b3 100644
--- a/contrib/examples/pngtopng.c
+++ b/contrib/examples/pngtopng.c
@@ -20,6 +20,8 @@
  * ensure the code picks up the local libpng implementation:
  */
 #include "../../png.h"
+#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) && \
+    defined(PNG_SIMPLIFIED_WRITE_SUPPORTED)
 
 int main(int argc, const char **argv)
 {
@@ -90,3 +92,4 @@
 
    return result;
 }
+#endif /* READ && WRITE */
diff --git a/contrib/examples/simpleover.c b/contrib/examples/simpleover.c
index e253c69..6852a95 100644
--- a/contrib/examples/simpleover.c
+++ b/contrib/examples/simpleover.c
@@ -44,6 +44,8 @@
  */
 #include "../../png.h"
 
+#ifdef PNG_SIMPLIFIED_READ_SUPPORTED
+
 #define sprite_name_chars 15
 struct sprite {
    FILE         *file;
@@ -643,3 +645,4 @@
 
    return result;
 }
+#endif /* SIMPLIFIED_READ */
diff --git a/contrib/libtests/pngstest.c b/contrib/libtests/pngstest.c
index d92292c..744a007 100644
--- a/contrib/libtests/pngstest.c
+++ b/contrib/libtests/pngstest.c
@@ -3245,7 +3245,8 @@
 
    if (image->opts & USE_STDIO)
    {
-      FILE *f = tmpfile();
+      char tmpfile[] = "pngstest-XXXXXX";
+      FILE *f = fopen(mktemp(tmpfile),"w+");
 
       if (f != NULL)
       {
diff --git a/contrib/tools/png-fix-itxt.c b/contrib/tools/png-fix-itxt.c
index 1210bd9..58f545b 100644
--- a/contrib/tools/png-fix-itxt.c
+++ b/contrib/tools/png-fix-itxt.c
@@ -1,8 +1,8 @@
 
 /* png-fix-itxt version 1.0.0
  *
- * Copyright 2013 Glenn Randers-Pehrson
- * Last changed in libpng 1.6.3 [July 18, 2013]
+ * Copyright 2015 Glenn Randers-Pehrson
+ * Last changed in libpng 1.6.18 [(PENDING RELEASE)]
  *
  * This code is released under the libpng license.
  * For conditions of distribution and use, see the disclaimer
@@ -57,16 +57,16 @@
  {
    /* Read the length */
    unsigned long length; /* must be 32 bits! */
-   c=GETBREAK; buf[0] = c; length  = c; length <<= 8;
-   c=GETBREAK; buf[1] = c; length += c; length <<= 8;
-   c=GETBREAK; buf[2] = c; length += c; length <<= 8;
-   c=GETBREAK; buf[3] = c; length += c;
+   c=GETBREAK; buf[0] = c & 0xff; length  = (c & 0xff); length <<= 8;
+   c=GETBREAK; buf[1] = c & 0xff; length += (c & 0xff); length <<= 8;
+   c=GETBREAK; buf[2] = c & 0xff; length += (c & 0xff); length <<= 8;
+   c=GETBREAK; buf[3] = c & 0xff; length += (c & 0xff);
 
    /* Read the chunkname */
-   c=GETBREAK; buf[4] = c;
-   c=GETBREAK; buf[5] = c;
-   c=GETBREAK; buf[6] = c;
-   c=GETBREAK; buf[7] = c;
+   c=GETBREAK; buf[4] = c & 0xff;
+   c=GETBREAK; buf[5] = c & 0xff;
+   c=GETBREAK; buf[6] = c & 0xff;
+   c=GETBREAK; buf[7] = c & 0xff;
 
 
    /* The iTXt chunk type expressed as integers is (105, 84, 88, 116) */
@@ -81,7 +81,7 @@
       /* Copy the data bytes */
       for (i=8; i < length + 12; i++)
       {
-         c=GETBREAK; buf[i] = c;
+         c=GETBREAK; buf[i] = c & 0xff;
       }
 
       /* Calculate the CRC */
@@ -102,16 +102,16 @@
            break;
 
         c=GETBREAK;
-        buf[length+11]=c;
+        buf[length+11] = c & 0xff;
 
         /* Update the CRC */
         crc = crc32(crc, buf+7+length, 1);
       }
 
       /* Update length bytes */
-      buf[0] = (unsigned char)((length << 24) & 0xff);
-      buf[1] = (unsigned char)((length << 16) & 0xff);
-      buf[2] = (unsigned char)((length <<  8) & 0xff);
+      buf[0] = (unsigned char)((length >> 24) & 0xff);
+      buf[1] = (unsigned char)((length >> 16) & 0xff);
+      buf[2] = (unsigned char)((length >>  8) & 0xff);
       buf[3] = (unsigned char)((length      ) & 0xff);
 
       /* Write the fixed iTXt chunk (length, name, data, crc) */
@@ -129,7 +129,7 @@
       for (i=8; i< length+12; i++)
       {
          c=GETBREAK;
-         putchar(c);
+         putchar((c & 0xff));
       }
 
       if (inchar == EOF)
diff --git a/libpng-manual.txt b/libpng-manual.txt
index 2bb50e7..c18237c 100644
--- a/libpng-manual.txt
+++ b/libpng-manual.txt
@@ -1,6 +1,6 @@
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.6.18beta07 - June 1, 2015
+ libpng version 1.6.18beta07 - June 6, 2015
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
@@ -11,7 +11,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.6.18beta07 - June 1, 2015
+ libpng versions 0.97, January 1998, through 1.6.18beta07 - June 6, 2015
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
 
@@ -5297,7 +5297,7 @@
 
 XVI. Y2K Compliance in libpng
 
-June 1, 2015
+June 6, 2015
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
diff --git a/libpng.3 b/libpng.3
index 9dc9591..143a5ef 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,4 +1,4 @@
-.TH LIBPNG 3 "June 1, 2015"
+.TH LIBPNG 3 "June 6, 2015"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.18beta07
 .SH SYNOPSIS
@@ -504,7 +504,7 @@
 .SH LIBPNG.TXT
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.6.18beta07 - June 1, 2015
+ libpng version 1.6.18beta07 - June 6, 2015
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
@@ -515,7 +515,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.6.18beta07 - June 1, 2015
+ libpng versions 0.97, January 1998, through 1.6.18beta07 - June 6, 2015
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
 
@@ -5801,7 +5801,7 @@
 
 .SH XVI. Y2K Compliance in libpng
 
-June 1, 2015
+June 6, 2015
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
@@ -6119,7 +6119,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.6.18beta07 - June 1, 2015:
+Libpng version 1.6.18beta07 - June 6, 2015:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
 
@@ -6142,7 +6142,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.6.18beta07, June 1, 2015, are
+libpng versions 1.2.6, August 15, 2004, through 1.6.18beta07, June 6, 2015, are
 Copyright (c) 2004,2006-2015 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.2.5
 with the following individual added to the list of Contributing Authors
@@ -6241,7 +6241,7 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-June 1, 2015
+June 6, 2015
 
 .\" end of man page
 
diff --git a/libpngpf.3 b/libpngpf.3
index e9ba68c..0d8f392 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,4 +1,4 @@
-.TH LIBPNGPF 3 "June 1, 2015"
+.TH LIBPNGPF 3 "June 6, 2015"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.18beta07
 (private functions)
diff --git a/png.5 b/png.5
index 8ae0ca2..a4a1eaf 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "June 1, 2015"
+.TH PNG 5 "June 6, 2015"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 1ac5c39..a0a5d44 100644
--- a/png.c
+++ b/png.c
@@ -766,13 +766,13 @@
 #else
 #  ifdef __STDC__
    return PNG_STRING_NEWLINE \
-     "libpng version 1.6.18beta07 - June 3, 2015" PNG_STRING_NEWLINE \
+     "libpng version 1.6.18beta07 - June 6, 2015" PNG_STRING_NEWLINE \
      "Copyright (c) 1998-2015 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
      "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
      "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
      PNG_STRING_NEWLINE;
 #  else
-      return "libpng version 1.6.18beta07 - June 3, 2015\
+      return "libpng version 1.6.18beta07 - June 6, 2015\
       Copyright (c) 1998-2015 Glenn Randers-Pehrson\
       Copyright (c) 1996-1997 Andreas Dilger\
       Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
diff --git a/png.h b/png.h
index 675a69b..f3b7977 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.6.18beta07, June 1, 2015
+ * libpng version 1.6.18beta07, June 6, 2015
  *
  * Copyright (c) 1998-2015 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -12,7 +12,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.6.18beta07, June 1, 2015: Glenn
+ *   libpng versions 0.97, January 1998, through 1.6.18beta07, June 6, 2015: Glenn
  *   See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -248,7 +248,7 @@
  *
  * This code is released under the libpng license.
  *
- * libpng versions 1.2.6, August 15, 2004, through 1.6.18beta07, June 1, 2015, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.6.18beta07, June 6, 2015, are
  * Copyright (c) 2004, 2006-2015 Glenn Randers-Pehrson, and are
  * distributed according to the same disclaimer and license as libpng-1.2.5
  * with the following individual added to the list of Contributing Authors:
@@ -360,7 +360,7 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    June 1, 2015
+ *    June 6, 2015
  *
  *    Since the PNG Development group is an ad-hoc body, we can't make
  *    an official declaration.
@@ -430,7 +430,7 @@
 /* Version information for png.h - this should match the version in png.c */
 #define PNG_LIBPNG_VER_STRING "1.6.18beta07"
 #define PNG_HEADER_VERSION_STRING \
-     " libpng version 1.6.18beta07 - June 1, 2015\n"
+     " libpng version 1.6.18beta07 - June 6, 2015\n"
 
 #define PNG_LIBPNG_VER_SONUM   16
 #define PNG_LIBPNG_VER_DLLNUM  16
diff --git a/projects/vstudio/readme.txt b/projects/vstudio/readme.txt
index fbd41ec..ca21927 100644
--- a/projects/vstudio/readme.txt
+++ b/projects/vstudio/readme.txt
@@ -1,7 +1,7 @@
 
 VisualStudio instructions
 
-libpng version 1.6.18beta07 - June 1, 2015
+libpng version 1.6.18beta07 - June 6, 2015
 
 Copyright (c) 1998-2010 Glenn Randers-Pehrson
 
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index 49a49c4..9643841 100644
--- a/projects/vstudio/zlib.props
+++ b/projects/vstudio/zlib.props
@@ -2,7 +2,7 @@
 <!--
  * zlib.props - location of zlib source
  *
- * libpng version 1.6.18beta07 - June 1, 2015
+ * libpng version 1.6.18beta07 - June 6, 2015
  *
  * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  *
diff --git a/scripts/README.txt b/scripts/README.txt
index e0092eb..e68e1e8 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,5 +1,5 @@
 
-Makefiles for  libpng version 1.6.18beta07 - June 1, 2015
+Makefiles for  libpng version 1.6.18beta07 - June 6, 2015
 
 pnglibconf.h.prebuilt       =>  Stores configuration settings
  makefile.linux    =>  Linux/ELF makefile
diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt
index dda32ab..8d10494 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -2,7 +2,7 @@
 
 /* pnglibconf.h - library build configuration */
 
-/* Libpng version 1.6.18beta07 - June 1, 2015 */
+/* Libpng version 1.6.18beta07 - June 6, 2015 */
 
 /* Copyright (c) 1998-2014 Glenn Randers-Pehrson */