]> granicus.if.org Git - php/commitdiff
MFH: Include other flags as well
authorEtienne Kneuss <colder@php.net>
Thu, 4 Jun 2009 14:46:26 +0000 (14:46 +0000)
committerEtienne Kneuss <colder@php.net>
Thu, 4 Jun 2009 14:46:26 +0000 (14:46 +0000)
ext/spl/spl_directory.c
ext/spl/spl_directory.h

index fe1949ef8f4c8211821543bb4940fb7ab890c538..48622945e5952851d3d6951eb3cd86f0eed2561b 100755 (executable)
@@ -1216,7 +1216,7 @@ SPL_METHOD(FilesystemIterator, getFlags)
 {
        spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
 
-       RETURN_LONG(intern->flags & (SPL_FILE_DIR_KEY_MODE_MASK | SPL_FILE_DIR_CURRENT_MODE_MASK));
+       RETURN_LONG(intern->flags & (SPL_FILE_DIR_KEY_MODE_MASK | SPL_FILE_DIR_CURRENT_MODE_MASK | SPL_FILE_DIR_OTHERS_MASK));
 } /* }}} */
 
 /* {{{ proto void FilesystemIterator::setFlags(long $flags)
@@ -1228,8 +1228,8 @@ SPL_METHOD(FilesystemIterator, setFlags)
 
        zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &flags);
 
-       intern->flags &= ~(SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK);
-       intern->flags |= ((SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK) & flags);
+       intern->flags &= ~(SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_MASK);
+       intern->flags |= ((SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_MASK) & flags);
 } /* }}} */
 
 /* {{{ proto bool RecursiveDirectoryIterator::hasChildren([bool $allow_links = false])
index 1d3857b9054cf680419104387307373940787f7c..27b80f9b09de8a812f0983d6bba5c3b764783e72 100755 (executable)
@@ -134,6 +134,7 @@ static inline spl_filesystem_object* spl_filesystem_iterator_to_object(spl_files
 
 #define SPL_FILE_DIR_SKIPDOTS              0x00001000 /* Tells whether it should skip dots or not */
 #define SPL_FILE_DIR_UNIXPATHS             0x00002000 /* Whether to unixify path separators */
+#define SPL_FILE_DIR_OTHERS_MASK           0x00003000 /* mask used for get/setFlags */
 
 #endif /* SPL_DIRECTORY_H */