]> granicus.if.org Git - php/commitdiff
Fix bug #72596: imagetypes function won't advertise WEBP support
authorChristoph M. Becker <cmb@php.net>
Thu, 14 Jul 2016 14:43:13 +0000 (16:43 +0200)
committerChristoph M. Becker <cmb@php.net>
Thu, 14 Jul 2016 15:17:59 +0000 (17:17 +0200)
We add the constant IMG_WEBP and make sure that WebP support is properly
reported by imagetypes().

NEWS
UPGRADING
ext/gd/gd.c
ext/gd/tests/bug72596.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 79d450408893cb7f92ff2b61127f000579e186fe..a9d242b1dc2f25f6c848066fc21eed777ca03584 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -23,6 +23,9 @@ PHP                                                                        NEWS
   . Fixed bug #72575 (using --allow-to-run-as-root should ignore missing user).
     (gooh)
 
+- GD:
+  . Fixed bug #72596 (imagetypes function won't advertise WEBP support). (cmb)
+
 - Intl:
   . Partially fixed #72506 (idn_to_ascii for UTS #46 incorrect for long domain
     names). (cmb)
index e2cf5a747876d3d1b6ba3d0b4173f43ed7527d64..dbf65015de67cf17b1533578c9ff073f3caa8136 100644 (file)
--- a/UPGRADING
+++ b/UPGRADING
@@ -400,6 +400,9 @@ PHP 5.6 UPGRADE NOTES
 - CURL:
   CURL_HTTP_VERSION_2_0 and CURL_VERSION_HTTP2 (>= 5.6.8)
 
+- GD:
+  IMG_WEBP (>= 5.6.25)
+
 - LDAP:
   LDAP_ESCAPE_FILTER int(1)
   LDAP_ESCAPE_DN     int(2)
index cb070abf84cd4f687d4cd55bd5014a4872e0b1c4..532fc5dfc0ec49cd6db7fa079df2f9ded879db7f 100644 (file)
@@ -1148,6 +1148,7 @@ PHP_MINIT_FUNCTION(gd)
        REGISTER_LONG_CONSTANT("IMG_PNG", 4, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_WBMP", 8, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_XPM", 16, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_WEBP", 32, CONST_CS | CONST_PERSISTENT);
 
        /* special colours for gd */
        REGISTER_LONG_CONSTANT("IMG_COLOR_TILED", gdTiled, CONST_CS | CONST_PERSISTENT);
@@ -2200,6 +2201,9 @@ PHP_FUNCTION(imagetypes)
 #if defined(HAVE_GD_XPM)
        ret |= 16;
 #endif
+#ifdef HAVE_GD_WEBP
+       ret |= 32;
+#endif
 
        if (zend_parse_parameters_none() == FAILURE) {
                return;
diff --git a/ext/gd/tests/bug72596.phpt b/ext/gd/tests/bug72596.phpt
new file mode 100644 (file)
index 0000000..2eb7dad
--- /dev/null
@@ -0,0 +1,12 @@
+--TEST--
+Bug #72596 (imagetypes function won't advertise WEBP support)
+--SKIPIF--
+<?php
+if (!extension_loaded('gd')) die('skip gd extension not available');
+?>
+--FILE--
+<?php
+var_dump(function_exists('imagewebp') === (bool) (imagetypes() & IMG_WEBP));
+?>
+--EXPECT--
+bool(true)