[devel] Revised png_check_IHDR()

to eliminate bogus complaint about filter_type.
diff --git a/ANNOUNCE b/ANNOUNCE
index b9008a1..b513cee 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -558,11 +558,14 @@
   Changed all "#if [!]defined(X)" to "if[n]def X" where possible.
   Eliminated unused png_ptr->row_buf_size
 
-version 1.4.0beta82 [September 25, 2009]
+version 1.4.0beta82 [September 24, 2009]
   Moved redundant IHDR checking into new png_check_IHDR() in png.c
     and report all errors found in the IHDR data.
   Eliminated useless call to png_check_cHRM() from pngset.c
 
+version 1.4.0beta83 [September 25, 2009]
+  Revised png_check_IHDR() to eliminate bogus complaint about filter_type.
+
 version 1.4.0betaN [future]
   Build shared libraries with -lz and sometimes -lm.
 
diff --git a/CHANGES b/CHANGES
index c49b09d..7510457 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2244,11 +2244,14 @@
   Changed all "#if [!]defined(X)" to "if[n]def X" where possible.
   Eliminated unused png_ptr->row_buf_size
 
-version 1.4.0beta82 [September 25, 2009]
+version 1.4.0beta82 [September 24, 2009]
   Moved redundant IHDR checking into new png_check_IHDR() in png.c
     and report all errors found in the IHDR data.
   Eliminated useless call to png_check_cHRM() from pngset.c
 
+version 1.4.0beta83 [September 25, 2009]
+  Revised png_check_IHDR() to eliminate bogus complaint about filter_type.
+
 version 1.4.0betaN [future]
   Build shared libraries with -lz and sometimes -lm.
 
diff --git a/png.c b/png.c
index d793578..b585317 100644
--- a/png.c
+++ b/png.c
@@ -887,17 +887,22 @@
 
    if (filter_type != PNG_FILTER_TYPE_BASE)
    {
-     if (!((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
+      if (!((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
          (filter_type == PNG_INTRAPIXEL_DIFFERENCING) &&
-         ((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE) == 0) &&
+         ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) == 0) &&
          (color_type == PNG_COLOR_TYPE_RGB ||
          color_type == PNG_COLOR_TYPE_RGB_ALPHA)))
-        png_warning(png_ptr, "Unknown filter method in IHDR");
-      error = 1;
-   }
+      {
+         png_warning(png_ptr, "Unknown filter method in IHDR");
+         error = 1;
+      }
 
-     if (png_ptr->mode&PNG_HAVE_PNG_SIGNATURE)
-        png_warning(png_ptr, "Invalid filter method in IHDR");
+      if (png_ptr->mode & PNG_HAVE_PNG_SIGNATURE)
+      {
+         png_warning(png_ptr, "Invalid filter method in IHDR");
+         error = 1;
+      }
+   }
 
 #else
    if (filter_type != PNG_FILTER_TYPE_BASE)
diff --git a/pngpriv.h b/pngpriv.h
index bf85dfd..6ce838e 100644
--- a/pngpriv.h
+++ b/pngpriv.h
@@ -817,20 +817,20 @@
    png_fixed_point int_blue_y));
 #endif
 
+#ifdef PNG_cHRM_SUPPORTED
+#ifdef PNG_CHECK_cHRM_SUPPORTED
+/* Added at libpng version 1.2.34 and 1.4.0 */
+PNG_EXTERN void png_64bit_product PNGARG((long v1, long v2,
+   unsigned long *hi_product, unsigned long *lo_product));
+#endif
+#endif
+
 /* Added at libpng version 1.4.0 */
 PNG_EXTERN void png_check_IHDR PNGARG((png_structp png_ptr,
    png_uint_32 width, png_uint_32 height, int bit_depth,
    int color_type, int interlace_type, int compression_type,
    int filter_type));
 
-#ifdef PNG_cHRM_SUPPORTED
-#ifdef PNG_CHECK_cHRM_SUPPORTED
-/* Added at libpng version 1.2.34 and 1.4.0 */
-PNG_EXTERN void png_64bit_product (long v1, long v2, unsigned long *hi_product,
-   unsigned long *lo_product);
-#endif
-#endif
-
 /* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
 
 #ifdef __cplusplus