colder Sat May 9 21:06:59 2009 UTC Added files: (Branch: PHP_5_3) /php-src/ext/spl/tests bug47534.phpt
Modified files: /php-src/ext/spl spl_directory.c /php-src NEWS Log: MFH: Fix bug #47534 (RecursiveDirectoryIterator::getChildren ignoring CURRENT_AS_PATHNAME) http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.c?r1=1.45.2.27.2.23.2.41&r2=1.45.2.27.2.23.2.42&diff_format=u Index: php-src/ext/spl/spl_directory.c diff -u php-src/ext/spl/spl_directory.c:1.45.2.27.2.23.2.41 php-src/ext/spl/spl_directory.c:1.45.2.27.2.23.2.42 --- php-src/ext/spl/spl_directory.c:1.45.2.27.2.23.2.41 Tue Mar 10 23:28:17 2009 +++ php-src/ext/spl/spl_directory.c Sat May 9 21:06:58 2009 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_directory.c,v 1.45.2.27.2.23.2.41 2009/03/10 23:28:17 helly Exp $ */ +/* $Id: spl_directory.c,v 1.45.2.27.2.23.2.42 2009/05/09 21:06:58 colder Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -1268,24 +1268,27 @@ spl_filesystem_object_get_file_name(intern TSRMLS_CC); - INIT_PZVAL(&zflags); - INIT_PZVAL(&zpath); - ZVAL_LONG(&zflags, intern->flags); - ZVAL_STRINGL(&zpath, intern->file_name, intern->file_name_len, 0); - - spl_instantiate_arg_ex2(Z_OBJCE_P(getThis()), &return_value, 0, &zpath, &zflags TSRMLS_CC); - - subdir = (spl_filesystem_object*)zend_object_store_get_object(return_value TSRMLS_CC); - if (subdir) { - if (intern->u.dir.sub_path && intern->u.dir.sub_path[0]) { - subdir->u.dir.sub_path_len = spprintf(&subdir->u.dir.sub_path, 0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u.dir.entry.d_name); - } else { - subdir->u.dir.sub_path_len = strlen(intern->u.dir.entry.d_name); - subdir->u.dir.sub_path = estrndup(intern->u.dir.entry.d_name, subdir->u.dir.sub_path_len); + if (SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_CURRENT_AS_PATHNAME)) { + RETURN_STRINGL(intern->file_name, intern->file_name_len, 1); + } else { + INIT_PZVAL(&zflags); + INIT_PZVAL(&zpath); + ZVAL_LONG(&zflags, intern->flags); + ZVAL_STRINGL(&zpath, intern->file_name, intern->file_name_len, 0); + spl_instantiate_arg_ex2(Z_OBJCE_P(getThis()), &return_value, 0, &zpath, &zflags TSRMLS_CC); + + subdir = (spl_filesystem_object*)zend_object_store_get_object(return_value TSRMLS_CC); + if (subdir) { + if (intern->u.dir.sub_path && intern->u.dir.sub_path[0]) { + subdir->u.dir.sub_path_len = spprintf(&subdir->u.dir.sub_path, 0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u.dir.entry.d_name); + } else { + subdir->u.dir.sub_path_len = strlen(intern->u.dir.entry.d_name); + subdir->u.dir.sub_path = estrndup(intern->u.dir.entry.d_name, subdir->u.dir.sub_path_len); + } + subdir->info_class = intern->info_class; + subdir->file_class = intern->file_class; + subdir->oth = intern->oth; } - subdir->info_class = intern->info_class; - subdir->file_class = intern->file_class; - subdir->oth = intern->oth; } } /* }}} */ http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.593&r2=1.2027.2.547.2.965.2.594&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.965.2.593 php-src/NEWS:1.2027.2.547.2.965.2.594 --- php-src/NEWS:1.2027.2.547.2.965.2.593 Sat May 9 20:42:44 2009 +++ php-src/NEWS Sat May 9 21:06:59 2009 @@ -63,6 +63,8 @@ - Fixed bug #47560 (explode()'s limit parameter odd behaviour). (Matt) - Fixed bug #47535 (Compilation failure in ps_fetch_from_1_to_8_bytes()). (Johannes) +- Fixed bug #47534 (RecursiveDiteratoryIterator::getChildren ignoring + CURRENT_AS_PATHNAME). (Etienne) - Fixed bug #47516 (nowdoc can not be embed in heredoc but can be embed in double quote). (Dmitry) - Fixed bug #47038 (Memory leak in include). (Dmitry) http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/bug47534.phpt?view=markup&rev=1.1 Index: php-src/ext/spl/tests/bug47534.phpt +++ php-src/ext/spl/tests/bug47534.phpt -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php