helly           Fri Jan 19 10:19:51 2007 UTC

  Modified files:              
    /php-src    unicode-progress.txt 
    /php-src/ext/spl    spl_directory.c spl_iterators.c 
  Log:
  - Update unicode progress on SPL, looks like nearly done, actually all is 
    unicode safe by now but a few things need to be added and a few problems
    be clarified.
  # I wonder why my keyboard has space issues...it should be out of Us by now
  
  
http://cvs.php.net/viewvc.cgi/php-src/unicode-progress.txt?r1=1.72&r2=1.73&diff_format=u
Index: php-src/unicode-progress.txt
diff -u php-src/unicode-progress.txt:1.72 php-src/unicode-progress.txt:1.73
--- php-src/unicode-progress.txt:1.72   Fri Dec 22 21:38:12 2006
+++ php-src/unicode-progress.txt        Fri Jan 19 10:19:50 2007
@@ -42,6 +42,18 @@
   Status: In Progress
   (Pierre)
 
+ext/spl
+------------
+  Status: In progress
+  zend_filehandle needs to operate on zstr. Once we have that we can finalize
+  the internal c-function spl_autoload().
+
+  RegExIterator might need to deal with regex provided in unicode.
+
+  SplFileObject needs toeithe deal withunicode files or a derived class must
+  be created for that. Either way streams cannot deal with unicode line
+  endings.
+
 ext/zip
 ------------
   Status: done.
@@ -620,6 +632,77 @@
     ucfirst()
     ucwords()
 
+ext/spl
+-----------
+  Completed:
+    php_spl.c
+      class_implements()
+      class_parents()
+      spl_autoload()
+      spl_autoload_call()
+      spl_autoload_extensions()
+      spl_autoload_functions()
+      spl_autoload_register()
+      spl_autoload_unregister()
+      spl_classes()
+      spl_object_hash()
+    
+    spl_array.c
+      class ArrayObject
+      class ArrayIterator
+      class RecursiveArrayIterator
+
+    spl_directory.c
+      class SplFileInfo
+      class DirectoryIterator
+      class RecursiveDirectoryIterator
+      class SplFileObject
+      class SplTempFileObject
+
+    spl_exceptions.c
+      class BadFunctionCallException
+      class BadMethodCallException
+      class DomainException
+      class InvalidArgumentException
+      class LengthException
+      class LogicException
+      class OutOfBoundsException
+      class OutOfRangeException
+      class OverflowException
+      class RangeException
+      class RuntimeException
+      class UnderflowException
+      class UnexpectedValueException
+
+    spl_iterators.c
+      iterator_to_array()
+      iterator_count()
+      iterator_apply()
+      class RecursiveIteratorIterator
+      class AppendIterator
+      class ArrayIterator
+      class ArrayObject
+      class CachingIterator
+      class DirectoryIterator
+      class EmptyIterator
+      class FilterIterator
+      class InfiniteIterator
+      class IteratorIterator
+      class LimitIterator
+      class NoRewindIterator
+      class ParentIterator
+      class RecursiveCachingIterator
+      class RecursiveFilterIterator
+      class RecursiveIteratorIterator
+      class RecursiveRegexIterator
+      class RegexIterator
+
+    spl_observer.c
+      class SplObjectStorage
+
+    spl_sxe.c
+      class SimpleXMLIteraotr
+
 ext/sysvmsg
 -----------
   Completed:
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.c?r1=1.115&r2=1.116&diff_format=u
Index: php-src/ext/spl/spl_directory.c
diff -u php-src/ext/spl/spl_directory.c:1.115 
php-src/ext/spl/spl_directory.c:1.116
--- php-src/ext/spl/spl_directory.c:1.115       Fri Jan 19 00:36:11 2007
+++ php-src/ext/spl/spl_directory.c     Fri Jan 19 10:19:50 2007
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: spl_directory.c,v 1.115 2007/01/19 00:36:11 helly Exp $ */
+/* $Id: spl_directory.c,v 1.116 2007/01/19 10:19:50 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 # include "config.h"
@@ -456,7 +456,7 @@
        return NULL;
 } /* }}} */
 
-/* {{{ proto void DirectoryIterator::__construct(string path)
+/* {{{ proto void DirectoryIterator::__construct(string path) U
  Cronstructs a new dir iterator from a path. */
 SPL_METHOD(DirectoryIterator, __construct)
 {
@@ -489,7 +489,7 @@
 }
 /* }}} */
 
-/* {{{ proto void DirectoryIterator::rewind()
+/* {{{ proto void DirectoryIterator::rewind() U
    Rewind dir back to the start */
 SPL_METHOD(DirectoryIterator, rewind)
 {
@@ -505,7 +505,7 @@
 }
 /* }}} */
 
-/* {{{ proto string DirectoryIterator::key()
+/* {{{ proto string DirectoryIterator::key() U
    Return current dir entry */
 SPL_METHOD(DirectoryIterator, key)
 {
@@ -519,7 +519,7 @@
 }
 /* }}} */
 
-/* {{{ proto DirectoryIterator DirectoryIterator::current()
+/* {{{ proto DirectoryIterator DirectoryIterator::current() U
    Return this (needed for Iterator interface) */
 SPL_METHOD(DirectoryIterator, current)
 {
@@ -527,7 +527,7 @@
 }
 /* }}} */
 
-/* {{{ proto void DirectoryIterator::next()
+/* {{{ proto void DirectoryIterator::next() U
    Move to next entry */
 SPL_METHOD(DirectoryIterator, next)
 {
@@ -544,7 +544,7 @@
 }
 /* }}} */
 
-/* {{{ proto string DirectoryIterator::valid()
+/* {{{ proto string DirectoryIterator::valid() U
    Check whether dir contains more entries */
 SPL_METHOD(DirectoryIterator, valid)
 {
@@ -554,7 +554,7 @@
 }
 /* }}} */
 
-/* {{{ proto string SplFileInfo::getPath()
+/* {{{ proto string SplFileInfo::getPath() U
    Return the path */
 SPL_METHOD(SplFileInfo, getPath)
 {
@@ -564,7 +564,7 @@
 }
 /* }}} */
 
-/* {{{ proto string SplFileInfo::getFilename()
+/* {{{ proto string SplFileInfo::getFilename() U
    Return filename only */
 SPL_METHOD(SplFileInfo, getFilename)
 {
@@ -584,7 +584,7 @@
 }
 /* }}} */
 
-/* {{{ proto string DirectoryIterator::getFilename()
+/* {{{ proto string DirectoryIterator::getFilename() U
    Return filename of current dir entry */
 SPL_METHOD(DirectoryIterator, getFilename)
 {
@@ -594,7 +594,7 @@
 }
 /* }}} */
 
-/* {{{ proto string SplFileInfo::getPathname()
+/* {{{ proto string SplFileInfo::getPathname() U
    Return path and filename */
 SPL_METHOD(SplFileInfo, getPathname)
 {
@@ -614,7 +614,7 @@
 }
 /* }}} */
 
-/* {{{ proto string RecursiveDirectoryIterator::key()
+/* {{{ proto string RecursiveDirectoryIterator::key() U
    Return getPathname() or getFilename() depending on flags */
 SPL_METHOD(RecursiveDirectoryIterator, key)
 {
@@ -629,7 +629,7 @@
 }
 /* }}} */
 
-/* {{{ proto string RecursiveDirectoryIterator::current()
+/* {{{ proto string RecursiveDirectoryIterator::current() U
    Return getFilename(), getFileInfo() or $this depending on flags */
 SPL_METHOD(RecursiveDirectoryIterator, current)
 {
@@ -648,7 +648,7 @@
 }
 /* }}} */
 
-/* {{{ proto bool DirectoryIterator::isDot()
+/* {{{ proto bool DirectoryIterator::isDot() U
    Returns true if current entry is '.' or  '..' */
 SPL_METHOD(DirectoryIterator, isDot)
 {
@@ -658,7 +658,7 @@
 }
 /* }}} */
 
-/* {{{ proto void SplFileInfo::__construct(string file_name)
+/* {{{ proto void SplFileInfo::__construct(string file_name) U
  Cronstructs a new SplFileInfo from a path. */
 /* php_set_error_handling() is used to throw exceptions in case
    the constructor fails. Here we use this to ensure the object
@@ -702,82 +702,82 @@
 }
 /* }}} */
 
-/* {{{ proto int SplFileInfo::getPerms()
+/* {{{ proto int SplFileInfo::getPerms() U
    Get file permissions */
 FileInfoFunction(getPerms, FS_PERMS)
 /* }}} */
 
-/* {{{ proto int SplFileInfo::getInode()
+/* {{{ proto int SplFileInfo::getInode() U
    Get file inode */
 FileInfoFunction(getInode, FS_INODE)
 /* }}} */
 
-/* {{{ proto int SplFileInfo::getSize()
+/* {{{ proto int SplFileInfo::getSize() U
    Get file size */
 FileInfoFunction(getSize, FS_SIZE)
 /* }}} */
 
-/* {{{ proto int SplFileInfo::getOwner()
+/* {{{ proto int SplFileInfo::getOwner() U
    Get file owner */
 FileInfoFunction(getOwner, FS_OWNER)
 /* }}} */
 
-/* {{{ proto int SplFileInfo::getGroup()
+/* {{{ proto int SplFileInfo::getGroup() U
    Get file group */
 FileInfoFunction(getGroup, FS_GROUP)
 /* }}} */
 
-/* {{{ proto int SplFileInfo::getATime()
+/* {{{ proto int SplFileInfo::getATime() U
    Get last access time of file */
 FileInfoFunction(getATime, FS_ATIME)
 /* }}} */
 
-/* {{{ proto int SplFileInfo::getMTime()
+/* {{{ proto int SplFileInfo::getMTime() U
    Get last modification time of file */
 FileInfoFunction(getMTime, FS_MTIME)
 /* }}} */
 
-/* {{{ proto int SplFileInfo::getCTime()
+/* {{{ proto int SplFileInfo::getCTime() U
    Get inode modification time of file */
 FileInfoFunction(getCTime, FS_CTIME)
 /* }}} */
 
-/* {{{ proto string SplFileInfo::getType()
+/* {{{ proto string SplFileInfo::getType() U
    Get file type */
 FileInfoFunction(getType, FS_TYPE)
 /* }}} */
 
-/* {{{ proto bool SplFileInfo::isWritable()
+/* {{{ proto bool SplFileInfo::isWritable() U
    Returns true if file can be written */
 FileInfoFunction(isWritable, FS_IS_W)
 /* }}} */
 
-/* {{{ proto bool SplFileInfo::isReadable()
+/* {{{ proto bool SplFileInfo::isReadable() U
    Returns true if file can be read */
 FileInfoFunction(isReadable, FS_IS_R)
 /* }}} */
 
-/* {{{ proto bool SplFileInfo::isExecutable()
+/* {{{ proto bool SplFileInfo::isExecutable() U
    Returns true if file is executable */
 FileInfoFunction(isExecutable, FS_IS_X)
 /* }}} */
 
-/* {{{ proto bool SplFileInfo::isFile()
+/* {{{ proto bool SplFileInfo::isFile() U
    Returns true if file is a regular file */
 FileInfoFunction(isFile, FS_IS_FILE)
 /* }}} */
 
-/* {{{ proto bool SplFileInfo::isDir()
+/* {{{ proto bool SplFileInfo::isDir() U
    Returns true if file is directory */
 FileInfoFunction(isDir, FS_IS_DIR)
 /* }}} */
 
-/* {{{ proto bool SplFileInfo::isLink()
+/* {{{ proto bool SplFileInfo::isLink() U
    Returns true if file is symbolic link */
 FileInfoFunction(isLink, FS_IS_LINK)
 /* }}} */
 
-/* {{{ proto SplFileObject SplFileInfo::openFile([string mode = 'r' [, bool 
use_include_path  [, resource context]]])
+/* {{{ proto SplFileObject SplFileInfo::openFile([string mode = 'r' [, bool 
use_include_path  [, resource context]]]) U
    Open the current file */
 SPL_METHOD(SplFileInfo, openFile)
 {
@@ -787,7 +787,7 @@
 }
 /* }}} */
 
-/* {{{ proto void SplFileInfo::setFileClass([string class_name])
+/* {{{ proto void SplFileInfo::setFileClass([string class_name]) U
    Class to use in openFile() */
 SPL_METHOD(SplFileInfo, setFileClass)
 {
@@ -804,7 +804,7 @@
 }
 /* }}} */
 
-/* {{{ proto void SplFileInfo::setInfoClass([string class_name])
+/* {{{ proto void SplFileInfo::setInfoClass([string class_name]) U
    Class to use in getFileInfo(), getPathInfo() */
 SPL_METHOD(SplFileInfo, setInfoClass)
 {
@@ -821,7 +821,7 @@
 }
 /* }}} */
 
-/* {{{ proto SplFileInfo SplFileInfo::getFileInfo([string $class_name])
+/* {{{ proto SplFileInfo SplFileInfo::getFileInfo([string $class_name]) U
    Get/copy file info */
 SPL_METHOD(SplFileInfo, getFileInfo)
 {
@@ -838,7 +838,7 @@
 }
 /* }}} */
 
-/* {{{ proto SplFileInfo SplFileInfo::getPathInfo([string $class_name])
+/* {{{ proto SplFileInfo SplFileInfo::getPathInfo([string $class_name]) U
    Get/copy file info */
 SPL_METHOD(SplFileInfo, getPathInfo)
 {
@@ -855,7 +855,7 @@
 }
 /* }}} */
 
-/* {{{ proto void RecursiveDirectoryIterator::__construct(string path [, int 
flags])
+/* {{{ proto void RecursiveDirectoryIterator::__construct(string path [, int 
flags]) U
  Cronstructs a new dir iterator from a path. */
 SPL_METHOD(RecursiveDirectoryIterator, __construct)
 {
@@ -881,7 +881,7 @@
 }
 /* }}} */
 
-/* {{{ proto void RecursiveDirectoryIterator::rewind()
+/* {{{ proto void RecursiveDirectoryIterator::rewind() U
    Rewind dir back to the start */
 SPL_METHOD(RecursiveDirectoryIterator, rewind)
 {
@@ -899,7 +899,7 @@
 }
 /* }}} */
 
-/* {{{ proto void RecursiveDirectoryIterator::next()
+/* {{{ proto void RecursiveDirectoryIterator::next() U
    Move to next entry */
 SPL_METHOD(RecursiveDirectoryIterator, next)
 {
@@ -918,7 +918,7 @@
 }
 /* }}} */
 
-/* {{{ proto bool RecursiveDirectoryIterator::hasChildren([bool $allow_links = 
false])
+/* {{{ proto bool RecursiveDirectoryIterator::hasChildren([bool $allow_links = 
false]) U
    Returns whether current entry is a directory and not '.' or '..' */
 SPL_METHOD(RecursiveDirectoryIterator, hasChildren)
 {
@@ -943,7 +943,7 @@
 }
 /* }}} */
 
-/* {{{ proto RecursiveDirectoryIterator DirectoryIterator::getChildren()
+/* {{{ proto RecursiveDirectoryIterator DirectoryIterator::getChildren() U
    Returns an iterator for the current entry if it is a directory */
 SPL_METHOD(RecursiveDirectoryIterator, getChildren)
 {
@@ -976,7 +976,7 @@
 }
 /* }}} */
 
-/* {{{ proto void RecursiveDirectoryIterator::getSubPath()
+/* {{{ proto void RecursiveDirectoryIterator::getSubPath() U
    Get sub path */
 SPL_METHOD(RecursiveDirectoryIterator, getSubPath)
 {
@@ -990,7 +990,7 @@
 }
 /* }}} */
 
-/* {{{ proto void RecursiveDirectoryIterator::getSubPathname()
+/* {{{ proto void RecursiveDirectoryIterator::getSubPathname() U
    Get sub path and file name */
 SPL_METHOD(RecursiveDirectoryIterator, getSubPathname)
 {
@@ -1601,7 +1601,7 @@
        }
 } /* }}} */
 
-/* {{{ proto void SplFileObject::__construct(string filename [, string mode = 
'r' [, bool use_include_path  [, resource context]]]])
+/* {{{ proto void SplFileObject::__construct(string filename [, string mode = 
'r' [, bool use_include_path  [, resource context]]]]) U
    Construct a new file object */
 SPL_METHOD(SplFileObject, __construct)
 {
@@ -1653,7 +1653,7 @@
        php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto void SplTempFileObject::__construct([int max_memory])
+/* {{{ proto void SplTempFileObject::__construct([int max_memory]) U
    Construct a new temp file object */
 SPL_METHOD(SplTempFileObject, __construct)
 {
@@ -1694,7 +1694,7 @@
        php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto void SplFileObject::rewind()
+/* {{{ proto void SplFileObject::rewind() U
    Rewind the file and read the first line */
 SPL_METHOD(SplFileObject, rewind)
 {
@@ -1703,7 +1703,7 @@
        spl_filesystem_file_rewind(getThis(), intern TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto void SplFileObject::eof()
+/* {{{ proto void SplFileObject::eof() U
    Return whether end of file is reached */
 SPL_METHOD(SplFileObject, eof)
 {
@@ -1712,7 +1712,7 @@
        RETURN_BOOL(php_stream_eof(intern->u.file.stream));
 } /* }}} */
 
-/* {{{ proto void SplFileObject::valid()
+/* {{{ proto void SplFileObject::valid() U
    Return !eof() */
 SPL_METHOD(SplFileObject, valid)
 {
@@ -1725,7 +1725,7 @@
        }
 } /* }}} */
 
-/* {{{ proto string SplFileObject::fgets()
+/* {{{ proto string SplFileObject::fgets() U
    Rturn next line from file */
 SPL_METHOD(SplFileObject, fgets)
 {
@@ -1737,7 +1737,7 @@
        RETURN_STRINGL(intern->u.file.current_line, 
intern->u.file.current_line_len, 1);
 } /* }}} */
 
-/* {{{ proto string SplFileObject::current()
+/* {{{ proto string SplFileObject::current() U
    Return current line from file */
 SPL_METHOD(SplFileObject, current)
 {
@@ -1754,7 +1754,7 @@
        RETURN_FALSE;
 } /* }}} */
 
-/* {{{ proto int SplFileObject::key()
+/* {{{ proto int SplFileObject::key() U
    Return line number */
 SPL_METHOD(SplFileObject, key)
 {
@@ -1767,7 +1767,7 @@
        RETURN_LONG(intern->u.file.current_line_num);
 } /* }}} */
 
-/* {{{ proto void SplFileObject::next()
+/* {{{ proto void SplFileObject::next() U
    Read next line */
 SPL_METHOD(SplFileObject, next)
 {
@@ -1780,7 +1780,7 @@
        intern->u.file.current_line_num++;
 } /* }}} */
 
-/* {{{ proto void SplFileObject::setFlags(int flags)
+/* {{{ proto void SplFileObject::setFlags(int flags) U
    Set file handling flags */
 SPL_METHOD(SplFileObject, setFlags)
 {
@@ -1789,7 +1789,7 @@
        zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &intern->flags);
 } /* }}} */
 
-/* {{{ proto int SplFileObject::getFlags()
+/* {{{ proto int SplFileObject::getFlags() U
    Get file handling flags */
 SPL_METHOD(SplFileObject, getFlags)
 {
@@ -1798,7 +1798,7 @@
        RETURN_LONG(intern->flags);
 } /* }}} */
 
-/* {{{ proto void SplFileObject::setMaxLineLen(int max_len)
+/* {{{ proto void SplFileObject::setMaxLineLen(int max_len) U
    Set maximum line length */
 SPL_METHOD(SplFileObject, setMaxLineLen)
 {
@@ -1818,7 +1818,7 @@
        intern->u.file.max_line_len = max_len;
 } /* }}} */
 
-/* {{{ proto int SplFileObject::getMaxLineLen()
+/* {{{ proto int SplFileObject::getMaxLineLen() U
    Get maximum line length */
 SPL_METHOD(SplFileObject, getMaxLineLen)
 {
@@ -1827,14 +1827,14 @@
        RETURN_LONG((long)intern->u.file.max_line_len);
 } /* }}} */
 
-/* {{{ proto bool SplFileObject::hasChildren()
+/* {{{ proto bool SplFileObject::hasChildren() U
    Return false */
 SPL_METHOD(SplFileObject, hasChildren)
 {
        RETURN_FALSE;
 } /* }}} */
 
-/* {{{ proto bool SplFileObject::getChildren()
+/* {{{ proto bool SplFileObject::getChildren() U
    Read NULL */
 SPL_METHOD(SplFileObject, getChildren)
 {
@@ -1850,7 +1850,7 @@
 }
 /* }}} */
 
-/* {{{ proto array SplFileObject::fgetcsv([string delimiter [, string 
enclosure]])
+/* {{{ proto array SplFileObject::fgetcsv([string delimiter [, string 
enclosure]]) U
    Return current line as csv */
 SPL_METHOD(SplFileObject, fgetcsv)
 {
@@ -1919,7 +1919,7 @@
 }
 /* }}} */
 
-/* {{{ proto array SplFileObject::getCsvControl()
+/* {{{ proto array SplFileObject::getCsvControl() U
    Get the delimiter and enclosure character used in fgetcsv */
 SPL_METHOD(SplFileObject, getCsvControl)
 {
@@ -1943,7 +1943,7 @@
 FileFunction(flock)
 /* }}} */
 
-/* {{{ proto bool SplFileObject::fflush()
+/* {{{ proto bool SplFileObject::fflush() U
    Flush the file */
 SPL_METHOD(SplFileObject, fflush)
 {
@@ -1953,7 +1953,7 @@
 } /* }}} */
 
 
-/* {{{ proto int SplFileObject::ftell()
+/* {{{ proto int SplFileObject::ftell() U
    Return current file position */
 SPL_METHOD(SplFileObject, ftell)
 {
@@ -1967,7 +1967,7 @@
        }
 } /* }}} */
 
-/* {{{ proto int SplFileObject::fseek(int pos [, int whence = SEEK_SET])
+/* {{{ proto int SplFileObject::fseek(int pos [, int whence = SEEK_SET]) U
    Return current file position */
 SPL_METHOD(SplFileObject, fseek)
 {
@@ -1982,7 +1982,7 @@
        RETURN_LONG(php_stream_seek(intern->u.file.stream, pos, whence));
 } /* }}} */
 
-/* {{{ proto int SplFileObject::fgetc()
+/* {{{ proto int SplFileObject::fgetc() U
    Get a character form the file */
 SPL_METHOD(SplFileObject, fgetc)
 {
@@ -2007,7 +2007,7 @@
        }
 } /* }}} */
 
-/* {{{ proto string SplFileObject::fgetss([string allowable_tags])
+/* {{{ proto string SplFileObject::fgetss([string allowable_tags]) U
    Get a line from file pointer and strip HTML tags */
 SPL_METHOD(SplFileObject, fgetss)
 {
@@ -2024,7 +2024,7 @@
        zval_ptr_dtor(&arg2);
 } /* }}} */
 
-/* {{{ proto int SplFileObject::fpassthru()
+/* {{{ proto int SplFileObject::fpassthru() U
    Output all remaining data from a file pointer */
 SPL_METHOD(SplFileObject, fpassthru)
 {
@@ -2033,7 +2033,7 @@
        RETURN_LONG(php_stream_passthru(intern->u.file.stream));
 } /* }}} */
 
-/* {{{ proto bool SplFileObject::fscanf(string format [, string ...])
+/* {{{ proto bool SplFileObject::fscanf(string format [, string ...]) U
    Implements a mostly ANSI compatible fscanf() */
 SPL_METHOD(SplFileObject, fscanf)
 {
@@ -2046,7 +2046,7 @@
 }
 /* }}} */
 
-/* {{{ proto mixed SplFileObject::fwrite(string str [, int length])
+/* {{{ proto mixed SplFileObject::fwrite(string str [, int length]) U
    Binary-safe file write */
 SPL_METHOD(SplFileObject, fwrite)
 {
@@ -2074,7 +2074,7 @@
 FileFunction(fstat)
 /* }}} */
 
-/* {{{ proto bool SplFileObject::ftruncate(int size)
+/* {{{ proto bool SplFileObject::ftruncate(int size) U
    Truncate file to 'size' length */
 SPL_METHOD(SplFileObject, ftruncate)
 {
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_iterators.c?r1=1.156&r2=1.157&diff_format=u
Index: php-src/ext/spl/spl_iterators.c
diff -u php-src/ext/spl/spl_iterators.c:1.156 
php-src/ext/spl/spl_iterators.c:1.157
--- php-src/ext/spl/spl_iterators.c:1.156       Mon Jan  1 09:29:29 2007
+++ php-src/ext/spl/spl_iterators.c     Fri Jan 19 10:19:50 2007
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: spl_iterators.c,v 1.156 2007/01/01 09:29:29 sebastian Exp $ */
+/* $Id: spl_iterators.c,v 1.157 2007/01/19 10:19:50 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 # include "config.h"
@@ -407,7 +407,7 @@
        spl_recursive_it_rewind
 };
 
-/* {{{ proto void 
RecursiveIteratorIterator::__construct(RecursiveIterator|IteratorAggregate it 
[, int mode = RIT_LEAVES_ONLY [, int flags = 0]]) throws 
InvalidArgumentException
+/* {{{ proto void 
RecursiveIteratorIterator::__construct(RecursiveIterator|IteratorAggregate it 
[, int mode = RIT_LEAVES_ONLY [, int flags = 0]]) throws 
InvalidArgumentException U
    Creates a RecursiveIteratorIterator from a RecursiveIterator. */
 SPL_METHOD(RecursiveIteratorIterator, __construct)
 {
@@ -487,7 +487,7 @@
        php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto void RecursiveIteratorIterator::rewind()
+/* {{{ proto void RecursiveIteratorIterator::rewind() U
    Rewind the iterator to the first element of the top level inner iterator. */
 SPL_METHOD(RecursiveIteratorIterator, rewind)
 {
@@ -496,7 +496,7 @@
        spl_recursive_it_rewind_ex(object, getThis() TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto bool RecursiveIteratorIterator::valid()
+/* {{{ proto bool RecursiveIteratorIterator::valid() U
    Check whether the current position is valid */
 SPL_METHOD(RecursiveIteratorIterator, valid)
 {
@@ -505,7 +505,7 @@
        RETURN_BOOL(spl_recursive_it_valid_ex(object, getThis() TSRMLS_CC) == 
SUCCESS);
 } /* }}} */
 
-/* {{{ proto mixed RecursiveIteratorIterator::key()
+/* {{{ proto mixed RecursiveIteratorIterator::key() U
    Access the current key */
 SPL_METHOD(RecursiveIteratorIterator, key)
 {
@@ -535,7 +535,7 @@
        }
 } /* }}} */
 
-/* {{{ proto mixed RecursiveIteratorIterator::current()
+/* {{{ proto mixed RecursiveIteratorIterator::current() U
    Access the current element value */
 SPL_METHOD(RecursiveIteratorIterator, current)
 {
@@ -547,7 +547,7 @@
        RETURN_ZVAL(*data, 1, 0);
 } /* }}} */
 
-/* {{{ proto void RecursiveIteratorIterator::next()
+/* {{{ proto void RecursiveIteratorIterator::next() U
    Move forward to the next element */
 SPL_METHOD(RecursiveIteratorIterator, next)
 {
@@ -556,7 +556,7 @@
        spl_recursive_it_move_forward_ex(object, getThis() TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto int RecursiveIteratorIterator::getDepth()
+/* {{{ proto int RecursiveIteratorIterator::getDepth() U
    Get the current depth of the recursive iteration */
 SPL_METHOD(RecursiveIteratorIterator, getDepth)
 {
@@ -565,7 +565,7 @@
        RETURN_LONG(object->level);
 } /* }}} */
 
-/* {{{ proto RecursiveIterator RecursiveIteratorIterator::getSubIterator([int 
level])
+/* {{{ proto RecursiveIterator RecursiveIteratorIterator::getSubIterator([int 
level]) U
    The current active sub iterator or the iterator at specified level */
 SPL_METHOD(RecursiveIteratorIterator, getSubIterator)
 {
@@ -581,7 +581,7 @@
        RETURN_ZVAL(object->iterators[level].zobject, 1, 0);
 } /* }}} */
 
-/* {{{ proto RecursiveIterator RecursiveIteratorIterator::getInnerIterator()
+/* {{{ proto RecursiveIterator RecursiveIteratorIterator::getInnerIterator() U
    The current active sub iterator */
 SPL_METHOD(RecursiveIteratorIterator, getInnerIterator)
 {
@@ -591,21 +591,21 @@
        RETURN_ZVAL(object->iterators[level].zobject, 1, 0);
 } /* }}} */
 
-/* {{{ proto RecursiveIterator RecursiveIteratorIterator::beginIteration()
+/* {{{ proto RecursiveIterator RecursiveIteratorIterator::beginIteration() U
    Called when iteration begins (after first rewind() call) */
 SPL_METHOD(RecursiveIteratorIterator, beginIteration)
 {
        /* nothing to do */
 } /* }}} */
 
-/* {{{ proto RecursiveIterator RecursiveIteratorIterator::endIteration()
+/* {{{ proto RecursiveIterator RecursiveIteratorIterator::endIteration() U
    Called when iteration ends (when valid() first returns false */
 SPL_METHOD(RecursiveIteratorIterator, endIteration)
 {
        /* nothing to do */
 } /* }}} */
 
-/* {{{ proto bool RecursiveIteratorIterator::callHasChildren()
+/* {{{ proto bool RecursiveIteratorIterator::callHasChildren() U
    Called for each element to test whether it has children */
 SPL_METHOD(RecursiveIteratorIterator, callHasChildren)
 {
@@ -626,7 +626,7 @@
        }
 } /* }}} */
 
-/* {{{ proto RecursiveIterator RecursiveIteratorIterator::callGetChildren()
+/* {{{ proto RecursiveIterator RecursiveIteratorIterator::callGetChildren() U
    Return children of current element */
 SPL_METHOD(RecursiveIteratorIterator, callGetChildren)
 {
@@ -645,28 +645,28 @@
        }
 } /* }}} */
 
-/* {{{ proto void RecursiveIteratorIterator::beginChildren()
+/* {{{ proto void RecursiveIteratorIterator::beginChildren() U
    Called when recursing one level down */
 SPL_METHOD(RecursiveIteratorIterator, beginChildren)
 {
        /* nothing to do */
 } /* }}} */
 
-/* {{{ proto void RecursiveIteratorIterator::endChildren()
+/* {{{ proto void RecursiveIteratorIterator::endChildren() U
    Called when end recursing one level */
 SPL_METHOD(RecursiveIteratorIterator, endChildren)
 {
        /* nothing to do */
 } /* }}} */
 
-/* {{{ proto void RecursiveIteratorIterator::nextElement()
+/* {{{ proto void RecursiveIteratorIterator::nextElement() U
    Called when the next element is available */
 SPL_METHOD(RecursiveIteratorIterator, nextElement)
 {
        /* nothing to do */
 } /* }}} */
 
-/* {{{ proto void RecursiveIteratorIterator::setMaxDepth([$max_depth = -1])
+/* {{{ proto void RecursiveIteratorIterator::setMaxDepth([$max_depth = -1]) U
    Set the maximum allowed depth (or any depth if pmax_depth = -1] */
 SPL_METHOD(RecursiveIteratorIterator, setMaxDepth)
 {
@@ -683,7 +683,7 @@
        object->max_depth = max_depth;
 } /* }}} */
 
-/* {{{ proto int|false RecursiveIteratorIterator::getMaxDepth()
+/* {{{ proto int|false RecursiveIteratorIterator::getMaxDepth() U
    Return the maximum accepted depth or false if any depth is allowed */
 SPL_METHOD(RecursiveIteratorIterator, getMaxDepth)
 {
@@ -956,6 +956,7 @@
                        char * class_name;
                        int class_name_len;
 
+                       /* UTODO: class_name must be zstr */
                        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, 
"O|s", &zobject, ce_inner, &class_name, &class_name_len) == FAILURE) {
                                php_set_error_handling(EH_NORMAL, NULL 
TSRMLS_CC);
                                return NULL;
@@ -1010,6 +1011,7 @@
                        intern->u.regex.use_flags = ZEND_NUM_ARGS() >= 5;
                        intern->u.regex.flags = 0;
                        intern->u.regex.preg_flags = 0;
+                       /* UTODO: do we need tocare if regex unicode? */
                        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, 
"Os|lll", &zobject, ce_inner, &regex, &regex_len, &mode, 
&intern->u.regex.flags, &intern->u.regex.preg_flags) == FAILURE) {
                                php_set_error_handling(EH_NORMAL, NULL 
TSRMLS_CC);
                                return NULL;
@@ -1053,17 +1055,17 @@
        return intern;
 }
 
-/* {{{ proto void FilterIterator::__construct(Iterator it) 
+/* {{{ proto void FilterIterator::__construct(Iterator it) U
    Create an Iterator from another iterator */
 SPL_METHOD(FilterIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
spl_ce_FilterIterator, zend_ce_iterator, DIT_FilterIterator);
 } /* }}} */
 
-/* {{{ proto Iterator FilterIterator::getInnerIterator() 
-       proto Iterator CachingIterator::getInnerIterator()
-       proto Iterator LimitIterator::getInnerIterator()
-       proto Iterator ParentIterator::getInnerIterator()
+/* {{{ proto Iterator FilterIterator::getInnerIterator() U
+       proto Iterator CachingIterator::getInnerIterator() U
+       proto Iterator LimitIterator::getInnerIterator() U
+       proto Iterator ParentIterator::getInnerIterator() U
    Get the inner iterator */
 SPL_METHOD(dual_it, getInnerIterator)
 {
@@ -1169,10 +1171,10 @@
        spl_dual_it_fetch(intern, 1 TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto bool FilterIterator::valid()
-       proto bool ParentIterator::valid()
-       proto bool IteratorIterator::valid()
-       proto bool NoRewindIterator::valid()
+/* {{{ proto bool FilterIterator::valid() U
+       proto bool ParentIterator::valid() U
+       proto bool IteratorIterator::valid() U
+       proto bool NoRewindIterator::valid() U
    Check whether the current element is valid */
 SPL_METHOD(dual_it, valid)
 {
@@ -1183,13 +1185,13 @@
        RETURN_BOOL(intern->current.data);
 } /* }}} */
 
-/* {{{ proto mixed FilterIterator::key()
-       proto mixed CachingIterator::key()
-       proto mixed LimitIterator::key()
-       proto mixed ParentIterator::key()
-       proto mixed IteratorIterator::key()
-       proto mixed NoRewindIterator::key()
-       proto mixed AppendIterator::key()
+/* {{{ proto mixed FilterIterator::key() U
+       proto mixed CachingIterator::key() U
+       proto mixed LimitIterator::key() U
+       proto mixed ParentIterator::key() U
+       proto mixed IteratorIterator::key() U
+       proto mixed NoRewindIterator::key() U
+       proto mixed AppendIterator::key() U
    Get the current key */
 SPL_METHOD(dual_it, key)
 {
@@ -1209,13 +1211,13 @@
        RETURN_NULL();
 } /* }}} */
 
-/* {{{ proto mixed FilterIterator::current()
-       proto mixed CachingIterator::current()
-       proto mixed LimitIterator::current()
-       proto mixed ParentIterator::current()
-       proto mixed IteratorIterator::current()
-       proto mixed NoRewindIterator::current()
-       proto mixed AppendIterator::current()
+/* {{{ proto mixed FilterIterator::current() U
+       proto mixed CachingIterator::current() U
+       proto mixed LimitIterator::current() U
+       proto mixed ParentIterator::current() U
+       proto mixed IteratorIterator::current() U
+       proto mixed NoRewindIterator::current() U
+       proto mixed AppendIterator::current() U
    Get the current element value */
 SPL_METHOD(dual_it, current)
 {
@@ -1230,9 +1232,9 @@
        }
 } /* }}} */
 
-/* {{{ proto void ParentIterator::next()
-       proto void IteratorIterator::next()
-       proto void NoRewindIterator::next()
+/* {{{ proto void ParentIterator::next() U
+       proto void IteratorIterator::next() U
+       proto void NoRewindIterator::next() U
    Move the iterator forward */
 SPL_METHOD(dual_it, next)
 {
@@ -1277,7 +1279,7 @@
        spl_filter_it_fetch(zthis, intern TSRMLS_CC);
 }
 
-/* {{{ proto void FilterIterator::rewind()
+/* {{{ proto void FilterIterator::rewind() U
    Rewind the iterator */
 SPL_METHOD(FilterIterator, rewind)
 {
@@ -1287,7 +1289,7 @@
        spl_filter_it_rewind(getThis(), intern TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto void FilterIterator::next()
+/* {{{ proto void FilterIterator::next() U
    Move the iterator forward */
 SPL_METHOD(FilterIterator, next)
 {
@@ -1297,14 +1299,14 @@
        spl_filter_it_next(getThis(), intern TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto void RecursiveFilterIterator::__construct(RecursiveIterator it)
+/* {{{ proto void RecursiveFilterIterator::__construct(RecursiveIterator it) U
    Create a RecursiveFilterIterator from a RecursiveIterator */
 SPL_METHOD(RecursiveFilterIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
spl_ce_RecursiveFilterIterator, spl_ce_RecursiveIterator, 
DIT_RecursiveFilterIterator);
 } /* }}} */
 
-/* {{{ proto bool RecursiveFilterIterator::hasChildren()
+/* {{{ proto bool RecursiveFilterIterator::hasChildren() U
    Check whether the inner iterator's current element has children */
 SPL_METHOD(RecursiveFilterIterator, hasChildren)
 {
@@ -1321,7 +1323,7 @@
        }
 } /* }}} */
 
-/* {{{ proto RecursiveFilterIterator RecursiveFilterIterator::getChildren()
+/* {{{ proto RecursiveFilterIterator RecursiveFilterIterator::getChildren() U
    Return the inner iterator's children contained in a RecursiveFilterIterator 
*/
 SPL_METHOD(RecursiveFilterIterator, getChildren)
 {
@@ -1339,14 +1341,14 @@
        }
 } /* }}} */
 
-/* {{{ proto void ParentIterator::__construct(RecursiveIterator it)
+/* {{{ proto void ParentIterator::__construct(RecursiveIterator it) U
    Create a ParentIterator from a RecursiveIterator */
 SPL_METHOD(ParentIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
spl_ce_ParentIterator, spl_ce_RecursiveIterator, DIT_ParentIterator);
 } /* }}} */
 
-/* {{{ proto bool ParentIterator::hasChildren()
+/* {{{ proto bool ParentIterator::hasChildren() U
    Check whether the inner iterator's current element has children */
 SPL_METHOD(ParentIterator, hasChildren)
 {
@@ -1363,7 +1365,7 @@
        }
 } /* }}} */
 
-/* {{{ proto ParentIterator ParentIterator::getChildren()
+/* {{{ proto ParentIterator ParentIterator::getChildren() U
    Return the inner iterator's children contained in a ParentIterator */
 SPL_METHOD(ParentIterator, getChildren)
 {
@@ -1382,14 +1384,14 @@
 } /* }}} */
 
 #if HAVE_PCRE || HAVE_BUNDLED_PCRE
-/* {{{ proto void RegexIterator::__construct(Iterator it, string regex [, int 
mode [, int flags [, int preg_flags]]]) 
+/* {{{ proto void RegexIterator::__construct(Iterator it, string regex [, int 
mode [, int flags [, int preg_flags]]]) U
    Create an RegexIterator from another iterator and a regular expression */
 SPL_METHOD(RegexIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
spl_ce_RegexIterator, zend_ce_iterator, DIT_RegexIterator);
 } /* }}} */
 
-/* {{{ proto bool RegexIterator::accept()
+/* {{{ proto bool RegexIterator::accept() U
    Match (string)current() against regular expression */
 SPL_METHOD(RegexIterator, accept)
 {
@@ -1490,7 +1492,7 @@
        }
 } /* }}} */
 
-/* {{{ proto bool RegexIterator::getMode()
+/* {{{ proto bool RegexIterator::getMode() U
    Returns current operation mode */
 SPL_METHOD(RegexIterator, getMode)
 {
@@ -1499,7 +1501,7 @@
        RETURN_LONG(intern->u.regex.mode);
 } /* }}} */
 
-/* {{{ proto bool RegexIterator::setMode(int new_mode)
+/* {{{ proto bool RegexIterator::setMode(int new_mode) U
    Set new operation mode */
 SPL_METHOD(RegexIterator, setMode)
 {
@@ -1518,7 +1520,7 @@
        intern->u.regex.mode = mode;
 } /* }}} */
 
-/* {{{ proto bool RegexIterator::getFlags()
+/* {{{ proto bool RegexIterator::getFlags() U
    Returns current operation flags */
 SPL_METHOD(RegexIterator, getFlags)
 {
@@ -1527,7 +1529,7 @@
        RETURN_LONG(intern->u.regex.flags);
 } /* }}} */
 
-/* {{{ proto bool RegexIterator::setFlags(int new_flags)
+/* {{{ proto bool RegexIterator::setFlags(int new_flags) U
    Set operation flags */
 SPL_METHOD(RegexIterator, setFlags)
 {
@@ -1541,7 +1543,7 @@
        intern->u.regex.flags = flags;
 } /* }}} */
 
-/* {{{ proto bool RegexIterator::getFlags()
+/* {{{ proto bool RegexIterator::getFlags() U
    Returns current PREG flags (if in use or NULL) */
 SPL_METHOD(RegexIterator, getPregFlags)
 {
@@ -1554,7 +1556,7 @@
        }
 } /* }}} */
 
-/* {{{ proto bool RegexIterator::setPregFlags(int new_flags)
+/* {{{ proto bool RegexIterator::setPregFlags(int new_flags) U
    Set PREG flags */
 SPL_METHOD(RegexIterator, setPregFlags)
 {
@@ -1569,14 +1571,14 @@
        intern->u.regex.use_flags = 1;
 } /* }}} */
 
-/* {{{ proto void RecursiveRegexIterator::__construct(RecursiveIterator it, 
string regex [, int mode [, int flags [, int preg_flags]]]) 
+/* {{{ proto void RecursiveRegexIterator::__construct(RecursiveIterator it, 
string regex [, int mode [, int flags [, int preg_flags]]]) U
    Create an RecursiveRegexIterator from another recursive iterator and a 
regular expression */
 SPL_METHOD(RecursiveRegexIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
spl_ce_RecursiveRegexIterator, spl_ce_RecursiveIterator, 
DIT_RecursiveRegexIterator);
 } /* }}} */
 
-/* {{{ proto RecursiveRegexIterator RecursiveRegexIterator::getChildren()
+/* {{{ proto RecursiveRegexIterator RecursiveRegexIterator::getChildren() U
    Return the inner iterator's children contained in a RecursiveRegexIterator 
*/
 SPL_METHOD(RecursiveRegexIterator, getChildren)
 {
@@ -1808,14 +1810,14 @@
        }
 }
 
-/* {{{ proto LimitIterator::__construct(Iterator it [, int offset, int count])
+/* {{{ proto LimitIterator::__construct(Iterator it [, int offset, int count]) 
U
    Construct a LimitIterator from an Iterator with a given starting offset and 
optionally a maximum count */
 SPL_METHOD(LimitIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
spl_ce_LimitIterator, zend_ce_iterator, DIT_LimitIterator);
 } /* }}} */
 
-/* {{{ proto void LimitIterator::rewind() 
+/* {{{ proto void LimitIterator::rewind() U
    Rewind the iterator to the specified starting offset */
 SPL_METHOD(LimitIterator, rewind)
 {
@@ -1826,7 +1828,7 @@
        spl_limit_it_seek(intern, intern->u.limit.offset TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto bool LimitIterator::valid()
+/* {{{ proto bool LimitIterator::valid() U
    Check whether the current element is valid */
 SPL_METHOD(LimitIterator, valid)
 {
@@ -1838,7 +1840,7 @@
        RETURN_BOOL((intern->u.limit.count == -1 || intern->current.pos < 
intern->u.limit.offset + intern->u.limit.count) && intern->current.data);
 } /* }}} */
 
-/* {{{ proto void LimitIterator::next()
+/* {{{ proto void LimitIterator::next() U
    Move the iterator forward */
 SPL_METHOD(LimitIterator, next)
 {
@@ -1852,7 +1854,7 @@
        }
 } /* }}} */
 
-/* {{{ proto void LimitIterator::seek(int position)
+/* {{{ proto void LimitIterator::seek(int position) U
    Seek to the given position */
 SPL_METHOD(LimitIterator, seek)
 {
@@ -1868,7 +1870,7 @@
        RETURN_LONG(intern->current.pos);
 } /* }}} */
 
-/* {{{ proto int LimitIterator::getPosition()
+/* {{{ proto int LimitIterator::getPosition() U
    Return the current position */
 SPL_METHOD(LimitIterator, getPosition)
 {
@@ -2018,14 +2020,14 @@
        spl_caching_it_next(intern TSRMLS_CC);
 }
 
-/* {{{ proto void CachingIterator::__construct(Iterator it [, flags = 
CIT_CALL_TOSTRING])
+/* {{{ proto void CachingIterator::__construct(Iterator it [, flags = 
CIT_CALL_TOSTRING]) U
    Construct a CachingIterator from an Iterator */
 SPL_METHOD(CachingIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
spl_ce_CachingIterator, zend_ce_iterator, DIT_CachingIterator);
 } /* }}} */
 
-/* {{{ proto void CachingIterator::rewind()
+/* {{{ proto void CachingIterator::rewind() U
    Rewind the iterator */
 SPL_METHOD(CachingIterator, rewind)
 {
@@ -2036,7 +2038,7 @@
        spl_caching_it_rewind(intern TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto bool CachingIterator::valid()
+/* {{{ proto bool CachingIterator::valid() U
    Check whether the current element is valid */
 SPL_METHOD(CachingIterator, valid)
 {
@@ -2047,7 +2049,7 @@
        RETURN_BOOL(spl_caching_it_valid(intern TSRMLS_CC) == SUCCESS);
 } /* }}} */
 
-/* {{{ proto void CachingIterator::next()
+/* {{{ proto void CachingIterator::next() U
    Move the iterator forward */
 SPL_METHOD(CachingIterator, next)
 {
@@ -2058,7 +2060,7 @@
        spl_caching_it_next(intern TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto bool CachingIterator::hasNext()
+/* {{{ proto bool CachingIterator::hasNext() U
    Check whether the inner iterator has a valid next element */
 SPL_METHOD(CachingIterator, hasNext)
 {
@@ -2069,7 +2071,7 @@
        RETURN_BOOL(spl_caching_it_has_next(intern TSRMLS_CC) == SUCCESS);
 } /* }}} */
 
-/* {{{ proto string CachingIterator::__toString()
+/* {{{ proto string CachingIterator::__toString() U
    Return the string representation of the current element */
 SPL_METHOD(CachingIterator, __toString)
 {
@@ -2104,7 +2106,7 @@
        }
 } /* }}} */
 
-/* {{{ proto void CachingIterator::offsetSet(mixed index, mixed newval)
+/* {{{ proto void CachingIterator::offsetSet(mixed index, mixed newval) U
    Set given index in cache */
 SPL_METHOD(CachingIterator, offsetSet)
 {
@@ -2130,7 +2132,7 @@
 }
 /* }}} */
 
-/* {{{ proto string CachingIterator::offsetGet(mixed index)
+/* {{{ proto string CachingIterator::offsetGet(mixed index) U
    Return the internal cache if used */
 SPL_METHOD(CachingIterator, offsetGet)
 {
@@ -2160,7 +2162,7 @@
 }
 /* }}} */
 
-/* {{{ proto void CachingIterator::offsetUnset(mixed index)
+/* {{{ proto void CachingIterator::offsetUnset(mixed index) U
    Unset given index in cache */
 SPL_METHOD(CachingIterator, offsetUnset)
 {
@@ -2184,7 +2186,7 @@
 }
 /* }}} */
 
-/* {{{ proto bool CachingIterator::offsetExists(mixed index)
+/* {{{ proto bool CachingIterator::offsetExists(mixed index) U
    Return whether the requested index exists */
 SPL_METHOD(CachingIterator, offsetExists)
 {
@@ -2208,7 +2210,7 @@
 }
 /* }}} */
 
-/* {{{ proto bool CachingIterator::getCache()
+/* {{{ proto bool CachingIterator::getCache() U
    Return the cache */
 SPL_METHOD(CachingIterator, getCache)
 {
@@ -2225,7 +2227,7 @@
 }
 /* }}} */
 
-/* {{{ proto int CachingIterator::getFlags()
+/* {{{ proto int CachingIterator::getFlags() U
    Return the internal flags */
 SPL_METHOD(CachingIterator, getFlags)
 {
@@ -2237,7 +2239,7 @@
 }
 /* }}} */
 
-/* {{{ proto void CachingIterator::setFlags(int flags)
+/* {{{ proto void CachingIterator::setFlags(int flags) U
    Set the internal flags */
 SPL_METHOD(CachingIterator, setFlags)
 {
@@ -2312,14 +2314,14 @@
        {NULL, NULL, NULL}
 };
 
-/* {{{ proto void RecursiveCachingIterator::__construct(RecursiveIterator it 
[, flags = CIT_CALL_TOSTRING])
+/* {{{ proto void RecursiveCachingIterator::__construct(RecursiveIterator it 
[, flags = CIT_CALL_TOSTRING]) U
    Create an iterator from a RecursiveIterator */
 SPL_METHOD(RecursiveCachingIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
spl_ce_RecursiveCachingIterator, spl_ce_RecursiveIterator, 
DIT_RecursiveCachingIterator);
 } /* }}} */
 
-/* {{{ proto bool RecursiveCachingIterator::hasChildren()
+/* {{{ proto bool RecursiveCachingIterator::hasChildren() U
    Check whether the current element of the inner iterator has children */
 SPL_METHOD(RecursiveCachingIterator, hasChildren)
 {
@@ -2330,7 +2332,7 @@
        RETURN_BOOL(intern->u.caching.zchildren);
 } /* }}} */
 
-/* {{{ proto RecursiveCachingIterator RecursiveCachingIterator::getChildren()
+/* {{{ proto RecursiveCachingIterator RecursiveCachingIterator::getChildren() U
   Return the inner iterator's children as a RecursiveCachingIterator */
 SPL_METHOD(RecursiveCachingIterator, getChildren)
 {
@@ -2358,7 +2360,7 @@
        {NULL, NULL, NULL}
 };
 
-/* {{{ proto void IteratorIterator::__construct(Traversable it)
+/* {{{ proto void IteratorIterator::__construct(Traversable it) U
    Create an iterator from anything that is traversable */
 SPL_METHOD(IteratorIterator, __construct)
 {
@@ -2381,21 +2383,21 @@
        {NULL, NULL, NULL}
 };
 
-/* {{{ proto void NoRewindIterator::__construct(Iterator it)
+/* {{{ proto void NoRewindIterator::__construct(Iterator it) U
    Create an iterator from another iterator */
 SPL_METHOD(NoRewindIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
spl_ce_NoRewindIterator, zend_ce_iterator, DIT_NoRewindIterator);
 } /* }}} */
 
-/* {{{ proto void NoRewindIterator::rewind()
+/* {{{ proto void NoRewindIterator::rewind() U
    Prevent a call to inner iterators rewind() */
 SPL_METHOD(NoRewindIterator, rewind)
 {
        /* nothing to do */
 } /* }}} */
 
-/* {{{ proto bool NoRewindIterator::valid()
+/* {{{ proto bool NoRewindIterator::valid() U
    Return inner iterators valid() */
 SPL_METHOD(NoRewindIterator, valid)
 {
@@ -2405,7 +2407,7 @@
        RETURN_BOOL(intern->inner.iterator->funcs->valid(intern->inner.iterator 
TSRMLS_CC) == SUCCESS);
 } /* }}} */
 
-/* {{{ proto mixed NoRewindIterator::key()
+/* {{{ proto mixed NoRewindIterator::key() U
    Return inner iterators key() */
 SPL_METHOD(NoRewindIterator, key)
 {
@@ -2435,7 +2437,7 @@
        }
 } /* }}} */
 
-/* {{{ proto mixed NoRewindIterator::current()
+/* {{{ proto mixed NoRewindIterator::current() U
    Return inner iterators current() */
 SPL_METHOD(NoRewindIterator, current)
 {
@@ -2447,7 +2449,7 @@
        RETURN_ZVAL(*data, 1, 0);
 } /* }}} */
 
-/* {{{ proto void NoRewindIterator::next()
+/* {{{ proto void NoRewindIterator::next() U
    Return inner iterators next() */
 SPL_METHOD(NoRewindIterator, next)
 {
@@ -2473,14 +2475,14 @@
        {NULL, NULL, NULL}
 };
 
-/* {{{ proto void InfiniteIterator::__construct(Iterator it)
+/* {{{ proto void InfiniteIterator::__construct(Iterator it) U
    Create an iterator from another iterator */
 SPL_METHOD(InfiniteIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
spl_ce_InfiniteIterator, zend_ce_iterator, DIT_InfiniteIterator);
 } /* }}} */
 
-/* {{{ proto void InfiniteIterator::next()
+/* {{{ proto void InfiniteIterator::next() U
    Prevent a call to inner iterators rewind() (internally the current data 
will be fetched if valid()) */
 SPL_METHOD(InfiniteIterator, next)
 {
@@ -2505,34 +2507,34 @@
        {NULL, NULL, NULL}
 };
 
-/* {{{ proto void EmptyIterator::rewind()
+/* {{{ proto void EmptyIterator::rewind() U
    Does nothing  */
 SPL_METHOD(EmptyIterator, rewind)
 {
 } /* }}} */
 
-/* {{{ proto false EmptyIterator::valid()
+/* {{{ proto false EmptyIterator::valid() U
    Return false */
 SPL_METHOD(EmptyIterator, valid)
 {
        RETURN_FALSE;
 } /* }}} */
 
-/* {{{ proto void EmptyIterator::key()
+/* {{{ proto void EmptyIterator::key() U
    Throws exception BadMethodCallException */
 SPL_METHOD(EmptyIterator, key)
 {
        zend_throw_exception(spl_ce_BadMethodCallException, "Accessing the key 
of an EmptyIterator", 0 TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto void EmptyIterator::current()
+/* {{{ proto void EmptyIterator::current() U
    Throws exception BadMethodCallException */
 SPL_METHOD(EmptyIterator, current)
 {
        zend_throw_exception(spl_ce_BadMethodCallException, "Accessing the 
value of an EmptyIterator", 0 TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto void EmptyIterator::next()
+/* {{{ proto void EmptyIterator::next() U
    Does nothing */
 SPL_METHOD(EmptyIterator, next)
 {
@@ -2596,14 +2598,14 @@
        spl_append_it_fetch(intern TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto void AppendIterator::__construct()
+/* {{{ proto void AppendIterator::__construct() U
    Create an AppendIterator */
 SPL_METHOD(AppendIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
spl_ce_AppendIterator, zend_ce_iterator, DIT_AppendIterator);
 } /* }}} */
 
-/* {{{ proto void AppendIterator::append(Iterator it)
+/* {{{ proto void AppendIterator::append(Iterator it) U
    Append an iterator */
 SPL_METHOD(AppendIterator, append)
 {
@@ -2630,7 +2632,7 @@
        }
 } /* }}} */
 
-/* {{{ proto void AppendIterator::rewind()
+/* {{{ proto void AppendIterator::rewind() U
    Rewind to the first iterator and rewind the first iterator, too */
 SPL_METHOD(AppendIterator, rewind)
 {
@@ -2644,7 +2646,7 @@
        }
 } /* }}} */
 
-/* {{{ proto bool AppendIterator::valid()
+/* {{{ proto bool AppendIterator::valid() U
    Check if the current state is valid */
 SPL_METHOD(AppendIterator, valid)
 {
@@ -2655,7 +2657,7 @@
        RETURN_BOOL(intern->current.data);
 } /* }}} */
 
-/* {{{ proto void AppendIterator::next()
+/* {{{ proto void AppendIterator::next() U
    Forward to next element */
 SPL_METHOD(AppendIterator, next)
 {
@@ -2666,7 +2668,7 @@
        spl_append_it_next(intern TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto int AppendIterator::getIteratorIndex()
+/* {{{ proto int AppendIterator::getIteratorIndex() U
    Get index of iterator */
 SPL_METHOD(AppendIterator, getIteratorIndex)
 {
@@ -2678,7 +2680,7 @@
        spl_array_iterator_key(intern->u.append.zarrayit, return_value 
TSRMLS_CC);
 } /* }}} */
 
-/* {{{ proto ArrayIterator AppendIterator::getArrayIterator()
+/* {{{ proto ArrayIterator AppendIterator::getArrayIterator() U
    Get access to inner ArrayIterator */
 SPL_METHOD(AppendIterator, getArrayIterator)
 {
@@ -2799,7 +2801,7 @@
 }
 /* }}} */
 
-/* {{{ proto array iterator_to_array(Traversable it [, bool use_keys = true]) 
+/* {{{ proto array iterator_to_array(Traversable it [, bool use_keys = true]) U
    Copy the iterator into an array */
 PHP_FUNCTION(iterator_to_array)
 {
@@ -2825,7 +2827,7 @@
 }
 /* }}} */
 
-/* {{{ proto int iterator_count(Traversable it) 
+/* {{{ proto int iterator_count(Traversable it) U
    Count the elements in an iterator */
 PHP_FUNCTION(iterator_count)
 {
@@ -2868,7 +2870,7 @@
 }
 /* }}} */
 
-/* {{{ proto int iterator_apply(Traversable it, mixed function [, mixed 
params])
+/* {{{ proto int iterator_apply(Traversable it, mixed function [, mixed 
params]) U
    Calls a function for every element in an iterator */
 PHP_FUNCTION(iterator_apply)
 {

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

Reply via email to