cvs: php-src(PHP_5_3) /ext/spl spl_directory.c spl_directory.h
| From: | Marcus Boerger | Date: | Mon, 04 Feb 2008 19:33:10 +0000 |
| Subject: | cvs: php-src(PHP_5_3) /ext/spl spl_directory.c spl_directory.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-48336@lists.php.net to get a copy of this message | ||
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 */