svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/zip/php_zip.c trunk/ext/zip/php_zip.c
| From: | Adam Harvey | Date: | Fri, 04 Feb 2011 10:50:42 +0000 |
| Subject: | svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/zip/php_zip.c trunk/ext/zip/php_zip.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-64500@lists.php.net to get a copy of this message | ||
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)