Lines Matching refs:intern

63 static void spl_filesystem_file_free_line(spl_filesystem_object *intern TSRMLS_DC) /* {{{ */  in spl_filesystem_file_free_line()
65 if (intern->u.file.current_line) { in spl_filesystem_file_free_line()
66 efree(intern->u.file.current_line); in spl_filesystem_file_free_line()
67 intern->u.file.current_line = NULL; in spl_filesystem_file_free_line()
69 if (intern->u.file.current_zval) { in spl_filesystem_file_free_line()
70 zval_ptr_dtor(&intern->u.file.current_zval); in spl_filesystem_file_free_line()
71 intern->u.file.current_zval = NULL; in spl_filesystem_file_free_line()
77 spl_filesystem_object *intern = (spl_filesystem_object*)object; in spl_filesystem_object_free_storage() local
79 if (intern->oth_handler && intern->oth_handler->dtor) { in spl_filesystem_object_free_storage()
80 intern->oth_handler->dtor(intern TSRMLS_CC); in spl_filesystem_object_free_storage()
83 zend_object_std_dtor(&intern->std TSRMLS_CC); in spl_filesystem_object_free_storage()
85 if (intern->_path) { in spl_filesystem_object_free_storage()
86 efree(intern->_path); in spl_filesystem_object_free_storage()
88 if (intern->file_name) { in spl_filesystem_object_free_storage()
89 efree(intern->file_name); in spl_filesystem_object_free_storage()
91 switch(intern->type) { in spl_filesystem_object_free_storage()
95 if (intern->u.dir.dirp) { in spl_filesystem_object_free_storage()
96 php_stream_close(intern->u.dir.dirp); in spl_filesystem_object_free_storage()
97 intern->u.dir.dirp = NULL; in spl_filesystem_object_free_storage()
99 if (intern->u.dir.sub_path) { in spl_filesystem_object_free_storage()
100 efree(intern->u.dir.sub_path); in spl_filesystem_object_free_storage()
104 if (intern->u.file.stream) { in spl_filesystem_object_free_storage()
105 if (intern->u.file.zcontext) { in spl_filesystem_object_free_storage()
108 if (!intern->u.file.stream->is_persistent) { in spl_filesystem_object_free_storage()
109 php_stream_free(intern->u.file.stream, PHP_STREAM_FREE_CLOSE); in spl_filesystem_object_free_storage()
111 php_stream_free(intern->u.file.stream, PHP_STREAM_FREE_CLOSE_PERSISTENT); in spl_filesystem_object_free_storage()
113 if (intern->u.file.open_mode) { in spl_filesystem_object_free_storage()
114 efree(intern->u.file.open_mode); in spl_filesystem_object_free_storage()
116 if (intern->orig_path) { in spl_filesystem_object_free_storage()
117 efree(intern->orig_path); in spl_filesystem_object_free_storage()
120 spl_filesystem_file_free_line(intern TSRMLS_CC); in spl_filesystem_object_free_storage()
127 spl_filesystem_object_to_iterator(intern); in spl_filesystem_object_free_storage()
150 spl_filesystem_object *intern; in spl_filesystem_object_new_ex() local
152 intern = emalloc(sizeof(spl_filesystem_object)); in spl_filesystem_object_new_ex()
153 memset(intern, 0, sizeof(spl_filesystem_object)); in spl_filesystem_object_new_ex()
155 intern->file_class = spl_ce_SplFileObject; in spl_filesystem_object_new_ex()
156 intern->info_class = spl_ce_SplFileInfo; in spl_filesystem_object_new_ex()
157 if (obj) *obj = intern; in spl_filesystem_object_new_ex()
159 zend_object_std_init(&intern->std, class_type TSRMLS_CC); in spl_filesystem_object_new_ex()
160 object_properties_init(&intern->std, class_type); in spl_filesystem_object_new_ex()
162 …retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t) zend_objects_destroy_ob… in spl_filesystem_object_new_ex()
186 PHPAPI char* spl_filesystem_object_get_path(spl_filesystem_object *intern, int *len TSRMLS_DC) /* {… in spl_filesystem_object_get_path() argument
189 if (intern->type == SPL_FS_DIR) { in spl_filesystem_object_get_path()
190 if (php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in spl_filesystem_object_get_path()
191 return php_glob_stream_get_path(intern->u.dir.dirp, 0, len); in spl_filesystem_object_get_path()
196 *len = intern->_path_len; in spl_filesystem_object_get_path()
198 return intern->_path; in spl_filesystem_object_get_path()
201 static inline void spl_filesystem_object_get_file_name(spl_filesystem_object *intern TSRMLS_DC) /* … in spl_filesystem_object_get_file_name()
203 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in spl_filesystem_object_get_file_name()
205 switch (intern->type) { in spl_filesystem_object_get_file_name()
208 if (!intern->file_name) { in spl_filesystem_object_get_file_name()
213 if (intern->file_name) { in spl_filesystem_object_get_file_name()
214 efree(intern->file_name); in spl_filesystem_object_get_file_name()
216 intern->file_name_len = spprintf(&intern->file_name, 0, "%s%c%s", in spl_filesystem_object_get_file_name()
217 spl_filesystem_object_get_path(intern, NULL TSRMLS_CC), in spl_filesystem_object_get_file_name()
218 slash, intern->u.dir.entry.d_name); in spl_filesystem_object_get_file_name()
223 static int spl_filesystem_dir_read(spl_filesystem_object *intern TSRMLS_DC) /* {{{ */ in spl_filesystem_dir_read()
225 if (!intern->u.dir.dirp || !php_stream_readdir(intern->u.dir.dirp, &intern->u.dir.entry)) { in spl_filesystem_dir_read()
226 intern->u.dir.entry.d_name[0] = '\0'; in spl_filesystem_dir_read()
244 static void spl_filesystem_dir_open(spl_filesystem_object* intern, char *path TSRMLS_DC) in spl_filesystem_dir_open() argument
246 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in spl_filesystem_dir_open()
248 intern->type = SPL_FS_DIR; in spl_filesystem_dir_open()
249 intern->_path_len = strlen(path); in spl_filesystem_dir_open()
250 intern->u.dir.dirp = php_stream_opendir(path, REPORT_ERRORS, FG(default_context)); in spl_filesystem_dir_open()
252 if (intern->_path_len > 1 && IS_SLASH_AT(path, intern->_path_len-1)) { in spl_filesystem_dir_open()
253 intern->_path = estrndup(path, --intern->_path_len); in spl_filesystem_dir_open()
255 intern->_path = estrndup(path, intern->_path_len); in spl_filesystem_dir_open()
257 intern->u.dir.index = 0; in spl_filesystem_dir_open()
259 if (EG(exception) || intern->u.dir.dirp == NULL) { in spl_filesystem_dir_open()
260 intern->u.dir.entry.d_name[0] = '\0'; in spl_filesystem_dir_open()
268 spl_filesystem_dir_read(intern TSRMLS_CC); in spl_filesystem_dir_open()
269 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in spl_filesystem_dir_open()
274 static int spl_filesystem_file_open(spl_filesystem_object *intern, int use_include_path, int silent… in spl_filesystem_file_open() argument
278 intern->type = SPL_FS_FILE; in spl_filesystem_file_open()
280 php_stat(intern->file_name, intern->file_name_len, FS_IS_DIR, &tmp TSRMLS_CC); in spl_filesystem_file_open()
282 intern->u.file.open_mode = NULL; in spl_filesystem_file_open()
283 intern->file_name = NULL; in spl_filesystem_file_open()
288 intern->u.file.context = php_stream_context_from_zval(intern->u.file.zcontext, 0); in spl_filesystem_file_open()
289intern->u.file.stream = php_stream_open_wrapper_ex(intern->file_name, intern->u.file.open_mode, (u… in spl_filesystem_file_open()
291 if (!intern->file_name_len || !intern->u.file.stream) { in spl_filesystem_file_open()
293 …l_ce_RuntimeException, 0 TSRMLS_CC, "Cannot open file '%s'", intern->file_name_len ? intern->file_… in spl_filesystem_file_open()
295 intern->file_name = NULL; /* until here it is not a copy */ in spl_filesystem_file_open()
296 intern->u.file.open_mode = NULL; in spl_filesystem_file_open()
300 if (intern->u.file.zcontext) { in spl_filesystem_file_open()
301 zend_list_addref(Z_RESVAL_P(intern->u.file.zcontext)); in spl_filesystem_file_open()
304 if (intern->file_name_len > 1 && IS_SLASH_AT(intern->file_name, intern->file_name_len-1)) { in spl_filesystem_file_open()
305 intern->file_name_len--; in spl_filesystem_file_open()
308intern->orig_path = estrndup(intern->u.file.stream->orig_path, strlen(intern->u.file.stream->orig_… in spl_filesystem_file_open()
310 intern->file_name = estrndup(intern->file_name, intern->file_name_len); in spl_filesystem_file_open()
311 intern->u.file.open_mode = estrndup(intern->u.file.open_mode, intern->u.file.open_mode_len); in spl_filesystem_file_open()
314 ZVAL_RESOURCE(&intern->u.file.zresource, php_stream_get_resource_id(intern->u.file.stream)); in spl_filesystem_file_open()
315 Z_SET_REFCOUNT(intern->u.file.zresource, 1); in spl_filesystem_file_open()
317 intern->u.file.delimiter = ','; in spl_filesystem_file_open()
318 intern->u.file.enclosure = '"'; in spl_filesystem_file_open()
319 intern->u.file.escape = '\\'; in spl_filesystem_file_open()
321 …zend_hash_find(&intern->std.ce->function_table, "getcurrentline", sizeof("getcurrentline"), (void … in spl_filesystem_file_open()
339 spl_filesystem_object *intern; in spl_filesystem_object_clone() local
346 new_obj_val = spl_filesystem_object_new_ex(old_object->ce, &intern TSRMLS_CC); in spl_filesystem_object_clone()
347 new_object = &intern->std; in spl_filesystem_object_clone()
349 intern->flags = source->flags; in spl_filesystem_object_clone()
353 intern->_path_len = source->_path_len; in spl_filesystem_object_clone()
354 intern->_path = estrndup(source->_path, source->_path_len); in spl_filesystem_object_clone()
355 intern->file_name_len = source->file_name_len; in spl_filesystem_object_clone()
356 intern->file_name = estrndup(source->file_name, intern->file_name_len); in spl_filesystem_object_clone()
359 spl_filesystem_dir_open(intern, source->_path TSRMLS_CC); in spl_filesystem_object_clone()
364 spl_filesystem_dir_read(intern TSRMLS_CC); in spl_filesystem_object_clone()
365 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in spl_filesystem_object_clone()
367 intern->u.dir.index = index; in spl_filesystem_object_clone()
374 intern->file_class = source->file_class; in spl_filesystem_object_clone()
375 intern->info_class = source->info_class; in spl_filesystem_object_clone()
376 intern->oth = source->oth; in spl_filesystem_object_clone()
377 intern->oth_handler = source->oth_handler; in spl_filesystem_object_clone()
381 if (intern->oth_handler && intern->oth_handler->clone) { in spl_filesystem_object_clone()
382 intern->oth_handler->clone(source, intern TSRMLS_CC); in spl_filesystem_object_clone()
389 void spl_filesystem_info_set_filename(spl_filesystem_object *intern, char *path, int len, int use_c… in spl_filesystem_info_set_filename() argument
393 if (intern->file_name) { in spl_filesystem_info_set_filename()
394 efree(intern->file_name); in spl_filesystem_info_set_filename()
397 intern->file_name = use_copy ? estrndup(path, len) : path; in spl_filesystem_info_set_filename()
398 intern->file_name_len = len; in spl_filesystem_info_set_filename()
400 while(IS_SLASH_AT(intern->file_name, intern->file_name_len-1) && intern->file_name_len > 1) { in spl_filesystem_info_set_filename()
401 intern->file_name[intern->file_name_len-1] = 0; in spl_filesystem_info_set_filename()
402 intern->file_name_len--; in spl_filesystem_info_set_filename()
405 p1 = strrchr(intern->file_name, '/'); in spl_filesystem_info_set_filename()
407 p2 = strrchr(intern->file_name, '\\'); in spl_filesystem_info_set_filename()
412 intern->_path_len = (p1 > p2 ? p1 : p2) - intern->file_name; in spl_filesystem_info_set_filename()
414 intern->_path_len = 0; in spl_filesystem_info_set_filename()
417 if (intern->_path) { in spl_filesystem_info_set_filename()
418 efree(intern->_path); in spl_filesystem_info_set_filename()
420 intern->_path = estrndup(path, intern->_path_len); in spl_filesystem_info_set_filename()
425 spl_filesystem_object *intern; in spl_filesystem_object_create_info() local
451 return_value->value.obj = spl_filesystem_object_new_ex(ce, &intern TSRMLS_CC); in spl_filesystem_object_create_info()
460 spl_filesystem_info_set_filename(intern, file_path, file_path_len, use_copy TSRMLS_CC); in spl_filesystem_object_create_info()
464 return intern; in spl_filesystem_object_create_info()
469 spl_filesystem_object *intern; in spl_filesystem_object_create_type() local
494 return_value->value.obj = spl_filesystem_object_new_ex(ce, &intern TSRMLS_CC); in spl_filesystem_object_create_type()
504 intern->file_name = estrndup(source->file_name, source->file_name_len); in spl_filesystem_object_create_type()
505 intern->file_name_len = source->file_name_len; in spl_filesystem_object_create_type()
506 intern->_path = spl_filesystem_object_get_path(source, &intern->_path_len TSRMLS_CC); in spl_filesystem_object_create_type()
507 intern->_path = estrndup(intern->_path, intern->_path_len); in spl_filesystem_object_create_type()
515 return_value->value.obj = spl_filesystem_object_new_ex(ce, &intern TSRMLS_CC); in spl_filesystem_object_create_type()
529 intern->file_name = source->file_name; in spl_filesystem_object_create_type()
530 intern->file_name_len = source->file_name_len; in spl_filesystem_object_create_type()
531 intern->_path = spl_filesystem_object_get_path(source, &intern->_path_len TSRMLS_CC); in spl_filesystem_object_create_type()
532 intern->_path = estrndup(intern->_path, intern->_path_len); in spl_filesystem_object_create_type()
534 intern->u.file.open_mode = "r"; in spl_filesystem_object_create_type()
535 intern->u.file.open_mode_len = 1; in spl_filesystem_object_create_type()
538 &intern->u.file.open_mode, &intern->u.file.open_mode_len, in spl_filesystem_object_create_type()
539 &use_include_path, &intern->u.file.zcontext) == FAILURE) { in spl_filesystem_object_create_type()
541 intern->u.file.open_mode = NULL; in spl_filesystem_object_create_type()
542 intern->file_name = NULL; in spl_filesystem_object_create_type()
548 if (spl_filesystem_file_open(intern, use_include_path, 0 TSRMLS_CC) == FAILURE) { in spl_filesystem_object_create_type()
571 static char *spl_filesystem_object_get_pathname(spl_filesystem_object *intern, int *len TSRMLS_DC) … in spl_filesystem_object_get_pathname() argument
572 switch (intern->type) { in spl_filesystem_object_get_pathname()
575 *len = intern->file_name_len; in spl_filesystem_object_get_pathname()
576 return intern->file_name; in spl_filesystem_object_get_pathname()
578 if (intern->u.dir.entry.d_name[0]) { in spl_filesystem_object_get_pathname()
579 spl_filesystem_object_get_file_name(intern TSRMLS_CC); in spl_filesystem_object_get_pathname()
580 *len = intern->file_name_len; in spl_filesystem_object_get_pathname()
581 return intern->file_name; in spl_filesystem_object_get_pathname()
591 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(obj TSRMLS_CC… in spl_filesystem_object_get_debug_info() local
600 if (!intern->std.properties) { in spl_filesystem_object_get_debug_info()
601 rebuild_object_properties(&intern->std); in spl_filesystem_object_get_debug_info()
605 ZEND_INIT_SYMTABLE_EX(rv, zend_hash_num_elements(intern->std.properties) + 3, 0); in spl_filesystem_object_get_debug_info()
610 …zend_hash_copy(rv, intern->std.properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(… in spl_filesystem_object_get_debug_info()
613 path = spl_filesystem_object_get_pathname(intern, &path_len TSRMLS_CC); in spl_filesystem_object_get_debug_info()
617 if (intern->file_name) { in spl_filesystem_object_get_debug_info()
619 spl_filesystem_object_get_path(intern, &path_len TSRMLS_CC); in spl_filesystem_object_get_debug_info()
621 if (path_len && path_len < intern->file_name_len) { in spl_filesystem_object_get_debug_info()
622 …add_assoc_stringl_ex(&zrv, pnstr, pnlen+1, intern->file_name + path_len + 1, intern->file_name_len… in spl_filesystem_object_get_debug_info()
624 add_assoc_stringl_ex(&zrv, pnstr, pnlen+1, intern->file_name, intern->file_name_len, 1); in spl_filesystem_object_get_debug_info()
628 if (intern->type == SPL_FS_DIR) { in spl_filesystem_object_get_debug_info()
631 if (php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in spl_filesystem_object_get_debug_info()
632 add_assoc_stringl_ex(&zrv, pnstr, pnlen+1, intern->_path, intern->_path_len, 1); in spl_filesystem_object_get_debug_info()
639 if (intern->u.dir.sub_path) { in spl_filesystem_object_get_debug_info()
640 … add_assoc_stringl_ex(&zrv, pnstr, pnlen+1, intern->u.dir.sub_path, intern->u.dir.sub_path_len, 1); in spl_filesystem_object_get_debug_info()
646 if (intern->type == SPL_FS_FILE) { in spl_filesystem_object_get_debug_info()
648 …add_assoc_stringl_ex(&zrv, pnstr, pnlen+1, intern->u.file.open_mode, intern->u.file.open_mode_len,… in spl_filesystem_object_get_debug_info()
651 stmp[0] = intern->u.file.delimiter; in spl_filesystem_object_get_debug_info()
655 stmp[0] = intern->u.file.enclosure; in spl_filesystem_object_get_debug_info()
684 spl_filesystem_object *intern; in spl_filesystem_object_construct() local
715 intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); in spl_filesystem_object_construct()
716 if (intern->_path) { in spl_filesystem_object_construct()
722 intern->flags = flags; in spl_filesystem_object_construct()
726 spl_filesystem_dir_open(intern, path TSRMLS_CC); in spl_filesystem_object_construct()
731 spl_filesystem_dir_open(intern, path TSRMLS_CC); in spl_filesystem_object_construct()
735intern->u.dir.is_recursive = instanceof_function(intern->std.ce, spl_ce_RecursiveDirectoryIterator… in spl_filesystem_object_construct()
753 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
759 intern->u.dir.index = 0; in SPL_METHOD()
760 if (intern->u.dir.dirp) { in SPL_METHOD()
761 php_stream_rewinddir(intern->u.dir.dirp); in SPL_METHOD()
763 spl_filesystem_dir_read(intern TSRMLS_CC); in SPL_METHOD()
771 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
777 if (intern->u.dir.dirp) { in SPL_METHOD()
778 RETURN_LONG(intern->u.dir.index); in SPL_METHOD()
800 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
801 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in SPL_METHOD()
807 intern->u.dir.index++; in SPL_METHOD()
809 spl_filesystem_dir_read(intern TSRMLS_CC); in SPL_METHOD()
810 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in SPL_METHOD()
811 if (intern->file_name) { in SPL_METHOD()
812 efree(intern->file_name); in SPL_METHOD()
813 intern->file_name = NULL; in SPL_METHOD()
822 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() … in SPL_METHOD() local
830 if (intern->u.dir.index > pos) { in SPL_METHOD()
832 …zend_call_method_with_0_params(&this_ptr, Z_OBJCE_P(getThis()), &intern->u.dir.func_rewind, "rewin… in SPL_METHOD()
839 while (intern->u.dir.index < pos) { in SPL_METHOD()
841 …zend_call_method_with_0_params(&this_ptr, Z_OBJCE_P(getThis()), &intern->u.dir.func_valid, "valid"… in SPL_METHOD()
850 …zend_call_method_with_0_params(&this_ptr, Z_OBJCE_P(getThis()), &intern->u.dir.func_next, "next", … in SPL_METHOD()
861 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
867 RETURN_BOOL(intern->u.dir.entry.d_name[0] != '\0'); in SPL_METHOD()
875 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
883 path = spl_filesystem_object_get_path(intern, &path_len TSRMLS_CC); in SPL_METHOD()
892 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
899 spl_filesystem_object_get_path(intern, &path_len TSRMLS_CC); in SPL_METHOD()
901 if (path_len && path_len < intern->file_name_len) { in SPL_METHOD()
902 RETURN_STRINGL(intern->file_name + path_len + 1, intern->file_name_len - (path_len + 1), 1); in SPL_METHOD()
904 RETURN_STRINGL(intern->file_name, intern->file_name_len, 1); in SPL_METHOD()
913 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
919 RETURN_STRING(intern->u.dir.entry.d_name, 1); in SPL_METHOD()
927 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
937 spl_filesystem_object_get_path(intern, &path_len TSRMLS_CC); in SPL_METHOD()
939 if (path_len && path_len < intern->file_name_len) { in SPL_METHOD()
940 fname = intern->file_name + path_len + 1; in SPL_METHOD()
941 flen = intern->file_name_len - (path_len + 1); in SPL_METHOD()
943 fname = intern->file_name; in SPL_METHOD()
944 flen = intern->file_name_len; in SPL_METHOD()
968 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
978 …php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), NULL, 0, &fname, &fle… in SPL_METHOD()
999 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1008 spl_filesystem_object_get_path(intern, &path_len TSRMLS_CC); in SPL_METHOD()
1010 if (path_len && path_len < intern->file_name_len) { in SPL_METHOD()
1011 fname = intern->file_name + path_len + 1; in SPL_METHOD()
1012 flen = intern->file_name_len - (path_len + 1); in SPL_METHOD()
1014 fname = intern->file_name; in SPL_METHOD()
1015 flen = intern->file_name_len; in SPL_METHOD()
1028 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1037 …php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), suffix, slen, &fname,… in SPL_METHOD()
1047 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1054 path = spl_filesystem_object_get_pathname(intern, &path_len TSRMLS_CC); in SPL_METHOD()
1067 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1073 if (SPL_FILE_DIR_KEY(intern, SPL_FILE_DIR_KEY_AS_FILENAME)) { in SPL_METHOD()
1074 RETURN_STRING(intern->u.dir.entry.d_name, 1); in SPL_METHOD()
1076 spl_filesystem_object_get_file_name(intern TSRMLS_CC); in SPL_METHOD()
1077 RETURN_STRINGL(intern->file_name, intern->file_name_len, 1); in SPL_METHOD()
1086 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1092 if (SPL_FILE_DIR_CURRENT(intern, SPL_FILE_DIR_CURRENT_AS_PATHNAME)) { in SPL_METHOD()
1093 spl_filesystem_object_get_file_name(intern TSRMLS_CC); in SPL_METHOD()
1094 RETURN_STRINGL(intern->file_name, intern->file_name_len, 1); in SPL_METHOD()
1095 } else if (SPL_FILE_DIR_CURRENT(intern, SPL_FILE_DIR_CURRENT_AS_FILEINFO)) { in SPL_METHOD()
1096 spl_filesystem_object_get_file_name(intern TSRMLS_CC); in SPL_METHOD()
1097 spl_filesystem_object_create_type(0, intern, SPL_FS_INFO, NULL, return_value TSRMLS_CC); in SPL_METHOD()
1109 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1115 RETURN_BOOL(spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in SPL_METHOD()
1130 spl_filesystem_object *intern; in SPL_METHOD() local
1142 intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); in SPL_METHOD()
1144 spl_filesystem_info_set_filename(intern, path, len, 1 TSRMLS_CC); in SPL_METHOD()
1156 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR…
1163 spl_filesystem_object_get_file_name(intern TSRMLS_CC); \
1164 php_stat(intern->file_name, intern->file_name_len, func_num, return_value TSRMLS_CC); \
1248 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in FileInfoFunction() local
1260 if (intern->file_name == NULL) { in FileInfoFunction()
1263 } else if (!IS_ABSOLUTE_PATH(intern->file_name, intern->file_name_len)) { in FileInfoFunction()
1265 …if (!expand_filepath_with_mode(intern->file_name, expanded_path, NULL, 0, CWD_EXPAND TSRMLS_CC)) { in FileInfoFunction()
1271 ret = php_sys_readlink(intern->file_name, buff, MAXPATHLEN-1); in FileInfoFunction()
1278 …l_ce_RuntimeException, 0 TSRMLS_CC, "Unable to read link %s, error: %s", intern->file_name, strerr… in FileInfoFunction()
1296 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1307 if (intern->type == SPL_FS_DIR && !intern->file_name && intern->u.dir.entry.d_name[0]) { in SPL_METHOD()
1308 spl_filesystem_object_get_file_name(intern TSRMLS_CC); in SPL_METHOD()
1311 if (intern->orig_path) { in SPL_METHOD()
1312 filename = intern->orig_path; in SPL_METHOD()
1314 filename = intern->file_name; in SPL_METHOD()
1338 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1340 spl_filesystem_object_create_type(ht, intern, SPL_FS_FILE, NULL, return_value TSRMLS_CC); in SPL_METHOD()
1348 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1355 intern->file_class = ce; in SPL_METHOD()
1366 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1373 intern->info_class = ce; in SPL_METHOD()
1384 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1385 zend_class_entry *ce = intern->info_class; in SPL_METHOD()
1391 spl_filesystem_object_create_type(ht, intern, SPL_FS_INFO, ce, return_value TSRMLS_CC); in SPL_METHOD()
1402 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1403 zend_class_entry *ce = intern->info_class; in SPL_METHOD()
1410 char *path = spl_filesystem_object_get_pathname(intern, &path_len TSRMLS_CC); in SPL_METHOD()
1414 spl_filesystem_object_create_info(intern, dpath, path_len, 1, ce, return_value TSRMLS_CC); in SPL_METHOD()
1444 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1445 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in SPL_METHOD()
1451 intern->u.dir.index = 0; in SPL_METHOD()
1452 if (intern->u.dir.dirp) { in SPL_METHOD()
1453 php_stream_rewinddir(intern->u.dir.dirp); in SPL_METHOD()
1456 spl_filesystem_dir_read(intern TSRMLS_CC); in SPL_METHOD()
1457 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in SPL_METHOD()
1465 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1471 …RETURN_LONG(intern->flags & (SPL_FILE_DIR_KEY_MODE_MASK | SPL_FILE_DIR_CURRENT_MODE_MASK | SPL_FIL… in SPL_METHOD()
1478 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1485intern->flags &= ~(SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_M… in SPL_METHOD()
1486intern->flags |= ((SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_M… in SPL_METHOD()
1494 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1499 if (spl_filesystem_is_invalid_or_dot(intern->u.dir.entry.d_name)) { in SPL_METHOD()
1502 spl_filesystem_object_get_file_name(intern TSRMLS_CC); in SPL_METHOD()
1503 if (!allow_links && !(intern->flags & SPL_FILE_DIR_FOLLOW_SYMLINKS)) { in SPL_METHOD()
1504 php_stat(intern->file_name, intern->file_name_len, FS_IS_LINK, return_value TSRMLS_CC); in SPL_METHOD()
1509 php_stat(intern->file_name, intern->file_name_len, FS_IS_DIR, return_value TSRMLS_CC); in SPL_METHOD()
1519 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1521 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in SPL_METHOD()
1527 spl_filesystem_object_get_file_name(intern TSRMLS_CC); in SPL_METHOD()
1531 ZVAL_LONG(zflags, intern->flags); in SPL_METHOD()
1532 ZVAL_STRINGL(zpath, intern->file_name, intern->file_name_len, 1); in SPL_METHOD()
1539 if (intern->u.dir.sub_path && intern->u.dir.sub_path[0]) { in SPL_METHOD()
1540 …path_len = spprintf(&subdir->u.dir.sub_path, 0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u… in SPL_METHOD()
1542 subdir->u.dir.sub_path_len = strlen(intern->u.dir.entry.d_name); in SPL_METHOD()
1543 subdir->u.dir.sub_path = estrndup(intern->u.dir.entry.d_name, subdir->u.dir.sub_path_len); in SPL_METHOD()
1545 subdir->info_class = intern->info_class; in SPL_METHOD()
1546 subdir->file_class = intern->file_class; in SPL_METHOD()
1547 subdir->oth = intern->oth; in SPL_METHOD()
1556 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1562 if (intern->u.dir.sub_path) { in SPL_METHOD()
1563 RETURN_STRINGL(intern->u.dir.sub_path, intern->u.dir.sub_path_len, 1); in SPL_METHOD()
1574 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1577 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in SPL_METHOD()
1583 if (intern->u.dir.sub_path) { in SPL_METHOD()
1584 len = spprintf(&sub_name, 0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u.dir.entry.d_name); in SPL_METHOD()
1587 RETURN_STRING(intern->u.dir.entry.d_name, 1); in SPL_METHOD()
1613 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
1619 if (php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in SPL_METHOD()
1620 RETURN_LONG(php_glob_stream_get_count(intern->u.dir.dirp, NULL)); in SPL_METHOD()
1661 if (iterator->intern.data == NULL) { in spl_filesystem_dir_get_iterator()
1662 iterator->intern.data = object; in spl_filesystem_dir_get_iterator()
1663 iterator->intern.funcs = &spl_filesystem_dir_it_funcs; in spl_filesystem_dir_get_iterator()
1679 if (iterator->intern.data) { in spl_filesystem_dir_it_dtor()
1680 zval *object = iterator->intern.data; in spl_filesystem_dir_it_dtor()
1750 if (iterator->intern.data) { in spl_filesystem_tree_it_dtor()
1751 zval *object = iterator->intern.data; in spl_filesystem_tree_it_dtor()
1782 *data = (zval**)&iterator->intern.data; in spl_filesystem_tree_it_current_data()
1866 if (iterator->intern.data == NULL) { in spl_filesystem_tree_get_iterator()
1867 iterator->intern.data = object; in spl_filesystem_tree_get_iterator()
1868 iterator->intern.funcs = &spl_filesystem_tree_it_funcs; in spl_filesystem_tree_get_iterator()
1879 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(readobj TSRML… in spl_filesystem_object_cast() local
1886 switch (intern->type) { in spl_filesystem_object_cast()
1893 ZVAL_STRINGL(retval_ptr, intern->file_name, intern->file_name_len, 1); in spl_filesystem_object_cast()
1897 ZVAL_STRINGL(writeobj, intern->file_name, intern->file_name_len, 1); in spl_filesystem_object_cast()
1905 ZVAL_STRING(retval_ptr, intern->u.dir.entry.d_name, 1); in spl_filesystem_object_cast()
1909 ZVAL_STRING(writeobj, intern->u.dir.entry.d_name, 1); in spl_filesystem_object_cast()
2054 static int spl_filesystem_file_read(spl_filesystem_object *intern, int silent TSRMLS_DC) /* {{{ */ in spl_filesystem_file_read() argument
2058 long line_add = (intern->u.file.current_line || intern->u.file.current_zval) ? 1 : 0; in spl_filesystem_file_read()
2060 spl_filesystem_file_free_line(intern TSRMLS_CC); in spl_filesystem_file_read()
2062 if (php_stream_eof(intern->u.file.stream)) { in spl_filesystem_file_read()
2064 …zend_throw_exception_ex(spl_ce_RuntimeException, 0 TSRMLS_CC, "Cannot read from file %s", intern->… in spl_filesystem_file_read()
2069 if (intern->u.file.max_line_len > 0) { in spl_filesystem_file_read()
2070 buf = safe_emalloc((intern->u.file.max_line_len + 1), sizeof(char), 0); in spl_filesystem_file_read()
2071 …if (php_stream_get_line(intern->u.file.stream, buf, intern->u.file.max_line_len + 1, &line_len) ==… in spl_filesystem_file_read()
2078 buf = php_stream_get_line(intern->u.file.stream, NULL, 0, &line_len); in spl_filesystem_file_read()
2082 intern->u.file.current_line = estrdup(""); in spl_filesystem_file_read()
2083 intern->u.file.current_line_len = 0; in spl_filesystem_file_read()
2085 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_DROP_NEW_LINE)) { in spl_filesystem_file_read()
2090 intern->u.file.current_line = buf; in spl_filesystem_file_read()
2091 intern->u.file.current_line_len = line_len; in spl_filesystem_file_read()
2093 intern->u.file.current_line_num += line_add; in spl_filesystem_file_read()
2098 static int spl_filesystem_file_call(spl_filesystem_object *intern, zend_function *func_ptr, int pas… in spl_filesystem_file_call() argument
2103 zval * zresource_ptr = &intern->u.file.zresource, *retval; in spl_filesystem_file_call()
2156 spl_filesystem_file_call(intern, func_ptr, pass_num_args, return_value, arg2 TSRMLS_CC); \
2159 static int spl_filesystem_file_read_csv(spl_filesystem_object *intern, char delimiter, char enclosu… in spl_filesystem_file_read_csv() argument
2164 ret = spl_filesystem_file_read(intern, 1 TSRMLS_CC); in spl_filesystem_file_read_csv()
2165 …} while (ret == SUCCESS && !intern->u.file.current_line_len && SPL_HAS_FLAG(intern->flags, SPL_FIL… in spl_filesystem_file_read_csv()
2168 size_t buf_len = intern->u.file.current_line_len; in spl_filesystem_file_read_csv()
2169 char *buf = estrndup(intern->u.file.current_line, buf_len); in spl_filesystem_file_read_csv()
2171 if (intern->u.file.current_zval) { in spl_filesystem_file_read_csv()
2172 zval_ptr_dtor(&intern->u.file.current_zval); in spl_filesystem_file_read_csv()
2174 ALLOC_INIT_ZVAL(intern->u.file.current_zval); in spl_filesystem_file_read_csv()
2176 …php_fgetcsv(intern->u.file.stream, delimiter, enclosure, escape, buf_len, buf, intern->u.file.curr… in spl_filesystem_file_read_csv()
2182 ZVAL_ZVAL(return_value, intern->u.file.current_zval, 1, 0); in spl_filesystem_file_read_csv()
2189 static int spl_filesystem_file_read_line_ex(zval * this_ptr, spl_filesystem_object *intern, int sil… in spl_filesystem_file_read_line_ex() argument
2194 …if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) || intern->u.file.func_getCurr->common.s… in spl_filesystem_file_read_line_ex()
2195 if (php_stream_eof(intern->u.file.stream)) { in spl_filesystem_file_read_line_ex()
2197 …_exception_ex(spl_ce_RuntimeException, 0 TSRMLS_CC, "Cannot read from file %s", intern->file_name); in spl_filesystem_file_read_line_ex()
2201 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV)) { in spl_filesystem_file_read_line_ex()
2202 …return spl_filesystem_file_read_csv(intern, intern->u.file.delimiter, intern->u.file.enclosure, in… in spl_filesystem_file_read_line_ex()
2204 …zend_call_method_with_0_params(&this_ptr, Z_OBJCE_P(getThis()), &intern->u.file.func_getCurr, "get… in spl_filesystem_file_read_line_ex()
2207 if (intern->u.file.current_line || intern->u.file.current_zval) { in spl_filesystem_file_read_line_ex()
2208 intern->u.file.current_line_num++; in spl_filesystem_file_read_line_ex()
2210 spl_filesystem_file_free_line(intern TSRMLS_CC); in spl_filesystem_file_read_line_ex()
2212 intern->u.file.current_line = estrndup(Z_STRVAL_P(retval), Z_STRLEN_P(retval)); in spl_filesystem_file_read_line_ex()
2213 intern->u.file.current_line_len = Z_STRLEN_P(retval); in spl_filesystem_file_read_line_ex()
2215 MAKE_STD_ZVAL(intern->u.file.current_zval); in spl_filesystem_file_read_line_ex()
2216 ZVAL_ZVAL(intern->u.file.current_zval, retval, 1, 0); in spl_filesystem_file_read_line_ex()
2224 return spl_filesystem_file_read(intern, silent TSRMLS_CC); in spl_filesystem_file_read_line_ex()
2228 static int spl_filesystem_file_is_empty_line(spl_filesystem_object *intern TSRMLS_DC) /* {{{ */ in spl_filesystem_file_is_empty_line()
2230 if (intern->u.file.current_line) { in spl_filesystem_file_is_empty_line()
2231 return intern->u.file.current_line_len == 0; in spl_filesystem_file_is_empty_line()
2232 } else if (intern->u.file.current_zval) { in spl_filesystem_file_is_empty_line()
2233 switch(Z_TYPE_P(intern->u.file.current_zval)) { in spl_filesystem_file_is_empty_line()
2235 return Z_STRLEN_P(intern->u.file.current_zval) == 0; in spl_filesystem_file_is_empty_line()
2237 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) in spl_filesystem_file_is_empty_line()
2238 && zend_hash_num_elements(Z_ARRVAL_P(intern->u.file.current_zval)) == 1) { in spl_filesystem_file_is_empty_line()
2239 zval ** first = Z_ARRVAL_P(intern->u.file.current_zval)->pListHead->pData; in spl_filesystem_file_is_empty_line()
2243 return zend_hash_num_elements(Z_ARRVAL_P(intern->u.file.current_zval)) == 0; in spl_filesystem_file_is_empty_line()
2255 static int spl_filesystem_file_read_line(zval * this_ptr, spl_filesystem_object *intern, int silent… in spl_filesystem_file_read_line() argument
2257 int ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent TSRMLS_CC); in spl_filesystem_file_read_line()
2259 …while (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_SKIP_EMPTY) && ret == SUCCESS && spl_filesystem… in spl_filesystem_file_read_line()
2260 spl_filesystem_file_free_line(intern TSRMLS_CC); in spl_filesystem_file_read_line()
2261 ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent TSRMLS_CC); in spl_filesystem_file_read_line()
2268 static void spl_filesystem_file_rewind(zval * this_ptr, spl_filesystem_object *intern TSRMLS_DC) /*… in spl_filesystem_file_rewind()
2270 if (-1 == php_stream_rewind(intern->u.file.stream)) { in spl_filesystem_file_rewind()
2271 …zend_throw_exception_ex(spl_ce_RuntimeException, 0 TSRMLS_CC, "Cannot rewind file %s", intern->fil… in spl_filesystem_file_rewind()
2273 spl_filesystem_file_free_line(intern TSRMLS_CC); in spl_filesystem_file_rewind()
2274 intern->u.file.current_line_num = 0; in spl_filesystem_file_rewind()
2276 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in spl_filesystem_file_rewind()
2277 spl_filesystem_file_read_line(this_ptr, intern, 1 TSRMLS_CC); in spl_filesystem_file_rewind()
2285 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2294 intern->u.file.open_mode = NULL; in SPL_METHOD()
2295 intern->u.file.open_mode_len = 0; in SPL_METHOD()
2298 &intern->file_name, &intern->file_name_len, in SPL_METHOD()
2299 &intern->u.file.open_mode, &intern->u.file.open_mode_len, in SPL_METHOD()
2300 &use_include_path, &intern->u.file.zcontext) == FAILURE) { in SPL_METHOD()
2301 intern->u.file.open_mode = NULL; in SPL_METHOD()
2302 intern->file_name = NULL; in SPL_METHOD()
2307 if (intern->u.file.open_mode == NULL) { in SPL_METHOD()
2308 intern->u.file.open_mode = "r"; in SPL_METHOD()
2309 intern->u.file.open_mode_len = 1; in SPL_METHOD()
2312 if (spl_filesystem_file_open(intern, use_include_path, 0 TSRMLS_CC) == SUCCESS) { in SPL_METHOD()
2313 tmp_path_len = strlen(intern->u.file.stream->orig_path); in SPL_METHOD()
2315 if (tmp_path_len > 1 && IS_SLASH_AT(intern->u.file.stream->orig_path, tmp_path_len-1)) { in SPL_METHOD()
2319 tmp_path = estrndup(intern->u.file.stream->orig_path, tmp_path_len); in SPL_METHOD()
2328 intern->_path_len = (p1 > p2 ? p1 : p2) - tmp_path; in SPL_METHOD()
2330 intern->_path_len = 0; in SPL_METHOD()
2335 intern->_path = estrndup(intern->u.file.stream->orig_path, intern->_path_len); in SPL_METHOD()
2348 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2359 intern->file_name = "php://memory"; in SPL_METHOD()
2360 intern->file_name_len = 12; in SPL_METHOD()
2362intern->file_name_len = slprintf(tmp_fname, sizeof(tmp_fname), "php://temp/maxmemory:%ld", max_mem… in SPL_METHOD()
2363 intern->file_name = tmp_fname; in SPL_METHOD()
2365 intern->file_name = "php://temp"; in SPL_METHOD()
2366 intern->file_name_len = 10; in SPL_METHOD()
2368 intern->u.file.open_mode = "wb"; in SPL_METHOD()
2369 intern->u.file.open_mode_len = 1; in SPL_METHOD()
2370 intern->u.file.zcontext = NULL; in SPL_METHOD()
2372 if (spl_filesystem_file_open(intern, 0, 0 TSRMLS_CC) == SUCCESS) { in SPL_METHOD()
2373 intern->_path_len = 0; in SPL_METHOD()
2374 intern->_path = estrndup("", 0); in SPL_METHOD()
2383 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2389 spl_filesystem_file_rewind(getThis(), intern TSRMLS_CC); in SPL_METHOD()
2396 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2402 RETURN_BOOL(php_stream_eof(intern->u.file.stream)); in SPL_METHOD()
2409 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2415 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in SPL_METHOD()
2416 RETURN_BOOL(intern->u.file.current_line || intern->u.file.current_zval); in SPL_METHOD()
2418 RETVAL_BOOL(!php_stream_eof(intern->u.file.stream)); in SPL_METHOD()
2426 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2432 if (spl_filesystem_file_read(intern, 0 TSRMLS_CC) == FAILURE) { in SPL_METHOD()
2435 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len, 1); in SPL_METHOD()
2442 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2448 if (!intern->u.file.current_line && !intern->u.file.current_zval) { in SPL_METHOD()
2449 spl_filesystem_file_read_line(getThis(), intern, 1 TSRMLS_CC); in SPL_METHOD()
2451 …if (intern->u.file.current_line && (!SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) || !int… in SPL_METHOD()
2452 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len, 1); in SPL_METHOD()
2453 } else if (intern->u.file.current_zval) { in SPL_METHOD()
2454 RETURN_ZVAL(intern->u.file.current_zval, 1, 0); in SPL_METHOD()
2463 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2473 RETURN_LONG(intern->u.file.current_line_num); in SPL_METHOD()
2480 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2486 spl_filesystem_file_free_line(intern TSRMLS_CC); in SPL_METHOD()
2487 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in SPL_METHOD()
2488 spl_filesystem_file_read_line(getThis(), intern, 1 TSRMLS_CC); in SPL_METHOD()
2490 intern->u.file.current_line_num++; in SPL_METHOD()
2497 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2499 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &intern->flags) == FAILURE) { in SPL_METHOD()
2508 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2514 RETURN_LONG(intern->flags & SPL_FILE_OBJECT_MASK); in SPL_METHOD()
2523 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2534 intern->u.file.max_line_len = max_len; in SPL_METHOD()
2541 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2547 RETURN_LONG((long)intern->u.file.max_line_len); in SPL_METHOD()
2575 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR…
2584 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2585 …char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure, escape = intern->… in SPL_METHOD()
2616 spl_filesystem_file_read_csv(intern, delimiter, enclosure, escape, return_value TSRMLS_CC); in SPL_METHOD()
2625 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2626 …char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure, escape = intern->… in SPL_METHOD()
2659 ret = php_fputcsv(intern->u.file.stream, fields, delimiter, enclosure, escape TSRMLS_CC); in SPL_METHOD()
2669 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2701 intern->u.file.delimiter = delimiter; in SPL_METHOD()
2702 intern->u.file.enclosure = enclosure; in SPL_METHOD()
2703 intern->u.file.escape = escape; in SPL_METHOD()
2712 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2717 delimiter[0] = intern->u.file.delimiter; in SPL_METHOD()
2719 enclosure[0] = intern->u.file.enclosure; in SPL_METHOD()
2736 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2738 RETURN_BOOL(!php_stream_flush(intern->u.file.stream)); in SPL_METHOD()
2745 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2746 long ret = php_stream_tell(intern->u.file.stream); in SPL_METHOD()
2759 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2766 spl_filesystem_file_free_line(intern TSRMLS_CC); in SPL_METHOD()
2767 RETURN_LONG(php_stream_seek(intern->u.file.stream, pos, whence)); in SPL_METHOD()
2774 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2778 spl_filesystem_file_free_line(intern TSRMLS_CC); in SPL_METHOD()
2780 result = php_stream_getc(intern->u.file.stream); in SPL_METHOD()
2786 intern->u.file.current_line_num++; in SPL_METHOD()
2799 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2803 if (intern->u.file.max_line_len > 0) { in SPL_METHOD()
2804 ZVAL_LONG(arg2, intern->u.file.max_line_len); in SPL_METHOD()
2809 spl_filesystem_file_free_line(intern TSRMLS_CC); in SPL_METHOD()
2810 intern->u.file.current_line_num++; in SPL_METHOD()
2821 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2823 RETURN_LONG(php_stream_passthru(intern->u.file.stream)); in SPL_METHOD()
2830 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2832 spl_filesystem_file_free_line(intern TSRMLS_CC); in SPL_METHOD()
2833 intern->u.file.current_line_num++; in SPL_METHOD()
2843 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2859 RETURN_LONG(php_stream_write(intern->u.file.stream, str, str_len)); in SPL_METHOD()
2864 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2881 …Z_STRLEN_P(return_value) = php_stream_read(intern->u.file.stream, Z_STRVAL_P(return_value), length… in SPL_METHOD()
2897 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2904 if (!php_stream_truncate_supported(intern->u.file.stream)) { in SPL_METHOD()
2905 …zend_throw_exception_ex(spl_ce_LogicException, 0 TSRMLS_CC, "Can't truncate file %s", intern->file… in SPL_METHOD()
2909 RETURN_BOOL(0 == php_stream_truncate_set_size(intern->u.file.stream, size)); in SPL_METHOD()
2916 …spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSR… in SPL_METHOD() local
2923 …_LogicException, 0 TSRMLS_CC, "Can't seek file %s to negative line %ld", intern->file_name, line_p… in SPL_METHOD()
2927 spl_filesystem_file_rewind(getThis(), intern TSRMLS_CC); in SPL_METHOD()
2929 while(intern->u.file.current_line_num < line_pos) { in SPL_METHOD()
2930 if (spl_filesystem_file_read_line(getThis(), intern, 1 TSRMLS_CC) == FAILURE) { in SPL_METHOD()