Lines Matching refs:intern

61 #define CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern) \  argument
62 if (!(intern)->u.dir.dirp) { \
67 static void spl_filesystem_file_free_line(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_file_free_line() argument
69 if (intern->u.file.current_line) { in spl_filesystem_file_free_line()
70 efree(intern->u.file.current_line); in spl_filesystem_file_free_line()
71 intern->u.file.current_line = NULL; in spl_filesystem_file_free_line()
73 if (!Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_free_line()
74 zval_ptr_dtor(&intern->u.file.current_zval); in spl_filesystem_file_free_line()
75 ZVAL_UNDEF(&intern->u.file.current_zval); in spl_filesystem_file_free_line()
81 spl_filesystem_object *intern = spl_filesystem_from_obj(object); in spl_filesystem_object_destroy_object() local
85 switch(intern->type) { in spl_filesystem_object_destroy_object()
87 if (intern->u.dir.dirp) { in spl_filesystem_object_destroy_object()
88 php_stream_close(intern->u.dir.dirp); in spl_filesystem_object_destroy_object()
89 intern->u.dir.dirp = NULL; in spl_filesystem_object_destroy_object()
93 if (intern->u.file.stream) { in spl_filesystem_object_destroy_object()
99 if (!intern->u.file.stream->is_persistent) { in spl_filesystem_object_destroy_object()
100 php_stream_close(intern->u.file.stream); in spl_filesystem_object_destroy_object()
102 php_stream_pclose(intern->u.file.stream); in spl_filesystem_object_destroy_object()
104 intern->u.file.stream = NULL; in spl_filesystem_object_destroy_object()
105 ZVAL_UNDEF(&intern->u.file.zresource); in spl_filesystem_object_destroy_object()
115 spl_filesystem_object *intern = spl_filesystem_from_obj(object); in spl_filesystem_object_free_storage() local
117 if (intern->oth_handler && intern->oth_handler->dtor) { in spl_filesystem_object_free_storage()
118 intern->oth_handler->dtor(intern); in spl_filesystem_object_free_storage()
121 zend_object_std_dtor(&intern->std); in spl_filesystem_object_free_storage()
123 if (intern->path) { in spl_filesystem_object_free_storage()
124 zend_string_release(intern->path); in spl_filesystem_object_free_storage()
126 if (intern->file_name) { in spl_filesystem_object_free_storage()
127 zend_string_release(intern->file_name); in spl_filesystem_object_free_storage()
129 switch(intern->type) { in spl_filesystem_object_free_storage()
133 if (intern->u.dir.sub_path) { in spl_filesystem_object_free_storage()
134 zend_string_release(intern->u.dir.sub_path); in spl_filesystem_object_free_storage()
138 if (intern->u.file.open_mode) { in spl_filesystem_object_free_storage()
139 zend_string_release(intern->u.file.open_mode); in spl_filesystem_object_free_storage()
141 if (intern->orig_path) { in spl_filesystem_object_free_storage()
142 zend_string_release(intern->orig_path); in spl_filesystem_object_free_storage()
144 spl_filesystem_file_free_line(intern); in spl_filesystem_object_free_storage()
162 spl_filesystem_object *intern; in spl_filesystem_object_new_ex() local
164 intern = emalloc(sizeof(spl_filesystem_object) + zend_object_properties_size(class_type)); in spl_filesystem_object_new_ex()
165 memset(intern, 0, in spl_filesystem_object_new_ex()
169 intern->file_class = spl_ce_SplFileObject; in spl_filesystem_object_new_ex()
170 intern->info_class = spl_ce_SplFileInfo; in spl_filesystem_object_new_ex()
172 zend_object_std_init(&intern->std, class_type); in spl_filesystem_object_new_ex()
173 object_properties_init(&intern->std, class_type); in spl_filesystem_object_new_ex()
174 intern->std.handlers = &spl_filesystem_object_handlers; in spl_filesystem_object_new_ex()
176 return &intern->std; in spl_filesystem_object_new_ex()
197 PHPAPI char* spl_filesystem_object_get_path(spl_filesystem_object *intern, size_t *len) /* {{{ */ in spl_filesystem_object_get_path() argument
200 if (intern->type == SPL_FS_DIR) { in spl_filesystem_object_get_path()
201 if (php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in spl_filesystem_object_get_path()
202 return php_glob_stream_get_path(intern->u.dir.dirp, len); in spl_filesystem_object_get_path()
207 *len = intern->path ? ZSTR_LEN(intern->path) : 0; in spl_filesystem_object_get_path()
209 return intern->path ? ZSTR_VAL(intern->path) : NULL; in spl_filesystem_object_get_path()
212 static inline int spl_filesystem_object_get_file_name(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_object_get_file_name() argument
214 if (intern->file_name) { in spl_filesystem_object_get_file_name()
219 switch (intern->type) { in spl_filesystem_object_get_file_name()
230 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in spl_filesystem_object_get_file_name()
232 path = spl_filesystem_object_get_path(intern, &path_len); in spl_filesystem_object_get_file_name()
234 name_len = strlen(intern->u.dir.entry.d_name); in spl_filesystem_object_get_file_name()
236 intern->file_name = zend_string_init(intern->u.dir.entry.d_name, name_len, 0); in spl_filesystem_object_get_file_name()
241 memcpy(ZSTR_VAL(file_name) + path_len + 1, intern->u.dir.entry.d_name, name_len); in spl_filesystem_object_get_file_name()
243 intern->file_name = file_name; in spl_filesystem_object_get_file_name()
251 static int spl_filesystem_dir_read(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_dir_read() argument
253 if (intern->file_name) { in spl_filesystem_dir_read()
255 zend_string_release(intern->file_name); in spl_filesystem_dir_read()
256 intern->file_name = NULL; in spl_filesystem_dir_read()
258 if (!intern->u.dir.dirp || !php_stream_readdir(intern->u.dir.dirp, &intern->u.dir.entry)) { in spl_filesystem_dir_read()
259 intern->u.dir.entry.d_name[0] = '\0'; in spl_filesystem_dir_read()
278 static void spl_filesystem_dir_open(spl_filesystem_object* intern, zend_string *path) in spl_filesystem_dir_open() argument
280 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in spl_filesystem_dir_open()
282 intern->type = SPL_FS_DIR; in spl_filesystem_dir_open()
283 intern->u.dir.dirp = php_stream_opendir(ZSTR_VAL(path), REPORT_ERRORS, FG(default_context)); in spl_filesystem_dir_open()
286 intern->path = zend_string_init(ZSTR_VAL(path), ZSTR_LEN(path)-1, 0); in spl_filesystem_dir_open()
288 intern->path = zend_string_copy(path); in spl_filesystem_dir_open()
290 intern->u.dir.index = 0; in spl_filesystem_dir_open()
292 if (EG(exception) || intern->u.dir.dirp == NULL) { in spl_filesystem_dir_open()
293 intern->u.dir.entry.d_name[0] = '\0'; in spl_filesystem_dir_open()
301 spl_filesystem_dir_read(intern); in spl_filesystem_dir_open()
302 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in spl_filesystem_dir_open()
309 static zend_result spl_filesystem_file_open(spl_filesystem_object *intern, bool use_include_path) /… in spl_filesystem_file_open() argument
313 intern->type = SPL_FS_FILE; in spl_filesystem_file_open()
314 php_stat(intern->file_name, FS_IS_DIR, &tmp); in spl_filesystem_file_open()
316 zend_string_release(intern->u.file.open_mode); in spl_filesystem_file_open()
317 intern->u.file.open_mode = NULL; in spl_filesystem_file_open()
318 intern->file_name = NULL; in spl_filesystem_file_open()
323 intern->u.file.context = php_stream_context_from_zval(intern->u.file.zcontext, 0); in spl_filesystem_file_open()
324intern->u.file.stream = php_stream_open_wrapper_ex(ZSTR_VAL(intern->file_name), ZSTR_VAL(intern->u… in spl_filesystem_file_open()
326 if (!ZSTR_LEN(intern->file_name) || !intern->u.file.stream) { in spl_filesystem_file_open()
328 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot open file '%s'", ZSTR_VAL(intern->file… in spl_filesystem_file_open()
330 zend_string_release(intern->u.file.open_mode); in spl_filesystem_file_open()
331 intern->u.file.open_mode = NULL; in spl_filesystem_file_open()
332 intern->file_name = NULL; /* until here it is not a copy */ in spl_filesystem_file_open()
343 …if (ZSTR_LEN(intern->file_name) > 1 && IS_SLASH_AT(ZSTR_VAL(intern->file_name), ZSTR_LEN(intern->f… in spl_filesystem_file_open()
344intern->file_name = zend_string_init(ZSTR_VAL(intern->file_name), ZSTR_LEN(intern->file_name)-1, 0… in spl_filesystem_file_open()
346 intern->file_name = zend_string_copy(intern->file_name); in spl_filesystem_file_open()
349intern->orig_path = zend_string_init(intern->u.file.stream->orig_path, strlen(intern->u.file.strea… in spl_filesystem_file_open()
352 ZVAL_RES(&intern->u.file.zresource, intern->u.file.stream->res); in spl_filesystem_file_open()
357 intern->u.file.delimiter = ','; in spl_filesystem_file_open()
358 intern->u.file.enclosure = '"'; in spl_filesystem_file_open()
359 intern->u.file.escape = (unsigned char) '\\'; in spl_filesystem_file_open()
361intern->u.file.func_getCurr = zend_hash_str_find_ptr(&intern->std.ce->function_table, "getcurrentl… in spl_filesystem_file_open()
376 spl_filesystem_object *intern; in spl_filesystem_object_clone() local
382 intern = spl_filesystem_from_obj(new_object); in spl_filesystem_object_clone()
384 intern->flags = source->flags; in spl_filesystem_object_clone()
389 intern->path = zend_string_copy(source->path); in spl_filesystem_object_clone()
392 intern->file_name = zend_string_copy(source->file_name); in spl_filesystem_object_clone()
396 spl_filesystem_dir_open(intern, source->path); in spl_filesystem_object_clone()
401 spl_filesystem_dir_read(intern); in spl_filesystem_object_clone()
402 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in spl_filesystem_object_clone()
404 intern->u.dir.index = index; in spl_filesystem_object_clone()
410 intern->file_class = source->file_class; in spl_filesystem_object_clone()
411 intern->info_class = source->info_class; in spl_filesystem_object_clone()
412 intern->oth = source->oth; in spl_filesystem_object_clone()
413 intern->oth_handler = source->oth_handler; in spl_filesystem_object_clone()
417 if (intern->oth_handler && intern->oth_handler->clone) { in spl_filesystem_object_clone()
418 intern->oth_handler->clone(source, intern); in spl_filesystem_object_clone()
425 static void spl_filesystem_info_set_filename(spl_filesystem_object *intern, zend_string *path) /* {… in spl_filesystem_info_set_filename() argument
429 if (intern->file_name) { in spl_filesystem_info_set_filename()
430 zend_string_release(intern->file_name); in spl_filesystem_info_set_filename()
438 intern->file_name = zend_string_init(ZSTR_VAL(path), path_len, 0); in spl_filesystem_info_set_filename()
440 intern->file_name = zend_string_copy(path); in spl_filesystem_info_set_filename()
449 if (intern->path) { in spl_filesystem_info_set_filename()
450 zend_string_release(intern->path); in spl_filesystem_info_set_filename()
452 intern->path = zend_string_init(ZSTR_VAL(path), path_len, 0); in spl_filesystem_info_set_filename()
457 spl_filesystem_object *intern; in spl_filesystem_object_create_info() local
469 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_info()
470 RETVAL_OBJ(&intern->std); in spl_filesystem_object_create_info()
477 spl_filesystem_info_set_filename(intern, file_path); in spl_filesystem_object_create_info()
480 return intern; in spl_filesystem_object_create_info()
485 spl_filesystem_object *intern; in spl_filesystem_object_create_type() local
505 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_type()
506 RETVAL_OBJ(&intern->std); in spl_filesystem_object_create_type()
520 intern->file_name = zend_string_copy(source->file_name); in spl_filesystem_object_create_type()
523 intern->path = zend_string_copy(source->path); in spl_filesystem_object_create_type()
525 intern->path = zend_string_init(path, path_len, 0); in spl_filesystem_object_create_type()
542 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_type()
543 RETVAL_OBJ(&intern->std); in spl_filesystem_object_create_type()
559 intern->file_name = source->file_name; in spl_filesystem_object_create_type()
562 intern->path = zend_string_copy(source->path); in spl_filesystem_object_create_type()
564 intern->path = zend_string_init(path, path_len, 0); in spl_filesystem_object_create_type()
567 intern->u.file.open_mode = zend_string_copy(open_mode); in spl_filesystem_object_create_type()
568 intern->u.file.zcontext = resource; in spl_filesystem_object_create_type()
572 if (spl_filesystem_file_open(intern, use_include_path) == FAILURE) { in spl_filesystem_object_create_type()
595 static zend_string *spl_filesystem_object_get_pathname(spl_filesystem_object *intern) { /* {{{ */ in spl_filesystem_object_get_pathname() argument
596 switch (intern->type) { in spl_filesystem_object_get_pathname()
599 return intern->file_name; in spl_filesystem_object_get_pathname()
601 if (intern->u.dir.entry.d_name[0]) { in spl_filesystem_object_get_pathname()
602 spl_filesystem_object_get_file_name(intern); in spl_filesystem_object_get_pathname()
603 return intern->file_name; in spl_filesystem_object_get_pathname()
612 spl_filesystem_object *intern = spl_filesystem_from_obj(object); in spl_filesystem_object_get_debug_info() local
619 if (!intern->std.properties) { in spl_filesystem_object_get_debug_info()
620 rebuild_object_properties(&intern->std); in spl_filesystem_object_get_debug_info()
623 rv = zend_array_dup(intern->std.properties); in spl_filesystem_object_get_debug_info()
626 path = spl_filesystem_object_get_pathname(intern); in spl_filesystem_object_get_debug_info()
635 if (intern->file_name) { in spl_filesystem_object_get_debug_info()
639 spl_filesystem_object_get_path(intern, &path_len); in spl_filesystem_object_get_debug_info()
641 if (path_len && path_len < ZSTR_LEN(intern->file_name)) { in spl_filesystem_object_get_debug_info()
642 …ZVAL_STRINGL(&tmp, ZSTR_VAL(intern->file_name) + path_len + 1, ZSTR_LEN(intern->file_name) - (path… in spl_filesystem_object_get_debug_info()
644 ZVAL_STR_COPY(&tmp, intern->file_name); in spl_filesystem_object_get_debug_info()
649 if (intern->type == SPL_FS_DIR) { in spl_filesystem_object_get_debug_info()
652 if (php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in spl_filesystem_object_get_debug_info()
653 ZVAL_STR_COPY(&tmp, intern->path); in spl_filesystem_object_get_debug_info()
661 if (intern->u.dir.sub_path) { in spl_filesystem_object_get_debug_info()
662 ZVAL_STR_COPY(&tmp, intern->u.dir.sub_path); in spl_filesystem_object_get_debug_info()
669 if (intern->type == SPL_FS_FILE) { in spl_filesystem_object_get_debug_info()
671 ZVAL_STR_COPY(&tmp, intern->u.file.open_mode); in spl_filesystem_object_get_debug_info()
675 stmp[0] = intern->u.file.delimiter; in spl_filesystem_object_get_debug_info()
680 stmp[0] = intern->u.file.enclosure; in spl_filesystem_object_get_debug_info()
712 spl_filesystem_object *intern; in spl_filesystem_object_construct() local
740 intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in spl_filesystem_object_construct()
741 if (intern->path) { in spl_filesystem_object_construct()
746 intern->flags = flags; in spl_filesystem_object_construct()
753 spl_filesystem_dir_open(intern, path); in spl_filesystem_object_construct()
758 spl_filesystem_dir_open(intern, path); in spl_filesystem_object_construct()
763intern->u.dir.is_recursive = instanceof_function(intern->std.ce, spl_ce_RecursiveDirectoryIterator… in spl_filesystem_object_construct()
777 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
783 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
784 intern->u.dir.index = 0; in PHP_METHOD()
785 php_stream_rewinddir(intern->u.dir.dirp); in PHP_METHOD()
786 spl_filesystem_dir_read(intern); in PHP_METHOD()
793 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
799 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
800 RETURN_LONG(intern->u.dir.index); in PHP_METHOD()
819 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
820 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in PHP_METHOD()
826 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
827 intern->u.dir.index++; in PHP_METHOD()
829 spl_filesystem_dir_read(intern); in PHP_METHOD()
830 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in PHP_METHOD()
831 if (intern->file_name) { in PHP_METHOD()
832 zend_string_release(intern->file_name); in PHP_METHOD()
833 intern->file_name = NULL; in PHP_METHOD()
841 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
849 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
850 if (intern->u.dir.index > pos) { in PHP_METHOD()
852 …zend_call_method_with_0_params(Z_OBJ_P(ZEND_THIS), Z_OBJCE_P(ZEND_THIS), &intern->u.dir.func_rewin… in PHP_METHOD()
855 while (intern->u.dir.index < pos) { in PHP_METHOD()
857 …zend_call_method_with_0_params(Z_OBJ_P(ZEND_THIS), Z_OBJCE_P(ZEND_THIS), &intern->u.dir.func_valid… in PHP_METHOD()
864 …zend_call_method_with_0_params(Z_OBJ_P(ZEND_THIS), Z_OBJCE_P(ZEND_THIS), &intern->u.dir.func_next,… in PHP_METHOD()
871 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
877 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
878 RETURN_BOOL(intern->u.dir.entry.d_name[0] != '\0'); in PHP_METHOD()
885 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
893 path = spl_filesystem_object_get_path(intern, &path_len); in PHP_METHOD()
905 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
912 if (!intern->file_name) { in PHP_METHOD()
917 spl_filesystem_object_get_path(intern, &path_len); in PHP_METHOD()
919 if (path_len && path_len < ZSTR_LEN(intern->file_name)) { in PHP_METHOD()
920 …RETURN_STRINGL(ZSTR_VAL(intern->file_name) + path_len + 1, ZSTR_LEN(intern->file_name) - (path_len… in PHP_METHOD()
922 RETURN_STR_COPY(intern->file_name); in PHP_METHOD()
930 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
936 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
937 RETURN_STRING(intern->u.dir.entry.d_name); in PHP_METHOD()
944 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
956 if (!intern->file_name) { in PHP_METHOD()
961 spl_filesystem_object_get_path(intern, &path_len); in PHP_METHOD()
963 if (path_len && path_len < ZSTR_LEN(intern->file_name)) { in PHP_METHOD()
964 fname = ZSTR_VAL(intern->file_name) + path_len + 1; in PHP_METHOD()
965 flen = ZSTR_LEN(intern->file_name) - (path_len + 1); in PHP_METHOD()
967 fname = ZSTR_VAL(intern->file_name); in PHP_METHOD()
968 flen = ZSTR_LEN(intern->file_name); in PHP_METHOD()
989 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
998 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
999 fname = php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), NULL, 0); in PHP_METHOD()
1016 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1025 if (!intern->file_name) { in PHP_METHOD()
1030 spl_filesystem_object_get_path(intern, &path_len); in PHP_METHOD()
1032 if (path_len && path_len < ZSTR_LEN(intern->file_name)) { in PHP_METHOD()
1033 fname = ZSTR_VAL(intern->file_name) + path_len + 1; in PHP_METHOD()
1034 flen = ZSTR_LEN(intern->file_name) - (path_len + 1); in PHP_METHOD()
1036 fname = ZSTR_VAL(intern->file_name); in PHP_METHOD()
1037 flen = ZSTR_LEN(intern->file_name); in PHP_METHOD()
1047 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1056 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
1057 fname = php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), suffix, slen); in PHP_METHOD()
1066 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1072 path = spl_filesystem_object_get_pathname(intern); in PHP_METHOD()
1084 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1090 if (SPL_FILE_DIR_KEY(intern, SPL_FILE_DIR_KEY_AS_FILENAME)) { in PHP_METHOD()
1091 RETURN_STRING(intern->u.dir.entry.d_name); in PHP_METHOD()
1093 if (spl_filesystem_object_get_file_name(intern) != SUCCESS) { in PHP_METHOD()
1096 RETURN_STR_COPY(intern->file_name); in PHP_METHOD()
1104 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1110 if (SPL_FILE_DIR_CURRENT(intern, SPL_FILE_DIR_CURRENT_AS_PATHNAME)) { in PHP_METHOD()
1111 if (spl_filesystem_object_get_file_name(intern) != SUCCESS) { in PHP_METHOD()
1114 RETURN_STR_COPY(intern->file_name); in PHP_METHOD()
1115 } else if (SPL_FILE_DIR_CURRENT(intern, SPL_FILE_DIR_CURRENT_AS_FILEINFO)) { in PHP_METHOD()
1116 if (spl_filesystem_object_get_file_name(intern) != SUCCESS) { in PHP_METHOD()
1119 spl_filesystem_object_create_type(0, intern, SPL_FS_INFO, NULL, return_value); in PHP_METHOD()
1129 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1135 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
1136 RETURN_BOOL(spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in PHP_METHOD()
1146 spl_filesystem_object *intern; in PHP_METHOD() local
1153 intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD()
1155 spl_filesystem_info_set_filename(intern, path); in PHP_METHOD()
1165 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); \
1170 if (spl_filesystem_object_get_file_name(intern) != SUCCESS) { \
1174 php_stat(intern->file_name, func_num, return_value); \
1242 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in FileInfoFunction() local
1250 if (intern->file_name == NULL) { in FileInfoFunction()
1251 if (spl_filesystem_object_get_file_name(intern) != SUCCESS) { in FileInfoFunction()
1256 if (intern->file_name == NULL) { in FileInfoFunction()
1260 if (!IS_ABSOLUTE_PATH(ZSTR_VAL(intern->file_name), ZSTR_LEN(intern->file_name))) { in FileInfoFunction()
1262 …if (!expand_filepath_with_mode(ZSTR_VAL(intern->file_name), expanded_path, NULL, 0, CWD_EXPAND )) { in FileInfoFunction()
1268 ret = php_sys_readlink(ZSTR_VAL(intern->file_name), buff, MAXPATHLEN-1); in FileInfoFunction()
1275 …pl_ce_RuntimeException, 0, "Unable to read link %s, error: %s", ZSTR_VAL(intern->file_name), strer… in FileInfoFunction()
1289 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1297 if (intern->type == SPL_FS_DIR && !intern->file_name && intern->u.dir.entry.d_name[0]) { in PHP_METHOD()
1298 if (spl_filesystem_object_get_file_name(intern) != SUCCESS) { in PHP_METHOD()
1303 if (intern->orig_path) { in PHP_METHOD()
1304 filename = ZSTR_VAL(intern->orig_path); in PHP_METHOD()
1306 filename = intern->file_name ? ZSTR_VAL(intern->file_name) : NULL; in PHP_METHOD()
1326 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1328 spl_filesystem_object_create_type(ZEND_NUM_ARGS(), intern, SPL_FS_FILE, NULL, return_value); in PHP_METHOD()
1335 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1342 intern->file_class = ce; in PHP_METHOD()
1349 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1356 intern->info_class = ce; in PHP_METHOD()
1363 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1364 zend_class_entry *ce = intern->info_class; in PHP_METHOD()
1370 spl_filesystem_object_create_type(ZEND_NUM_ARGS(), intern, SPL_FS_INFO, ce, return_value); in PHP_METHOD()
1377 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1378 zend_class_entry *ce = intern->info_class; in PHP_METHOD()
1385 path = spl_filesystem_object_get_pathname(intern); in PHP_METHOD()
1389 spl_filesystem_object_create_info(intern, dpath, ce, return_value); in PHP_METHOD()
1422 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1423 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in PHP_METHOD()
1429 intern->u.dir.index = 0; in PHP_METHOD()
1430 if (intern->u.dir.dirp) { in PHP_METHOD()
1431 php_stream_rewinddir(intern->u.dir.dirp); in PHP_METHOD()
1434 spl_filesystem_dir_read(intern); in PHP_METHOD()
1435 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in PHP_METHOD()
1442 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1448 …RETURN_LONG(intern->flags & (SPL_FILE_DIR_KEY_MODE_MASK | SPL_FILE_DIR_CURRENT_MODE_MASK | SPL_FIL… in PHP_METHOD()
1454 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1461intern->flags &= ~(SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_M… in PHP_METHOD()
1462intern->flags |= ((SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_M… in PHP_METHOD()
1469 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1476 if (spl_filesystem_is_invalid_or_dot(intern->u.dir.entry.d_name)) { in PHP_METHOD()
1479 if (spl_filesystem_object_get_file_name(intern) != SUCCESS) { in PHP_METHOD()
1482 php_stat(intern->file_name, FS_LPERMS, return_value); in PHP_METHOD()
1489 && !(intern->flags & SPL_FILE_DIR_FOLLOW_SYMLINKS)) { in PHP_METHOD()
1492 php_stat(intern->file_name, FS_IS_DIR, return_value); in PHP_METHOD()
1502 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1504 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in PHP_METHOD()
1510 if (spl_filesystem_object_get_file_name(intern) != SUCCESS) { in PHP_METHOD()
1514 ZVAL_LONG(&zflags, intern->flags); in PHP_METHOD()
1515 ZVAL_STR_COPY(&zpath, intern->file_name); in PHP_METHOD()
1521 size_t name_len = strlen(intern->u.dir.entry.d_name); in PHP_METHOD()
1522 if (intern->u.dir.sub_path && ZSTR_LEN(intern->u.dir.sub_path)) { in PHP_METHOD()
1523 zend_string *sub_path = zend_string_alloc(ZSTR_LEN(intern->u.dir.sub_path) + 1 + name_len, 0); in PHP_METHOD()
1524 memcpy(ZSTR_VAL(sub_path), ZSTR_VAL(intern->u.dir.sub_path), ZSTR_LEN(intern->u.dir.sub_path)); in PHP_METHOD()
1525 ZSTR_VAL(sub_path)[ZSTR_LEN(intern->u.dir.sub_path)] = slash; in PHP_METHOD()
1526 …memcpy(ZSTR_VAL(sub_path) + ZSTR_LEN(intern->u.dir.sub_path) + 1, intern->u.dir.entry.d_name, name… in PHP_METHOD()
1527 ZSTR_VAL(sub_path)[ZSTR_LEN(intern->u.dir.sub_path) + 1 + name_len] = 0; in PHP_METHOD()
1530 subdir->u.dir.sub_path = zend_string_init(intern->u.dir.entry.d_name, name_len, 0); in PHP_METHOD()
1532 subdir->info_class = intern->info_class; in PHP_METHOD()
1533 subdir->file_class = intern->file_class; in PHP_METHOD()
1534 subdir->oth = intern->oth; in PHP_METHOD()
1542 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1548 if (intern->u.dir.sub_path) { in PHP_METHOD()
1549 RETURN_STR_COPY(intern->u.dir.sub_path); in PHP_METHOD()
1559 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1560 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in PHP_METHOD()
1566 if (intern->u.dir.sub_path) { in PHP_METHOD()
1567 …RETURN_NEW_STR(strpprintf(0, "%s%c%s", ZSTR_VAL(intern->u.dir.sub_path), slash, intern->u.dir.entr… in PHP_METHOD()
1569 RETURN_STRING(intern->u.dir.entry.d_name); in PHP_METHOD()
1592 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
1598 if (intern->u.dir.dirp && php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in PHP_METHOD()
1599 RETURN_LONG(php_glob_stream_get_count(intern->u.dir.dirp, NULL)); in PHP_METHOD()
1642 ZVAL_OBJ_COPY(&iterator->intern.data, Z_OBJ_P(object)); in spl_filesystem_dir_get_iterator()
1643 iterator->intern.funcs = &spl_filesystem_dir_it_funcs; in spl_filesystem_dir_get_iterator()
1648 return &iterator->intern; in spl_filesystem_dir_get_iterator()
1656 zval_ptr_dtor(&iterator->intern.data); in spl_filesystem_dir_it_dtor()
1718 zval_ptr_dtor(&iterator->intern.data); in spl_filesystem_tree_it_dtor()
1746 return &iterator->intern.data; in spl_filesystem_tree_it_current_data()
1834 ZVAL_OBJ_COPY(&iterator->intern.data, Z_OBJ_P(object)); in spl_filesystem_tree_get_iterator()
1835 iterator->intern.funcs = &spl_filesystem_tree_it_funcs; in spl_filesystem_tree_get_iterator()
1837 return &iterator->intern; in spl_filesystem_tree_get_iterator()
1841 static zend_result spl_filesystem_file_read_ex(spl_filesystem_object *intern, bool silent, zend_lon… in spl_filesystem_file_read_ex() argument
1846 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_ex()
1848 if (php_stream_eof(intern->u.file.stream)) { in spl_filesystem_file_read_ex()
1850 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot read from file %s", ZSTR_VAL(intern->f… in spl_filesystem_file_read_ex()
1855 if (intern->u.file.max_line_len > 0) { in spl_filesystem_file_read_ex()
1856 buf = safe_emalloc((intern->u.file.max_line_len + 1), sizeof(char), 0); in spl_filesystem_file_read_ex()
1857 …if (php_stream_get_line(intern->u.file.stream, buf, intern->u.file.max_line_len + 1, &line_len) ==… in spl_filesystem_file_read_ex()
1864 buf = php_stream_get_line(intern->u.file.stream, NULL, 0, &line_len); in spl_filesystem_file_read_ex()
1868 intern->u.file.current_line = estrdup(""); in spl_filesystem_file_read_ex()
1869 intern->u.file.current_line_len = 0; in spl_filesystem_file_read_ex()
1871 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_DROP_NEW_LINE)) { in spl_filesystem_file_read_ex()
1881 intern->u.file.current_line = buf; in spl_filesystem_file_read_ex()
1882 intern->u.file.current_line_len = line_len; in spl_filesystem_file_read_ex()
1884 intern->u.file.current_line_num += line_add; in spl_filesystem_file_read_ex()
1889 static inline zend_result spl_filesystem_file_read(spl_filesystem_object *intern, bool silent) in spl_filesystem_file_read() argument
1891 zend_long line_add = (intern->u.file.current_line) ? 1 : 0; in spl_filesystem_file_read()
1892 return spl_filesystem_file_read_ex(intern, silent, line_add); in spl_filesystem_file_read()
1895 static zend_result spl_filesystem_file_read_csv(spl_filesystem_object *intern, char delimiter, char… in spl_filesystem_file_read_csv() argument
1898 int ret = spl_filesystem_file_read(intern, 1); in spl_filesystem_file_read_csv()
1902 …} while (!intern->u.file.current_line_len && SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_SKIP_EMPT… in spl_filesystem_file_read_csv()
1904 size_t buf_len = intern->u.file.current_line_len; in spl_filesystem_file_read_csv()
1905 char *buf = estrndup(intern->u.file.current_line, buf_len); in spl_filesystem_file_read_csv()
1907 if (!Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_read_csv()
1908 zval_ptr_dtor(&intern->u.file.current_zval); in spl_filesystem_file_read_csv()
1909 ZVAL_UNDEF(&intern->u.file.current_zval); in spl_filesystem_file_read_csv()
1912 …php_fgetcsv(intern->u.file.stream, delimiter, enclosure, escape, buf_len, buf, &intern->u.file.cur… in spl_filesystem_file_read_csv()
1914 ZVAL_COPY(return_value, &intern->u.file.current_zval); in spl_filesystem_file_read_csv()
1920 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
1925 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV)) { in spl_filesystem_file_read_line_ex()
1926 …return spl_filesystem_file_read_csv(intern, intern->u.file.delimiter, intern->u.file.enclosure, in… in spl_filesystem_file_read_line_ex()
1928 if (intern->u.file.func_getCurr->common.scope != spl_ce_SplFileObject) { in spl_filesystem_file_read_line_ex()
1930 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_line_ex()
1932 if (php_stream_eof(intern->u.file.stream)) { in spl_filesystem_file_read_line_ex()
1934 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot read from file %s", ZSTR_VAL(intern->f… in spl_filesystem_file_read_line_ex()
1938 …zend_call_method_with_0_params(Z_OBJ_P(this_ptr), Z_OBJCE_P(ZEND_THIS), &intern->u.file.func_getCu… in spl_filesystem_file_read_line_ex()
1950 if (intern->u.file.current_line || !Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_read_line_ex()
1951 intern->u.file.current_line_num++; in spl_filesystem_file_read_line_ex()
1953 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_line_ex()
1954 intern->u.file.current_line = estrndup(Z_STRVAL(retval), Z_STRLEN(retval)); in spl_filesystem_file_read_line_ex()
1955 intern->u.file.current_line_len = Z_STRLEN(retval); in spl_filesystem_file_read_line_ex()
1959 return spl_filesystem_file_read(intern, silent); in spl_filesystem_file_read_line_ex()
1963 static int spl_filesystem_file_is_empty_line(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_file_is_empty_line() argument
1965 if (intern->u.file.current_line) { in spl_filesystem_file_is_empty_line()
1966 return intern->u.file.current_line_len == 0; in spl_filesystem_file_is_empty_line()
1967 } else if (!Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_is_empty_line()
1968 switch(Z_TYPE(intern->u.file.current_zval)) { in spl_filesystem_file_is_empty_line()
1970 return Z_STRLEN(intern->u.file.current_zval) == 0; in spl_filesystem_file_is_empty_line()
1972 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) in spl_filesystem_file_is_empty_line()
1973 && zend_hash_num_elements(Z_ARRVAL(intern->u.file.current_zval)) == 1) { in spl_filesystem_file_is_empty_line()
1977 while (Z_ISUNDEF(Z_ARRVAL(intern->u.file.current_zval)->arData[idx].val)) { in spl_filesystem_file_is_empty_line()
1980 first = &Z_ARRVAL(intern->u.file.current_zval)->arData[idx].val; in spl_filesystem_file_is_empty_line()
1983 return zend_hash_num_elements(Z_ARRVAL(intern->u.file.current_zval)) == 0; in spl_filesystem_file_is_empty_line()
1995 static int spl_filesystem_file_read_line(zval * this_ptr, spl_filesystem_object *intern, int silent… in spl_filesystem_file_read_line() argument
1997 int ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent); in spl_filesystem_file_read_line()
1999 …while (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_SKIP_EMPTY) && ret == SUCCESS && spl_filesystem… in spl_filesystem_file_read_line()
2000 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_line()
2001 ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent); in spl_filesystem_file_read_line()
2008 static void spl_filesystem_file_rewind(zval * this_ptr, spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_file_rewind() argument
2010 if (!intern->u.file.stream) { in spl_filesystem_file_rewind()
2014 if (-1 == php_stream_rewind(intern->u.file.stream)) { in spl_filesystem_file_rewind()
2015 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot rewind file %s", ZSTR_VAL(intern->file… in spl_filesystem_file_rewind()
2017 spl_filesystem_file_free_line(intern); in spl_filesystem_file_rewind()
2018 intern->u.file.current_line_num = 0; in spl_filesystem_file_rewind()
2020 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in spl_filesystem_file_rewind()
2021 spl_filesystem_file_read_line(this_ptr, intern, 1); in spl_filesystem_file_rewind()
2028 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2034 intern->u.file.open_mode = ZSTR_CHAR('r'); in PHP_METHOD()
2037 &intern->file_name, &open_mode, in PHP_METHOD()
2038 &use_include_path, &intern->u.file.zcontext) == FAILURE) { in PHP_METHOD()
2039 intern->u.file.open_mode = NULL; in PHP_METHOD()
2040 intern->file_name = NULL; in PHP_METHOD()
2044 intern->u.file.open_mode = zend_string_copy(open_mode); in PHP_METHOD()
2048 zend_result retval = spl_filesystem_file_open(intern, use_include_path); in PHP_METHOD()
2054 path_len = strlen(intern->u.file.stream->orig_path); in PHP_METHOD()
2056 if (path_len > 1 && IS_SLASH_AT(intern->u.file.stream->orig_path, path_len-1)) { in PHP_METHOD()
2060 while (path_len > 1 && !IS_SLASH_AT(intern->u.file.stream->orig_path, path_len-1)) { in PHP_METHOD()
2068 intern->path = zend_string_init(intern->u.file.stream->orig_path, path_len, 0); in PHP_METHOD()
2076 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2090 intern->file_name = file_name; in PHP_METHOD()
2091 intern->u.file.open_mode = zend_string_init("wb", sizeof("wb")-1, 0); in PHP_METHOD()
2095 if (spl_filesystem_file_open(intern, /* use_include_path */ false) == SUCCESS) { in PHP_METHOD()
2096 intern->path = ZSTR_EMPTY_ALLOC(); in PHP_METHOD()
2105 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2111 spl_filesystem_file_rewind(ZEND_THIS, intern); in PHP_METHOD()
2117 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2123 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2125 RETURN_BOOL(php_stream_eof(intern->u.file.stream)); in PHP_METHOD()
2131 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2137 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in PHP_METHOD()
2138 RETURN_BOOL(intern->u.file.current_line || !Z_ISUNDEF(intern->u.file.current_zval)); in PHP_METHOD()
2140 if(!intern->u.file.stream) { in PHP_METHOD()
2143 RETVAL_BOOL(!php_stream_eof(intern->u.file.stream)); in PHP_METHOD()
2150 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2156 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2158 if (spl_filesystem_file_read_ex(intern, /* silent */ false, /* line_add */ 1) == FAILURE) { in PHP_METHOD()
2161 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); in PHP_METHOD()
2167 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2173 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2175 if (!intern->u.file.current_line && Z_ISUNDEF(intern->u.file.current_zval)) { in PHP_METHOD()
2176 spl_filesystem_file_read_line(ZEND_THIS, intern, 1); in PHP_METHOD()
2178 …if (intern->u.file.current_line && (!SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) || Z_IS… in PHP_METHOD()
2179 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); in PHP_METHOD()
2180 } else if (!Z_ISUNDEF(intern->u.file.current_zval)) { in PHP_METHOD()
2181 ZEND_ASSERT(!Z_ISREF(intern->u.file.current_zval)); in PHP_METHOD()
2182 RETURN_COPY(&intern->u.file.current_zval); in PHP_METHOD()
2190 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2200 RETURN_LONG(intern->u.file.current_line_num); in PHP_METHOD()
2206 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2212 spl_filesystem_file_free_line(intern); in PHP_METHOD()
2213 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in PHP_METHOD()
2214 spl_filesystem_file_read_line(ZEND_THIS, intern, 1); in PHP_METHOD()
2216 intern->u.file.current_line_num++; in PHP_METHOD()
2222 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2224 if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &intern->flags) == FAILURE) { in PHP_METHOD()
2232 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2238 RETURN_LONG(intern->flags & SPL_FILE_OBJECT_MASK); in PHP_METHOD()
2246 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2257 intern->u.file.max_line_len = max_len; in PHP_METHOD()
2263 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2269 RETURN_LONG((zend_long)intern->u.file.max_line_len); in PHP_METHOD()
2294 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2295 char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure; in PHP_METHOD()
2296 int escape = intern->u.file.escape; in PHP_METHOD()
2304 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2335 if (spl_filesystem_file_read_csv(intern, delimiter, enclosure, escape, return_value) == FAILURE) { in PHP_METHOD()
2344 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2345 char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure; in PHP_METHOD()
2346 int escape = intern->u.file.escape; in PHP_METHOD()
2390 ret = php_fputcsv(intern->u.file.stream, fields, delimiter, enclosure, escape, eol); in PHP_METHOD()
2402 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2441 intern->u.file.delimiter = delimiter; in PHP_METHOD()
2442 intern->u.file.enclosure = enclosure; in PHP_METHOD()
2443 intern->u.file.escape = escape; in PHP_METHOD()
2451 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2456 delimiter[0] = intern->u.file.delimiter; in PHP_METHOD()
2458 enclosure[0] = intern->u.file.enclosure; in PHP_METHOD()
2460 if (intern->u.file.escape == PHP_CSV_NO_ESCAPE) { in PHP_METHOD()
2463 escape[0] = (unsigned char) intern->u.file.escape; in PHP_METHOD()
2476 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2484 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2486 php_flock_common(intern->u.file.stream, operation, 1, wouldblock, return_value); in PHP_METHOD()
2493 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2495 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2497 RETURN_BOOL(!php_stream_flush(intern->u.file.stream)); in PHP_METHOD()
2503 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2506 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2508 ret = php_stream_tell(intern->u.file.stream); in PHP_METHOD()
2520 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2527 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2529 spl_filesystem_file_free_line(intern); in PHP_METHOD()
2530 RETURN_LONG(php_stream_seek(intern->u.file.stream, pos, (int)whence)); in PHP_METHOD()
2536 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2540 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2542 spl_filesystem_file_free_line(intern); in PHP_METHOD()
2544 result = php_stream_getc(intern->u.file.stream); in PHP_METHOD()
2550 intern->u.file.current_line_num++; in PHP_METHOD()
2562 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2564 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2566 RETURN_LONG(php_stream_passthru(intern->u.file.stream)); in PHP_METHOD()
2575 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2581 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2584 if (spl_filesystem_file_read(intern, 0) == FAILURE) { in PHP_METHOD()
2588 …result = php_sscanf_internal(intern->u.file.current_line, ZSTR_VAL(format_str), num_varargs, varar… in PHP_METHOD()
2599 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2609 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2623 written = php_stream_write(intern->u.file.stream, str, str_len); in PHP_METHOD()
2632 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2640 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2647 str = php_stream_read_to_str(intern->u.file.stream, length); in PHP_METHOD()
2657 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2663 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2665 php_fstat(intern->u.file.stream, return_value); in PHP_METHOD()
2672 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2679 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2681 if (!php_stream_truncate_supported(intern->u.file.stream)) { in PHP_METHOD()
2682 …zend_throw_exception_ex(spl_ce_LogicException, 0, "Can't truncate file %s", ZSTR_VAL(intern->file_… in PHP_METHOD()
2686 RETURN_BOOL(0 == php_stream_truncate_set_size(intern->u.file.stream, size)); in PHP_METHOD()
2692 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2699 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2706 spl_filesystem_file_rewind(ZEND_THIS, intern); in PHP_METHOD()
2709 if (spl_filesystem_file_read_line(ZEND_THIS, intern, 1) == FAILURE) { in PHP_METHOD()
2714 if (!SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in PHP_METHOD()
2715 intern->u.file.current_line_num++; in PHP_METHOD()
2716 spl_filesystem_file_free_line(intern); in PHP_METHOD()
2727 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in PHP_METHOD() local
2729 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2731 if (!intern->u.file.current_line && Z_ISUNDEF(intern->u.file.current_zval)) { in PHP_METHOD()
2732 spl_filesystem_file_read_line(ZEND_THIS, intern, 1); in PHP_METHOD()
2735 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); in PHP_METHOD()