helly           Mon Feb  4 19:33:10 2008 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src/ext/spl    spl_directory.c spl_directory.h 
  Log:
  - MFH Really fix flag handling
  
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.c?r1=1.45.2.27.2.23.2.14&r2=1.45.2.27.2.23.2.15&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.14 
php-src/ext/spl/spl_directory.c:1.45.2.27.2.23.2.15
--- php-src/ext/spl/spl_directory.c:1.45.2.27.2.23.2.14 Mon Feb  4 18:46:13 2008
+++ php-src/ext/spl/spl_directory.c     Mon Feb  4 19:33:10 2008
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: spl_directory.c,v 1.45.2.27.2.23.2.14 2008/02/04 18:46:13 helly Exp $ 
*/
+/* $Id: spl_directory.c,v 1.45.2.27.2.23.2.15 2008/02/04 19:33:10 helly Exp $ 
*/
 
 #ifdef HAVE_CONFIG_H
 # include "config.h"
@@ -551,13 +551,15 @@
        spl_filesystem_object *intern;
        char *path;
        int parsed, len;
-       long flags = 0;
+       long flags;
 
        php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException 
TSRMLS_CC);
 
        if (ctor_flags & DIT_CTOR_FLAGS) {
+               flags = 0;
                parsed = zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, 
"s|l", &path, &len, &flags);
        } else {
+               flags = 
SPL_FILE_DIR_KEY_AS_PATHNAME|SPL_FILE_DIR_CURRENT_AS_SELF;
                parsed = zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", 
&path, &len);
        }
        if (parsed == FAILURE) {
@@ -769,7 +771,7 @@
 {
        spl_filesystem_object *intern = 
(spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
 
-       if (intern->flags & SPL_FILE_DIR_KEY_AS_FILENAME) {
+       if (SPL_FILE_DIR_KEY(intern, SPL_FILE_DIR_KEY_AS_FILENAME)) {
                RETURN_STRING(intern->u.dir.entry.d_name, 1);
        } else {
                spl_filesystem_object_get_file_name(intern TSRMLS_CC);
@@ -784,10 +786,10 @@
 {
        spl_filesystem_object *intern = 
(spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
 
-       if (intern->flags & SPL_FILE_DIR_CURRENT_AS_PATHNAME) {
+       if (SPL_FILE_DIR_CURRENT(intern, SPL_FILE_DIR_CURRENT_AS_PATHNAME)) {
                spl_filesystem_object_get_file_name(intern TSRMLS_CC);
                RETURN_STRINGL(intern->file_name, intern->file_name_len, 1);
-       } else if (intern->flags & SPL_FILE_DIR_CURRENT_AS_FILEINFO) {
+       } else if (SPL_FILE_DIR_CURRENT(intern, 
SPL_FILE_DIR_CURRENT_AS_FILEINFO)) {
                spl_filesystem_object_get_file_name(intern TSRMLS_CC);
                spl_filesystem_object_create_type(0, intern, SPL_FS_INFO, NULL, 
return_value TSRMLS_CC);
        } else {
@@ -1350,14 +1352,14 @@
        spl_filesystem_iterator *iterator = (spl_filesystem_iterator *)iter;
        spl_filesystem_object   *object   = 
spl_filesystem_iterator_to_object(iterator);
 
-       if (object->flags & SPL_FILE_DIR_CURRENT_AS_PATHNAME) {
+       if (SPL_FILE_DIR_CURRENT(object, SPL_FILE_DIR_CURRENT_AS_PATHNAME)) {
                if (!iterator->current) {
                        ALLOC_INIT_ZVAL(iterator->current);
                        spl_filesystem_object_get_file_name(object TSRMLS_CC);
                        ZVAL_STRINGL(iterator->current, object->file_name, 
object->file_name_len, 1);
                }
                *data = &iterator->current;
-       } else if (object->flags & SPL_FILE_DIR_CURRENT_AS_FILEINFO) {
+       } else if (SPL_FILE_DIR_CURRENT(object, 
SPL_FILE_DIR_CURRENT_AS_FILEINFO)) {
                if (!iterator->current) {
                        ALLOC_INIT_ZVAL(iterator->current);
                        spl_filesystem_object_get_file_name(object TSRMLS_CC);
@@ -1375,7 +1377,7 @@
 {
        spl_filesystem_object *object = 
spl_filesystem_iterator_to_object((spl_filesystem_iterator *)iter);
        
-       if (object->flags & SPL_FILE_DIR_KEY_AS_FILENAME) {
+       if (SPL_FILE_DIR_KEY(object, SPL_FILE_DIR_KEY_AS_FILENAME)) {
                *str_key_len = strlen(object->u.dir.entry.d_name) + 1;
                *str_key = estrndup(object->u.dir.entry.d_name, *str_key_len - 
1);
        } else {
@@ -2350,17 +2352,17 @@
 ZEND_END_ARG_INFO()
 
 static
-ZEND_BEGIN_ARG_INFO(arginfo_file_object_setFlags, 0) 
+ZEND_BEGIN_ARG_INFO(arginfo_file_object_setFlags, 0)
        ZEND_ARG_INFO(0, flags)
 ZEND_END_ARG_INFO()
 
 static
-ZEND_BEGIN_ARG_INFO(arginfo_file_object_setMaxLineLen, 0) 
+ZEND_BEGIN_ARG_INFO(arginfo_file_object_setMaxLineLen, 0)
        ZEND_ARG_INFO(0, max_len)
 ZEND_END_ARG_INFO()
 
 static
-ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_fgetcsv, 0, 0, 0) 
+ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_fgetcsv, 0, 0, 0)
        ZEND_ARG_INFO(0, delimiter)
        ZEND_ARG_INFO(0, enclosure)
 ZEND_END_ARG_INFO()
@@ -2470,9 +2472,9 @@
        REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, "CURRENT_MODE_MASK",  
 SPL_FILE_DIR_CURRENT_MODE_MASK);
        REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, 
"CURRENT_AS_PATHNAME", SPL_FILE_DIR_CURRENT_AS_PATHNAME);
        REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, 
"CURRENT_AS_FILEINFO", SPL_FILE_DIR_CURRENT_AS_FILEINFO);
-       REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, "CURRENT_AS_SELF",    
 0);
+       REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, "CURRENT_AS_SELF",    
 SPL_FILE_DIR_CURRENT_AS_SELF);
        REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, "KEY_MODE_MASK",      
 SPL_FILE_DIR_KEY_MODE_MASK);
-       REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, "KEY_AS_PATHNAME",    
 0);
+       REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, "KEY_AS_PATHNAME",    
 SPL_FILE_DIR_KEY_AS_PATHNAME);
        REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, "KEY_AS_FILENAME",    
 SPL_FILE_DIR_KEY_AS_FILENAME);
        REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, 
"NEW_CURRENT_AND_KEY", 
SPL_FILE_DIR_KEY_AS_FILENAME|SPL_FILE_DIR_CURRENT_AS_FILEINFO);
 
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.h?r1=1.12.2.5.2.4.2.5&r2=1.12.2.5.2.4.2.6&diff_format=u
Index: php-src/ext/spl/spl_directory.h
diff -u php-src/ext/spl/spl_directory.h:1.12.2.5.2.4.2.5 
php-src/ext/spl/spl_directory.h:1.12.2.5.2.4.2.6
--- php-src/ext/spl/spl_directory.h:1.12.2.5.2.4.2.5    Sat Feb  2 23:09:38 2008
+++ php-src/ext/spl/spl_directory.h     Mon Feb  4 19:33:10 2008
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: spl_directory.h,v 1.12.2.5.2.4.2.5 2008/02/02 23:09:38 helly Exp $ */
+/* $Id: spl_directory.h,v 1.12.2.5.2.4.2.6 2008/02/04 19:33:10 helly Exp $ */
 
 #ifndef SPL_DIRECTORY_H
 #define SPL_DIRECTORY_H
@@ -116,12 +116,16 @@
 #define SPL_FILE_OBJECT_SKIP_EMPTY         0x00000006 /* skip empty lines */
 #define SPL_FILE_OBJECT_READ_CSV           0x00000008 /* read via fgetcsv */
 
-#define SPL_FILE_DIR_CURRENT_AS_FILEINFO   0x00000010 /* make 
RecursiveDirectoryTree::current() return SplFileInfo */
+#define SPL_FILE_DIR_CURRENT_AS_FILEINFO   0x00000000 /* make 
RecursiveDirectoryTree::current() return SplFileInfo */
+#define SPL_FILE_DIR_CURRENT_AS_SELF       0x00000010 /* make 
RecursiveDirectoryTree::current() return getSelf() */
 #define SPL_FILE_DIR_CURRENT_AS_PATHNAME   0x00000020 /* make 
RecursiveDirectoryTree::current() return getPathname() */
 #define SPL_FILE_DIR_CURRENT_MODE_MASK     0x000000F0 /* mask 
RecursiveDirectoryTree::current() */
+#define SPL_FILE_DIR_CURRENT(intern,mode)  
((intern->flags&SPL_FILE_DIR_CURRENT_MODE_MASK)==mode)
 
+#define SPL_FILE_DIR_KEY_AS_PATHNAME       0x00000000 /* make 
RecursiveDirectoryTree::key() return getPathname() */
 #define SPL_FILE_DIR_KEY_AS_FILENAME       0x00000100 /* make 
RecursiveDirectoryTree::key() return getFilename() */
 #define SPL_FILE_DIR_KEY_MODE_MASK         0x00000F00 /* mask 
RecursiveDirectoryTree::key() */
+#define SPL_FILE_DIR_KEY(intern,mode)      
((intern->flags&SPL_FILE_DIR_KEY_MODE_MASK)==mode)
 
 #endif /* SPL_DIRECTORY_H */
 

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

Reply via email to