[libpng17] Added information about setjmp/simplified API interaction in the

manual page and INSTALL file. Added information about using
row_pointers with a single height*width*bpp allocated block
diff --git a/ANNOUNCE b/ANNOUNCE
index 4939c6b..ef2bf40 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.7.0beta52 - February 17, 2015
+Libpng 1.7.0beta52 - February 18, 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.
@@ -722,7 +722,10 @@
     with a method that prevents overflow and does not increase cpu usage
     significantly.
 
-Version 1.7.0beta52 [February 17, 2015]
+Version 1.7.0beta52 [February 18, 2015]
+  Added information about setjmp/simplified API interaction in the
+    manual page and INSTALL file. Added information about using
+    row_pointers with a single height*width*bpp allocated block
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/INSTALL b/INSTALL
index 3493133..7eef94d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -17,7 +17,7 @@
  XII. Configuring for compiler xxx:
 XIII. Removing unwanted object code
  XIV. Changes to the build and configuration of libpng in libpng-1.5.x
-  XV. Configuring libpng for multiprocessing
+  XV. Setjmp/longjmp issues
  XVI. Other sources of information about libpng
 
 I. Simple installation
@@ -362,7 +362,7 @@
 libpng, because than the settings would not accurately reflect the settings
 that were used to build libpng.
 
-XV. Configuring libpng for multiprocessing
+XV. Setjmp/longjmp issues
 
 Libpng uses setjmp()/longjmp() for error handling.  Unfortunately setjmp()
 is known to be not thread-safe on some platforms and we don't know of
@@ -375,6 +375,11 @@
 
 in your pnglibconf.h or pngusr.h.
 
+Starting with libpng-1.6.0, the library included a "simplified API".
+This requires setjmp/longjmp, so you must either build the library
+with PNG_SETJMP_SUPPORTED defined, or with PNG_SIMPLIFIED_READ_SUPPORTED
+and PNG_SIMPLIFIED_WRITE_SUPPORTED undefined.
+
 XVI. Other sources of information about libpng:
 
 Further information can be found in the README and libpng-manual.txt
diff --git a/libpng-manual.txt b/libpng-manual.txt
index a4b2ff3..e94e1b4 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.7.0beta52 - February 17, 2015
+ libpng version 1.7.0beta52 - February 18, 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.7.0beta52 - February 17, 2015
+ libpng versions 0.97, January 1998, through 1.7.0beta52 - February 18, 2015
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
 
@@ -434,6 +434,10 @@
 more useful than abort(), as long as your function does not
 return.
 
+If you do this, you cannot #define PNG_SIMPLIFIED_READ_SUPPORTED or
+PNG_SIMPLIFIED_WRITE_SUPPORTED, because the simplified API requires
+setjmp() support.
+
 Now you need to set up the input code.  The default for libpng is to
 use the C function fread().  If you use this, you will need to pass a
 valid FILE * in the function png_init_io().  Be sure that the file is
@@ -1181,7 +1185,13 @@
    png_set_rows(png_ptr, info_ptr, &row_pointers);
 
 Alternatively you could allocate your image in one big block and define
-row_pointers[i] to point into the proper places in your block.
+row_pointers[i] to point into the proper places in your block. Allocate
+extra memory after the last row to leave working room for reading the
+entire row if you are doing reductions such as 16-to-8 or rgb-to-gray.
+In the worst case, reducing 16-bit RGBA to 8-bit gray, you'd need to
+allocate seven extra rows worth of memory (you don't need extra memory
+for any but the last row, because for other rows the working space just
+overlaps the next row(s).
 
 If you use png_set_rows(), the application is responsible for freeing
 row_pointers (and row_pointers[i], if they were separately allocated).
@@ -5325,7 +5335,7 @@
 
 XVII. Y2K Compliance in libpng
 
-February 17, 2015
+February 18, 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 c730a22..0a990e0 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,4 +1,4 @@
-.TH LIBPNG 3 "February 17, 2015"
+.TH LIBPNG 3 "February 18, 2015"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.7.0beta52
 .SH SYNOPSIS
@@ -494,7 +494,7 @@
 .SH LIBPNG.TXT
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.7.0beta52 - February 17, 2015
+ libpng version 1.7.0beta52 - February 18, 2015
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
@@ -505,7 +505,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.7.0beta52 - February 17, 2015
+ libpng versions 0.97, January 1998, through 1.7.0beta52 - February 18, 2015
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2015 Glenn Randers-Pehrson
 
@@ -928,6 +928,10 @@
 more useful than abort(), as long as your function does not
 return.
 
+If you do this, you cannot #define PNG_SIMPLIFIED_READ_SUPPORTED or
+PNG_SIMPLIFIED_WRITE_SUPPORTED, because the simplified API requires
+setjmp() support.
+
 Now you need to set up the input code.  The default for libpng is to
 use the C function fread().  If you use this, you will need to pass a
 valid FILE * in the function png_init_io().  Be sure that the file is
@@ -1675,7 +1679,13 @@
    png_set_rows(png_ptr, info_ptr, &row_pointers);
 
 Alternatively you could allocate your image in one big block and define
-row_pointers[i] to point into the proper places in your block.
+row_pointers[i] to point into the proper places in your block. Allocate
+extra memory after the last row to leave working room for reading the
+entire row if you are doing reductions such as 16-to-8 or rgb-to-gray.
+In the worst case, reducing 16-bit RGBA to 8-bit gray, you'd need to
+allocate seven extra rows worth of memory (you don't need extra memory
+for any but the last row, because for other rows the working space just
+overlaps the next row(s).
 
 If you use png_set_rows(), the application is responsible for freeing
 row_pointers (and row_pointers[i], if they were separately allocated).
@@ -5819,7 +5829,7 @@
 
 .SH XVII. Y2K Compliance in libpng
 
-February 17, 2015
+February 18, 2015
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
@@ -6089,7 +6099,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.7.0beta52 - February 17, 2015:
+Libpng version 1.7.0beta52 - February 18, 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).
 
@@ -6112,7 +6122,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.7.0beta52, February 17, 2015, are
+libpng versions 1.2.6, August 15, 2004, through 1.7.0beta52, February 18, 2015, are
 Copyright (c) 2004,2006-2007 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
@@ -6211,7 +6221,7 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-February 17, 2015
+February 18, 2015
 
 .\" end of man page