cvs: php-src /ext/spl spl_directory.c spl_directory.h
| From: | Marcus Boerger | Date: | Sun, 04 Mar 2007 00:23:07 +0000 |
| Subject: | cvs: php-src /ext/spl spl_directory.c spl_directory.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-43384@lists.php.net to get a copy of this message | ||
helly Sun Mar 4 00:23:07 2007 UTC
Modified files:
/php-src/ext/spl spl_directory.c spl_directory.h
Log:
- Fix a minor issue with glob support - forgot to set length of string
- Add ability to not use glob on subdirs
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.c?r1=1.127&r2=1.128&diff_format=u
Index: php-src/ext/spl/spl_directory.c
diff -u php-src/ext/spl/spl_directory.c:1.127 php-src/ext/spl/spl_directory.c:1.128
--- php-src/ext/spl/spl_directory.c:1.127 Sat Mar 3 23:41:43 2007
+++ php-src/ext/spl/spl_directory.c Sun Mar 4 00:23:07 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_directory.c,v 1.127 2007/03/03 23:41:43 helly Exp $ */
+/* $Id: spl_directory.c,v 1.128 2007/03/04 00:23:07 helly Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -1206,24 +1206,22 @@
spl_filesystem_object_get_file_name(intern TSRMLS_CC);
INIT_PZVAL(&zflags);
- ZVAL_LONG(&zflags, intern->flags);
-
INIT_PZVAL(&zpath);
- if (intern->flags & SPL_FILE_DIR_USE_GLOB) {
+ if ((intern->flags & (SPL_FILE_DIR_USE_GLOB|SPL_FILE_DIR_NO_GLOB_CHILD)) ==
SPL_FILE_DIR_USE_GLOB) {
+ ZVAL_LONG(&zflags, intern->flags);
Z_TYPE(zpath) = IS_STRING;
- spprintf(&Z_STRVAL(zpath), 0, "%R%c%s",
+ Z_STRLEN(zpath) = spprintf(&Z_STRVAL(zpath), 0, "%R%c%s",
intern->file_name_type, intern->file_name,
DEFAULT_SLASH,
php_glob_stream_get_pattern(intern->u.dir.dirp, 0, NULL));
} else {
- ZVAL_ZSTRL(&zpath, intern->file_name_type, intern->file_name, intern->file_name_len,
0);
+ ZVAL_LONG(&zflags, intern->flags & ~SPL_FILE_DIR_USE_GLOB);
+ ZVAL_ZSTRL(&zpath, intern->file_name_type, intern->file_name, intern->file_name_len,
1);
}
spl_instantiate_arg_ex2(spl_ce_RecursiveDirectoryIterator, &return_value, 0, &zpath,
&zflags TSRMLS_CC);
- if (intern->flags & SPL_FILE_DIR_USE_GLOB) {
- efree(Z_STRVAL(zpath));
- }
+ zval_dtor(&zpath);
subdir = (spl_filesystem_object*)zend_object_store_get_object(return_value TSRMLS_CC);
if (subdir) {
@@ -2509,7 +2507,8 @@
REGISTER_SPL_SUB_CLASS_EX(DirectoryIterator, SplFileInfo, spl_filesystem_object_new,
spl_DirectoryIterator_functions);
zend_class_implements(spl_ce_DirectoryIterator TSRMLS_CC, 1, zend_ce_iterator);
- REGISTER_SPL_CLASS_CONST_LONG(DirectoryIterator, "USE_GLOB", SPL_FILE_DIR_USE_GLOB);
+ REGISTER_SPL_CLASS_CONST_LONG(DirectoryIterator, "USE_GLOB",
SPL_FILE_DIR_USE_GLOB);
+ REGISTER_SPL_CLASS_CONST_LONG(DirectoryIterator, "NO_GLOB_CHILD",
SPL_FILE_DIR_NO_GLOB_CHILD);
spl_ce_DirectoryIterator->get_iterator = spl_filesystem_dir_get_iterator;
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.h?r1=1.31&r2=1.32&diff_format=u
Index: php-src/ext/spl/spl_directory.h
diff -u php-src/ext/spl/spl_directory.h:1.31 php-src/ext/spl/spl_directory.h:1.32
--- php-src/ext/spl/spl_directory.h:1.31 Sat Mar 3 23:41:43 2007
+++ php-src/ext/spl/spl_directory.h Sun Mar 4 00:23:07 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_directory.h,v 1.31 2007/03/03 23:41:43 helly Exp $ */
+/* $Id: spl_directory.h,v 1.32 2007/03/04 00:23:07 helly Exp $ */
#ifndef SPL_DIRECTORY_H
#define SPL_DIRECTORY_H
@@ -122,6 +122,7 @@
#define SPL_FILE_DIR_USE_GLOB 0x00001000 /* use glob for open dir*/
#define SPL_FILE_DIR_GLOB_REFETCH_PATH 0x00002000 /* whether we need to refetch the path in
glob mode */
+#define SPL_FILE_DIR_NO_GLOB_CHILD 0x00004000 /* do not use glob on childs */
#endif /* SPL_DIRECTORY_H */