aharvey                                  Fri, 04 Feb 2011 10:50:42 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=308014

Log:
Fix bug #53923 (Zip functions assume HAVE_GLOB is defined).

Bug: http://bugs.php.net/53923 (Assigned) Zip functions assume HAVE_GLOB is 
defined
      
Changed paths:
    U   php/php-src/branches/PHP_5_3/NEWS
    U   php/php-src/branches/PHP_5_3/ext/zip/php_zip.c
    U   php/php-src/trunk/ext/zip/php_zip.c

Modified: php/php-src/branches/PHP_5_3/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3/NEWS   2011-02-04 10:49:49 UTC (rev 308013)
+++ php/php-src/branches/PHP_5_3/NEWS   2011-02-04 10:50:42 UTC (rev 308014)
@@ -157,6 +157,7 @@

 - Zip extension:
   . Added the filename into the return value of stream_get_meta_data(). 
(Hannes)
+  . Fixed bug #53923 (Zip functions assume HAVE_GLOB is defined). (Adam)
   . Fixed bug #53166 (Missing parameters in docs and reflection definition).
     (Richard)
   . Fixed bug #53568 (swapped memset arguments in struct initialization).

Modified: php/php-src/branches/PHP_5_3/ext/zip/php_zip.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/zip/php_zip.c      2011-02-04 10:49:49 UTC 
(rev 308013)
+++ php/php-src/branches/PHP_5_3/ext/zip/php_zip.c      2011-02-04 10:50:42 UTC 
(rev 308014)
@@ -565,6 +565,7 @@
        return globbuf.gl_pathc;
 }
 /* }}} */
+#endif /* HAVE_GLOB */

 int php_zip_pcre(char *regexp, int regexp_len, char *path, int path_len, zval 
*return_value TSRMLS_DC) /* {{{ */
 {
@@ -666,8 +667,6 @@
 /* }}} */
 #endif

-#endif
-
 /* {{{ arginfo */
 ZEND_BEGIN_ARG_INFO_EX(arginfo_zip_open, 0, 0, 1)
        ZEND_ARG_INFO(0, filename)
@@ -1592,9 +1591,11 @@
        char *add_path = NULL;
        int pattern_len, add_path_len, remove_path_len, path_len = 0;
        long remove_all_path = 0;
-       long flags = 0;
        zval *options = NULL;
        int found;
+#ifdef HAVE_GLOB
+       long flags = 0;
+#endif

        if (!this) {
                RETURN_FALSE;
@@ -1603,10 +1604,15 @@
        ZIP_FROM_OBJECT(intern, this);
        /* 1 == glob, 2==pcre */
        if (type == 1) {
+#ifdef HAVE_GLOB
                if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|la",
                                        &pattern, &pattern_len, &flags, 
&options) == FAILURE) {
                        return;
                }
+#else
+               php_error_docref(NULL TSRMLS_CC, E_ERROR, "Glob support is not 
available");
+               RETURN_FALSE;
+#endif
        } else {
                if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|sa",
                                        &pattern, &pattern_len, &path, 
&path_len, &options) == FAILURE) {
@@ -1629,7 +1635,9 @@
        }

        if (type == 1) {
+#ifdef HAVE_GLOB
                found = php_zip_glob(pattern, pattern_len, flags, return_value 
TSRMLS_CC);
+#endif
        } else {
                found = php_zip_pcre(pattern, pattern_len, path, path_len, 
return_value TSRMLS_CC);
        }
@@ -1688,6 +1696,7 @@
 }
 /* }}} */

+#ifdef HAVE_GLOB
 /* {{{ proto bool ZipArchive::addGlob(string pattern[,int flags [, array 
options]])
 Add files matching the glob pattern. See php's glob for the pattern syntax. */
 static ZIPARCHIVE_METHOD(addGlob)
@@ -1695,6 +1704,7 @@
        php_zip_add_from_pattern(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
 }
 /* }}} */
+#endif

 /* {{{ proto bool ZipArchive::addPattern(string pattern[, string path [, array 
options]])
 Add files matching the pcre pattern. See php's pcre for the pattern syntax. */
@@ -2570,11 +2580,13 @@
        ZEND_ARG_INFO(0, dirname)
 ZEND_END_ARG_INFO()

+#ifdef HAVE_GLOB
 ZEND_BEGIN_ARG_INFO_EX(arginfo_ziparchive_addglob, 0, 0, 1)
        ZEND_ARG_INFO(0, pattern)
        ZEND_ARG_INFO(0, flags)
        ZEND_ARG_INFO(0, options)
 ZEND_END_ARG_INFO()
+#endif

 ZEND_BEGIN_ARG_INFO_EX(arginfo_ziparchive_addpattern, 0, 0, 1)
        ZEND_ARG_INFO(0, pattern)
@@ -2680,7 +2692,9 @@
        ZIPARCHIVE_ME(addEmptyDir,                      
arginfo_ziparchive_addemptydir, ZEND_ACC_PUBLIC)
        ZIPARCHIVE_ME(addFromString,            
arginfo_ziparchive_addfromstring, ZEND_ACC_PUBLIC)
        ZIPARCHIVE_ME(addFile,                          
arginfo_ziparchive_addfile, ZEND_ACC_PUBLIC)
+#ifdef HAVE_GLOB
        ZIPARCHIVE_ME(addGlob,                          
arginfo_ziparchive_addglob, ZEND_ACC_PUBLIC)
+#endif
        ZIPARCHIVE_ME(addPattern,                       
arginfo_ziparchive_addpattern, ZEND_ACC_PUBLIC)
        ZIPARCHIVE_ME(renameIndex,                      
arginfo_ziparchive_renameindex, ZEND_ACC_PUBLIC)
        ZIPARCHIVE_ME(renameName,                       
arginfo_ziparchive_renamename, ZEND_ACC_PUBLIC)

Modified: php/php-src/trunk/ext/zip/php_zip.c
===================================================================
--- php/php-src/trunk/ext/zip/php_zip.c 2011-02-04 10:49:49 UTC (rev 308013)
+++ php/php-src/trunk/ext/zip/php_zip.c 2011-02-04 10:50:42 UTC (rev 308014)
@@ -565,6 +565,7 @@
        return globbuf.gl_pathc;
 }
 /* }}} */
+#endif /* HAVE_GLOB */

 int php_zip_pcre(char *regexp, int regexp_len, char *path, int path_len, zval 
*return_value TSRMLS_DC) /* {{{ */
 {
@@ -666,8 +667,6 @@
 /* }}} */
 #endif

-#endif
-
 /* {{{ arginfo */
 ZEND_BEGIN_ARG_INFO_EX(arginfo_zip_open, 0, 0, 1)
        ZEND_ARG_INFO(0, filename)
@@ -1597,9 +1596,11 @@
        char *add_path = NULL;
        int pattern_len, add_path_len, remove_path_len, path_len = 0;
        long remove_all_path = 0;
-       long flags = 0;
        zval *options = NULL;
        int found;
+#ifdef HAVE_GLOB
+       long flags = 0;
+#endif

        if (!this) {
                RETURN_FALSE;
@@ -1608,10 +1609,15 @@
        ZIP_FROM_OBJECT(intern, this);
        /* 1 == glob, 2==pcre */
        if (type == 1) {
+#ifdef HAVE_GLOB
                if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|la",
                                        &pattern, &pattern_len, &flags, 
&options) == FAILURE) {
                        return;
                }
+#else
+               php_error_docref(NULL TSRMLS_CC, E_ERROR, "Glob support is not 
available");
+               RETURN_FALSE;
+#endif
        } else {
                if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|sa",
                                        &pattern, &pattern_len, &path, 
&path_len, &options) == FAILURE) {
@@ -1634,7 +1640,9 @@
        }

        if (type == 1) {
+#ifdef HAVE_GLOB
                found = php_zip_glob(pattern, pattern_len, flags, return_value 
TSRMLS_CC);
+#endif
        } else {
                found = php_zip_pcre(pattern, pattern_len, path, path_len, 
return_value TSRMLS_CC);
        }
@@ -1693,6 +1701,7 @@
 }
 /* }}} */

+#ifdef HAVE_GLOB
 /* {{{ proto bool ZipArchive::addGlob(string pattern[,int flags [, array 
options]])
 Add files matching the glob pattern. See php's glob for the pattern syntax. */
 static ZIPARCHIVE_METHOD(addGlob)
@@ -1700,6 +1709,7 @@
        php_zip_add_from_pattern(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
 }
 /* }}} */
+#endif

 /* {{{ proto bool ZipArchive::addPattern(string pattern[, string path [, array 
options]])
 Add files matching the pcre pattern. See php's pcre for the pattern syntax. */
@@ -2568,11 +2578,13 @@
        ZEND_ARG_INFO(0, dirname)
 ZEND_END_ARG_INFO()

+#ifdef HAVE_GLOB
 ZEND_BEGIN_ARG_INFO_EX(arginfo_ziparchive_addglob, 0, 0, 1)
        ZEND_ARG_INFO(0, pattern)
        ZEND_ARG_INFO(0, flags)
        ZEND_ARG_INFO(0, options)
 ZEND_END_ARG_INFO()
+#endif

 ZEND_BEGIN_ARG_INFO_EX(arginfo_ziparchive_addpattern, 0, 0, 1)
        ZEND_ARG_INFO(0, pattern)
@@ -2678,7 +2690,9 @@
        ZIPARCHIVE_ME(addEmptyDir,                      
arginfo_ziparchive_addemptydir, ZEND_ACC_PUBLIC)
        ZIPARCHIVE_ME(addFromString,            
arginfo_ziparchive_addfromstring, ZEND_ACC_PUBLIC)
        ZIPARCHIVE_ME(addFile,                          
arginfo_ziparchive_addfile, ZEND_ACC_PUBLIC)
+#ifdef HAVE_GLOB
        ZIPARCHIVE_ME(addGlob,                          
arginfo_ziparchive_addglob, ZEND_ACC_PUBLIC)
+#endif
        ZIPARCHIVE_ME(addPattern,                       
arginfo_ziparchive_addpattern, ZEND_ACC_PUBLIC)
        ZIPARCHIVE_ME(renameIndex,                      
arginfo_ziparchive_renameindex, ZEND_ACC_PUBLIC)
        ZIPARCHIVE_ME(renameName,                       
arginfo_ziparchive_renamename, ZEND_ACC_PUBLIC)

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to