static void spl_filesystem_object_free_storage(zend_object *object TSRMLS_DC) /* {{{ */
{
- spl_filesystem_object *intern = (spl_filesystem_object*)object;
+ spl_filesystem_object *intern = spl_filesystem_from_obj(object);
if (intern->oth_handler && intern->oth_handler->dtor) {
intern->oth_handler->dtor(intern TSRMLS_CC);
//zend_iterator_dtor(intern->it TSRMLS_CC);
//}
- efree(object);
+ efree(intern);
} /* }}} */
/* {{{ spl_ce_dir_object_new */
{
spl_filesystem_object *intern;
- intern = emalloc(sizeof(spl_filesystem_object));
- memset(intern, 0, sizeof(spl_filesystem_object));
+ intern = ecalloc(1, sizeof(spl_filesystem_object) + sizeof(zval) * (class_type->default_properties_count - 1));
/* intern->type = SPL_FS_INFO; done by set 0 */
intern->file_class = spl_ce_SplFileObject;
intern->info_class = spl_ce_SplFileInfo;
/* {{{ spl_filesystem_object_new_check */
static zend_object *spl_filesystem_object_new_check(zend_class_entry *class_type TSRMLS_DC)
{
- spl_filesystem_object *ret = (spl_filesystem_object *)spl_filesystem_object_new_ex(class_type TSRMLS_CC);
+ spl_filesystem_object *ret = spl_filesystem_from_obj(spl_filesystem_object_new_ex(class_type TSRMLS_CC));
ret->std.handlers = &spl_filesystem_object_check_handlers;
return &ret->std;
}
int index, skip_dots;
old_object = Z_OBJ_P(zobject);
- source = (spl_filesystem_object*)old_object;
+ source = spl_filesystem_from_obj(old_object);
new_object = spl_filesystem_object_new_ex(old_object->ce TSRMLS_CC);
- intern = (spl_filesystem_object*)new_object;
+ intern = spl_filesystem_from_obj(new_object);
intern->flags = source->flags;
zend_update_class_constants(ce TSRMLS_CC);
- intern = (spl_filesystem_object*)spl_filesystem_object_new_ex(ce TSRMLS_CC);
+ intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce TSRMLS_CC));
return_value->value.obj = &intern->std;
Z_TYPE_P(return_value) = IS_OBJECT;
zend_update_class_constants(ce TSRMLS_CC);
- intern = (spl_filesystem_object*)spl_filesystem_object_new_ex(ce TSRMLS_CC);
+ intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce TSRMLS_CC));
return_value->value.obj = &intern->std;
Z_TYPE_P(return_value) = IS_OBJECT;
zend_update_class_constants(ce TSRMLS_CC);
- intern = (spl_filesystem_object*)spl_filesystem_object_new_ex(ce TSRMLS_CC);
+ intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce TSRMLS_CC));
return_value->value.obj = &intern->std;
Z_TYPE_P(return_value) = IS_OBJECT;
static HashTable *spl_filesystem_object_get_debug_info(zval *obj, int *is_temp TSRMLS_DC) /* {{{ */
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(obj);
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(obj);
zval tmp;
HashTable *rv;
zend_string *pnstr;
zend_function *spl_filesystem_object_get_method_check(zval *object_ptr, zend_string *method, const struct _zend_literal *key TSRMLS_DC) /* {{{ */
{
- spl_filesystem_object *fsobj = (spl_filesystem_object*)Z_OBJ_P(object_ptr);
+ spl_filesystem_object *fsobj = Z_SPLFILESYSTEM_P(object_ptr);
if (fsobj->u.dir.entry.d_name[0] == '\0' && fsobj->orig_path == NULL) {
zend_function *func;
return;
}
- intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ intern = Z_SPLFILESYSTEM_P(getThis());
if (intern->_path) {
/* object is alreay initialized */
zend_restore_error_handling(&error_handling TSRMLS_CC);
Rewind dir back to the start */
SPL_METHOD(DirectoryIterator, rewind)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Return current dir entry */
SPL_METHOD(DirectoryIterator, key)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Move to next entry */
SPL_METHOD(DirectoryIterator, next)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS);
if (zend_parse_parameters_none() == FAILURE) {
Seek to the given position */
SPL_METHOD(DirectoryIterator, seek)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
zval retval;
long pos;
Check whether dir contains more entries */
SPL_METHOD(DirectoryIterator, valid)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Return the path */
SPL_METHOD(SplFileInfo, getPath)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char *path;
int path_len;
Return filename only */
SPL_METHOD(SplFileInfo, getFilename)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
int path_len;
if (zend_parse_parameters_none() == FAILURE) {
Return filename of current dir entry */
SPL_METHOD(DirectoryIterator, getFilename)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Returns file extension component of path */
SPL_METHOD(SplFileInfo, getExtension)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char *fname = NULL;
const char *p;
size_t flen;
Returns the file extension component of path */
SPL_METHOD(DirectoryIterator, getExtension)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
const char *p;
int idx;
zend_string *fname;
Returns filename component of path */
SPL_METHOD(SplFileInfo, getBasename)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char *fname, *suffix = 0;
size_t flen;
int slen = 0, path_len;
Returns filename component of current dir entry */
SPL_METHOD(DirectoryIterator, getBasename)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char *suffix = 0;
int slen = 0;
zend_string *fname;
Return path and filename */
SPL_METHOD(SplFileInfo, getPathname)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char *path;
int path_len;
Return getPathname() or getFilename() depending on flags */
SPL_METHOD(FilesystemIterator, key)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Return getFilename(), getFileInfo() or $this depending on flags */
SPL_METHOD(FilesystemIterator, current)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Returns true if current entry is '.' or '..' */
SPL_METHOD(DirectoryIterator, isDot)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
return;
}
- intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ intern = Z_SPLFILESYSTEM_P(getThis());
spl_filesystem_info_set_filename(intern, path, len, 1 TSRMLS_CC);
#define FileInfoFunction(func_name, func_num) \
SPL_METHOD(SplFileInfo, func_name) \
{ \
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis()); \
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); \
zend_error_handling error_handling; \
if (zend_parse_parameters_none() == FAILURE) { \
return; \
Return the target of a symbolic link */
SPL_METHOD(SplFileInfo, getLinkTarget)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
int ret;
char buff[MAXPATHLEN];
zend_error_handling error_handling;
Return the resolved path */
SPL_METHOD(SplFileInfo, getRealPath)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char buff[MAXPATHLEN];
char *filename;
zend_error_handling error_handling;
Open the current file */
SPL_METHOD(SplFileInfo, openFile)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
spl_filesystem_object_create_type(ZEND_NUM_ARGS(), intern, SPL_FS_FILE, NULL, return_value TSRMLS_CC);
}
Class to use in openFile() */
SPL_METHOD(SplFileInfo, setFileClass)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
zend_class_entry *ce = spl_ce_SplFileObject;
zend_error_handling error_handling;
Class to use in getFileInfo(), getPathInfo() */
SPL_METHOD(SplFileInfo, setInfoClass)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
zend_class_entry *ce = spl_ce_SplFileInfo;
zend_error_handling error_handling;
Get/copy file info */
SPL_METHOD(SplFileInfo, getFileInfo)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
zend_class_entry *ce = intern->info_class;
zend_error_handling error_handling;
Get/copy file info */
SPL_METHOD(SplFileInfo, getPathInfo)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
zend_class_entry *ce = intern->info_class;
zend_error_handling error_handling;
Rewind dir back to the start */
SPL_METHOD(FilesystemIterator, rewind)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS);
if (zend_parse_parameters_none() == FAILURE) {
Get handling flags */
SPL_METHOD(FilesystemIterator, getFlags)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Set handling flags */
SPL_METHOD(FilesystemIterator, setFlags)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
long flags;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &flags) == FAILURE) {
SPL_METHOD(RecursiveDirectoryIterator, hasChildren)
{
zend_bool allow_links = 0;
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &allow_links) == FAILURE) {
return;
SPL_METHOD(RecursiveDirectoryIterator, getChildren)
{
zval zpath, zflags;
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
spl_filesystem_object *subdir;
char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH;
zval_ptr_dtor(&zpath);
zval_ptr_dtor(&zflags);
- subdir = (spl_filesystem_object*)Z_OBJ_P(return_value);
+ subdir = Z_SPLFILESYSTEM_P(return_value);
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);
Get sub path */
SPL_METHOD(RecursiveDirectoryIterator, getSubPath)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Get sub path and file name */
SPL_METHOD(RecursiveDirectoryIterator, getSubPathname)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char *sub_name;
int len;
char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH;
Return the number of directories and files found by globbing */
SPL_METHOD(GlobIterator, count)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
zend_object_iterator *spl_filesystem_dir_get_iterator(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC)
{
spl_filesystem_iterator *iterator;
- spl_filesystem_object *dir_object;
+ spl_filesystem_object *dir_object;
if (by_ref) {
zend_error(E_ERROR, "An iterator cannot be used with foreach by reference");
}
- dir_object = (spl_filesystem_object*)Z_OBJ_P(object);
+ dir_object = Z_SPLFILESYSTEM_P(object);
iterator = spl_filesystem_object_to_iterator(dir_object);
ZVAL_COPY(&iterator->intern.data, object);
iterator->intern.funcs = &spl_filesystem_dir_it_funcs;
if (by_ref) {
zend_error(E_ERROR, "An iterator cannot be used with foreach by reference");
}
- dir_object = (spl_filesystem_object*)Z_OBJ_P(object);
+ dir_object = Z_SPLFILESYSTEM_P(object);
iterator = spl_filesystem_object_to_iterator(dir_object);
ZVAL_COPY(&iterator->intern.data, object);
/* {{{ spl_filesystem_object_cast */
static int spl_filesystem_object_cast(zval *readobj, zval *writeobj, int type TSRMLS_DC)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(readobj);
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(readobj);
if (type == IS_STRING) {
if (Z_OBJCE_P(readobj)->__tostring) {
Construct a new file object */
SPL_METHOD(SplFileObject, __construct)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
zend_bool use_include_path = 0;
char *p1, *p2;
char *tmp_path;
{
long max_memory = PHP_STREAM_MAX_MEM;
char tmp_fname[48];
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
zend_error_handling error_handling;
zend_replace_error_handling(EH_THROW, spl_ce_RuntimeException, &error_handling TSRMLS_CC);
Rewind the file and read the first line */
SPL_METHOD(SplFileObject, rewind)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Return whether end of file is reached */
SPL_METHOD(SplFileObject, eof)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Return !eof() */
SPL_METHOD(SplFileObject, valid)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Rturn next line from file */
SPL_METHOD(SplFileObject, fgets)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Return current line from file */
SPL_METHOD(SplFileObject, current)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Return line number */
SPL_METHOD(SplFileObject, key)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Read next line */
SPL_METHOD(SplFileObject, next)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
Set file handling flags */
SPL_METHOD(SplFileObject, setFlags)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &intern->flags) == FAILURE) {
return;
Get file handling flags */
SPL_METHOD(SplFileObject, getFlags)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
{
long max_len;
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &max_len) == FAILURE) {
return;
Get maximum line length */
SPL_METHOD(SplFileObject, getMaxLineLen)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
if (zend_parse_parameters_none() == FAILURE) {
return;
#define FileFunction(func_name) \
SPL_METHOD(SplFileObject, func_name) \
{ \
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis()); \
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); \
FileFunctionCall(func_name, ZEND_NUM_ARGS(), NULL); \
}
/* }}} */
Return current line as csv */
SPL_METHOD(SplFileObject, fgetcsv)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure, escape = intern->u.file.escape;
char *delim = NULL, *enclo = NULL, *esc = NULL;
int d_len = 0, e_len = 0, esc_len = 0;
Output a field array as a CSV line */
SPL_METHOD(SplFileObject, fputcsv)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure, escape = intern->u.file.escape;
char *delim = NULL, *enclo = NULL;
int d_len = 0, e_len = 0, ret;
Set the delimiter and enclosure character used in fgetcsv */
SPL_METHOD(SplFileObject, setCsvControl)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char delimiter = ',', enclosure = '"', escape='\\';
char *delim = NULL, *enclo = NULL, *esc = NULL;
int d_len = 0, e_len = 0, esc_len = 0;
Get the delimiter and enclosure character used in fgetcsv */
SPL_METHOD(SplFileObject, getCsvControl)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char delimiter[2], enclosure[2];
array_init(return_value);
Flush the file */
SPL_METHOD(SplFileObject, fflush)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
RETURN_BOOL(!php_stream_flush(intern->u.file.stream));
} /* }}} */
Return current file position */
SPL_METHOD(SplFileObject, ftell)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
long ret = php_stream_tell(intern->u.file.stream);
if (ret == -1) {
Return current file position */
SPL_METHOD(SplFileObject, fseek)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
long pos, whence = SEEK_SET;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l|l", &pos, &whence) == FAILURE) {
Get a character form the file */
SPL_METHOD(SplFileObject, fgetc)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char buf[2];
int result;
Get a line from file pointer and strip HTML tags */
SPL_METHOD(SplFileObject, fgetss)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
zval arg2;
if (intern->u.file.max_line_len > 0) {
Output all remaining data from a file pointer */
SPL_METHOD(SplFileObject, fpassthru)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
RETURN_LONG(php_stream_passthru(intern->u.file.stream));
} /* }}} */
Implements a mostly ANSI compatible fscanf() */
SPL_METHOD(SplFileObject, fscanf)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
spl_filesystem_file_free_line(intern TSRMLS_CC);
intern->u.file.current_line_num++;
Binary-safe file write */
SPL_METHOD(SplFileObject, fwrite)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char *str;
int str_len;
long length = 0;
Truncate file to 'size' length */
SPL_METHOD(SplFileObject, ftruncate)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
long size;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &size) == FAILURE) {
Seek to specified line */
SPL_METHOD(SplFileObject, seek)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)Z_OBJ_P(getThis());
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
long line_pos;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &line_pos) == FAILURE) {