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

Reply via email to