Lines Matching refs:intern

61 	zend_object_iterator  intern;  member
72 zend_iterator_init(&it->intern); in spl_filesystem_object_to_iterator()
87 #define CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern) \ argument
88 if (!(intern)->u.dir.dirp) { \
93 static void spl_filesystem_file_free_line(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_file_free_line() argument
95 if (intern->u.file.current_line) { in spl_filesystem_file_free_line()
96 efree(intern->u.file.current_line); in spl_filesystem_file_free_line()
97 intern->u.file.current_line = NULL; in spl_filesystem_file_free_line()
99 if (!Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_free_line()
100 zval_ptr_dtor(&intern->u.file.current_zval); in spl_filesystem_file_free_line()
101 ZVAL_UNDEF(&intern->u.file.current_zval); in spl_filesystem_file_free_line()
107 spl_filesystem_object *intern = spl_filesystem_from_obj(object); in spl_filesystem_object_destroy_object() local
111 switch(intern->type) { in spl_filesystem_object_destroy_object()
113 if (intern->u.dir.dirp) { in spl_filesystem_object_destroy_object()
114 php_stream_close(intern->u.dir.dirp); in spl_filesystem_object_destroy_object()
115 intern->u.dir.dirp = NULL; in spl_filesystem_object_destroy_object()
119 if (intern->u.file.stream) { in spl_filesystem_object_destroy_object()
125 if (!intern->u.file.stream->is_persistent) { in spl_filesystem_object_destroy_object()
126 php_stream_close(intern->u.file.stream); in spl_filesystem_object_destroy_object()
128 php_stream_pclose(intern->u.file.stream); in spl_filesystem_object_destroy_object()
130 intern->u.file.stream = NULL; in spl_filesystem_object_destroy_object()
131 ZVAL_UNDEF(&intern->u.file.zresource); in spl_filesystem_object_destroy_object()
141 spl_filesystem_object *intern = spl_filesystem_from_obj(object); in spl_filesystem_object_free_storage() local
143 if (intern->oth_handler && intern->oth_handler->dtor) { in spl_filesystem_object_free_storage()
144 intern->oth_handler->dtor(intern); in spl_filesystem_object_free_storage()
147 zend_object_std_dtor(&intern->std); in spl_filesystem_object_free_storage()
149 if (intern->path) { in spl_filesystem_object_free_storage()
150 zend_string_release(intern->path); in spl_filesystem_object_free_storage()
152 if (intern->file_name) { in spl_filesystem_object_free_storage()
153 zend_string_release(intern->file_name); in spl_filesystem_object_free_storage()
155 switch(intern->type) { in spl_filesystem_object_free_storage()
159 if (intern->u.dir.sub_path) { in spl_filesystem_object_free_storage()
160 zend_string_release(intern->u.dir.sub_path); in spl_filesystem_object_free_storage()
164 if (intern->u.file.open_mode) { in spl_filesystem_object_free_storage()
165 zend_string_release(intern->u.file.open_mode); in spl_filesystem_object_free_storage()
167 if (intern->orig_path) { in spl_filesystem_object_free_storage()
168 zend_string_release(intern->orig_path); in spl_filesystem_object_free_storage()
170 spl_filesystem_file_free_line(intern); in spl_filesystem_object_free_storage()
188 spl_filesystem_object *intern; in spl_filesystem_object_new_ex() local
190 intern = emalloc(sizeof(spl_filesystem_object) + zend_object_properties_size(class_type)); in spl_filesystem_object_new_ex()
191 memset(intern, 0, in spl_filesystem_object_new_ex()
195 intern->file_class = spl_ce_SplFileObject; in spl_filesystem_object_new_ex()
196 intern->info_class = spl_ce_SplFileInfo; in spl_filesystem_object_new_ex()
198 zend_object_std_init(&intern->std, class_type); in spl_filesystem_object_new_ex()
199 object_properties_init(&intern->std, class_type); in spl_filesystem_object_new_ex()
201 return &intern->std; in spl_filesystem_object_new_ex()
213 PHPAPI zend_string *spl_filesystem_object_get_path(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_object_get_path() argument
216 if (intern->type == SPL_FS_DIR && php_stream_is(intern->u.dir.dirp, &php_glob_stream_ops)) { in spl_filesystem_object_get_path()
218 char *tmp = php_glob_stream_get_path(intern->u.dir.dirp, &len); in spl_filesystem_object_get_path()
225 if (!intern->path) { in spl_filesystem_object_get_path()
228 return zend_string_copy(intern->path); in spl_filesystem_object_get_path()
231 static inline zend_result spl_filesystem_object_get_file_name(spl_filesystem_object *intern) /* {{{… in spl_filesystem_object_get_file_name() argument
233 if (intern->file_name) { in spl_filesystem_object_get_file_name()
238 switch (intern->type) { in spl_filesystem_object_get_file_name()
246 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in spl_filesystem_object_get_file_name()
248 path = spl_filesystem_object_get_path(intern); in spl_filesystem_object_get_file_name()
250 name_len = strlen(intern->u.dir.entry.d_name); in spl_filesystem_object_get_file_name()
252 intern->file_name = zend_string_init(intern->u.dir.entry.d_name, name_len, 0); in spl_filesystem_object_get_file_name()
257 intern->file_name = zend_string_concat3( in spl_filesystem_object_get_file_name()
258 ZSTR_VAL(path), ZSTR_LEN(path), &slash, 1, intern->u.dir.entry.d_name, name_len); in spl_filesystem_object_get_file_name()
267 static bool spl_filesystem_dir_read(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_dir_read() argument
269 if (intern->file_name) { in spl_filesystem_dir_read()
271 zend_string_release(intern->file_name); in spl_filesystem_dir_read()
272 intern->file_name = NULL; in spl_filesystem_dir_read()
274 if (!intern->u.dir.dirp || !php_stream_readdir(intern->u.dir.dirp, &intern->u.dir.entry)) { in spl_filesystem_dir_read()
275 intern->u.dir.entry.d_name[0] = '\0'; in spl_filesystem_dir_read()
294 static void spl_filesystem_dir_open(spl_filesystem_object* intern, zend_string *path) in spl_filesystem_dir_open() argument
296 bool skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in spl_filesystem_dir_open()
298 intern->type = SPL_FS_DIR; in spl_filesystem_dir_open()
299 intern->u.dir.dirp = php_stream_opendir(ZSTR_VAL(path), REPORT_ERRORS, FG(default_context)); in spl_filesystem_dir_open()
302 intern->path = zend_string_init(ZSTR_VAL(path), ZSTR_LEN(path)-1, 0); in spl_filesystem_dir_open()
304 intern->path = zend_string_copy(path); in spl_filesystem_dir_open()
306 intern->u.dir.index = 0; in spl_filesystem_dir_open()
308 if (EG(exception) || intern->u.dir.dirp == NULL) { in spl_filesystem_dir_open()
309 intern->u.dir.entry.d_name[0] = '\0'; in spl_filesystem_dir_open()
317 spl_filesystem_dir_read(intern); in spl_filesystem_dir_open()
318 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in spl_filesystem_dir_open()
325 static zend_result spl_filesystem_file_open(spl_filesystem_object *intern, bool use_include_path) /… in spl_filesystem_file_open() argument
329 intern->type = SPL_FS_FILE; in spl_filesystem_file_open()
330 php_stat(intern->file_name, FS_IS_DIR, &tmp); in spl_filesystem_file_open()
332 zend_string_release(intern->u.file.open_mode); in spl_filesystem_file_open()
333 intern->u.file.open_mode = NULL; in spl_filesystem_file_open()
334 intern->file_name = NULL; in spl_filesystem_file_open()
339 intern->u.file.context = php_stream_context_from_zval(intern->u.file.zcontext, 0); in spl_filesystem_file_open()
340intern->u.file.stream = php_stream_open_wrapper_ex(ZSTR_VAL(intern->file_name), ZSTR_VAL(intern->u… in spl_filesystem_file_open()
342 if (!ZSTR_LEN(intern->file_name) || !intern->u.file.stream) { in spl_filesystem_file_open()
344 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot open file '%s'", ZSTR_VAL(intern->file… in spl_filesystem_file_open()
346 zend_string_release(intern->u.file.open_mode); in spl_filesystem_file_open()
347 intern->u.file.open_mode = NULL; in spl_filesystem_file_open()
348 intern->file_name = NULL; /* until here it is not a copy */ in spl_filesystem_file_open()
353 intern->u.file.stream->flags |= PHP_STREAM_FLAG_NO_FCLOSE; in spl_filesystem_file_open()
362 …if (ZSTR_LEN(intern->file_name) > 1 && IS_SLASH_AT(ZSTR_VAL(intern->file_name), ZSTR_LEN(intern->f… in spl_filesystem_file_open()
363intern->file_name = zend_string_init(ZSTR_VAL(intern->file_name), ZSTR_LEN(intern->file_name)-1, 0… in spl_filesystem_file_open()
365 intern->file_name = zend_string_copy(intern->file_name); in spl_filesystem_file_open()
368intern->orig_path = zend_string_init(intern->u.file.stream->orig_path, strlen(intern->u.file.strea… in spl_filesystem_file_open()
371 ZVAL_RES(&intern->u.file.zresource, intern->u.file.stream->res); in spl_filesystem_file_open()
376 intern->u.file.delimiter = ','; in spl_filesystem_file_open()
377 intern->u.file.enclosure = '"'; in spl_filesystem_file_open()
378 intern->u.file.escape = (unsigned char) '\\'; in spl_filesystem_file_open()
380intern->u.file.func_getCurr = zend_hash_str_find_ptr(&intern->std.ce->function_table, "getcurrentl… in spl_filesystem_file_open()
395 spl_filesystem_object *intern; in spl_filesystem_object_clone() local
400 intern = spl_filesystem_from_obj(new_object); in spl_filesystem_object_clone()
402 intern->flags = source->flags; in spl_filesystem_object_clone()
407 intern->path = zend_string_copy(source->path); in spl_filesystem_object_clone()
410 intern->file_name = zend_string_copy(source->file_name); in spl_filesystem_object_clone()
414 spl_filesystem_dir_open(intern, source->path); in spl_filesystem_object_clone()
420 spl_filesystem_dir_read(intern); in spl_filesystem_object_clone()
421 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in spl_filesystem_object_clone()
423 intern->u.dir.index = index; in spl_filesystem_object_clone()
430 intern->file_class = source->file_class; in spl_filesystem_object_clone()
431 intern->info_class = source->info_class; in spl_filesystem_object_clone()
432 intern->oth = source->oth; in spl_filesystem_object_clone()
433 intern->oth_handler = source->oth_handler; in spl_filesystem_object_clone()
437 if (intern->oth_handler && intern->oth_handler->clone) { in spl_filesystem_object_clone()
438 intern->oth_handler->clone(source, intern); in spl_filesystem_object_clone()
445 static void spl_filesystem_info_set_filename(spl_filesystem_object *intern, zend_string *path) /* {… in spl_filesystem_info_set_filename() argument
449 if (intern->file_name) { in spl_filesystem_info_set_filename()
450 zend_string_release(intern->file_name); in spl_filesystem_info_set_filename()
458 intern->file_name = zend_string_init(ZSTR_VAL(path), path_len, 0); in spl_filesystem_info_set_filename()
460 intern->file_name = zend_string_copy(path); in spl_filesystem_info_set_filename()
469 if (intern->path) { in spl_filesystem_info_set_filename()
470 zend_string_release(intern->path); in spl_filesystem_info_set_filename()
472 intern->path = zend_string_init(ZSTR_VAL(path), path_len, 0); in spl_filesystem_info_set_filename()
477 spl_filesystem_object *intern; in spl_filesystem_object_create_info() local
489 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_info()
490 RETVAL_OBJ(&intern->std); in spl_filesystem_object_create_info()
497 spl_filesystem_info_set_filename(intern, file_path); in spl_filesystem_object_create_info()
500 return intern; in spl_filesystem_object_create_info()
505 spl_filesystem_object *intern; in spl_filesystem_object_create_type() local
525 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_type()
526 RETVAL_OBJ(&intern->std); in spl_filesystem_object_create_type()
537 intern->file_name = zend_string_copy(source->file_name); in spl_filesystem_object_create_type()
538 intern->path = spl_filesystem_object_get_path(source); in spl_filesystem_object_create_type()
554 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_type()
555 RETVAL_OBJ(&intern->std); in spl_filesystem_object_create_type()
568 intern->file_name = source->file_name; in spl_filesystem_object_create_type()
569 intern->path = spl_filesystem_object_get_path(source); in spl_filesystem_object_create_type()
570 intern->u.file.open_mode = zend_string_copy(open_mode); in spl_filesystem_object_create_type()
571 intern->u.file.zcontext = resource; in spl_filesystem_object_create_type()
575 if (spl_filesystem_file_open(intern, use_include_path) == FAILURE) { in spl_filesystem_object_create_type()
598 static zend_string *spl_filesystem_object_get_pathname(spl_filesystem_object *intern) { /* {{{ */ in spl_filesystem_object_get_pathname() argument
599 switch (intern->type) { in spl_filesystem_object_get_pathname()
602 return intern->file_name; in spl_filesystem_object_get_pathname()
604 if (intern->u.dir.entry.d_name[0]) { in spl_filesystem_object_get_pathname()
605 spl_filesystem_object_get_file_name(intern); in spl_filesystem_object_get_pathname()
606 return intern->file_name; in spl_filesystem_object_get_pathname()
615 spl_filesystem_object *intern = spl_filesystem_from_obj(object); in spl_filesystem_object_get_debug_info() local
622 if (!intern->std.properties) { in spl_filesystem_object_get_debug_info()
623 rebuild_object_properties(&intern->std); in spl_filesystem_object_get_debug_info()
626 rv = zend_array_dup(intern->std.properties); in spl_filesystem_object_get_debug_info()
629 path = spl_filesystem_object_get_pathname(intern); in spl_filesystem_object_get_debug_info()
638 if (intern->file_name) { in spl_filesystem_object_get_debug_info()
642 path = spl_filesystem_object_get_path(intern); in spl_filesystem_object_get_debug_info()
644 if (path && ZSTR_LEN(path) && ZSTR_LEN(path) < ZSTR_LEN(intern->file_name)) { in spl_filesystem_object_get_debug_info()
646 …ZVAL_STRINGL(&tmp, ZSTR_VAL(intern->file_name) + ZSTR_LEN(path) + 1, ZSTR_LEN(intern->file_name) -… in spl_filesystem_object_get_debug_info()
648 ZVAL_STR_COPY(&tmp, intern->file_name); in spl_filesystem_object_get_debug_info()
656 if (intern->type == SPL_FS_DIR) { in spl_filesystem_object_get_debug_info()
659 if (php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in spl_filesystem_object_get_debug_info()
660 ZVAL_STR_COPY(&tmp, intern->path); in spl_filesystem_object_get_debug_info()
668 if (intern->u.dir.sub_path) { in spl_filesystem_object_get_debug_info()
669 ZVAL_STR_COPY(&tmp, intern->u.dir.sub_path); in spl_filesystem_object_get_debug_info()
676 if (intern->type == SPL_FS_FILE) { in spl_filesystem_object_get_debug_info()
678 ZVAL_STR_COPY(&tmp, intern->u.file.open_mode); in spl_filesystem_object_get_debug_info()
682 stmp[0] = intern->u.file.delimiter; in spl_filesystem_object_get_debug_info()
687 stmp[0] = intern->u.file.enclosure; in spl_filesystem_object_get_debug_info()
716 spl_filesystem_object *intern; in spl_filesystem_object_construct() local
738 intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in spl_filesystem_object_construct()
739 if (intern->path) { in spl_filesystem_object_construct()
744 intern->flags = flags; in spl_filesystem_object_construct()
751 spl_filesystem_dir_open(intern, path); in spl_filesystem_object_construct()
756 spl_filesystem_dir_open(intern, path); in spl_filesystem_object_construct()
773 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
779 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
780 intern->u.dir.index = 0; in PHP_METHOD()
781 php_stream_rewinddir(intern->u.dir.dirp); in PHP_METHOD()
782 spl_filesystem_dir_read(intern); in PHP_METHOD()
789 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
795 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
796 RETURN_LONG(intern->u.dir.index); in PHP_METHOD()
815 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
816 bool skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in PHP_METHOD()
822 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
823 intern->u.dir.index++; in PHP_METHOD()
825 spl_filesystem_dir_read(intern); in PHP_METHOD()
826 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in PHP_METHOD()
827 if (intern->file_name) { in PHP_METHOD()
828 zend_string_release(intern->file_name); in PHP_METHOD()
829 intern->file_name = NULL; in PHP_METHOD()
837 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
845 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
846 if (intern->u.dir.index > pos) { in PHP_METHOD()
848 …zend_call_method_with_0_params(Z_OBJ_P(ZEND_THIS), Z_OBJCE_P(ZEND_THIS), &intern->u.dir.func_rewin… in PHP_METHOD()
851 while (intern->u.dir.index < pos) { in PHP_METHOD()
853 …zend_call_method_with_0_params(Z_OBJ_P(ZEND_THIS), Z_OBJCE_P(ZEND_THIS), &intern->u.dir.func_valid… in PHP_METHOD()
860 …zend_call_method_with_0_params(Z_OBJ_P(ZEND_THIS), Z_OBJCE_P(ZEND_THIS), &intern->u.dir.func_next,… in PHP_METHOD()
867 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
873 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
874 RETURN_BOOL(intern->u.dir.entry.d_name[0] != '\0'); in PHP_METHOD()
881 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
888 path = spl_filesystem_object_get_path(intern); in PHP_METHOD()
900 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
907 if (!intern->file_name) { in PHP_METHOD()
912 path = spl_filesystem_object_get_path(intern); in PHP_METHOD()
914 if (path && ZSTR_LEN(path) && ZSTR_LEN(path) < ZSTR_LEN(intern->file_name)) { in PHP_METHOD()
917 RETVAL_STRINGL(ZSTR_VAL(intern->file_name) + path_len, ZSTR_LEN(intern->file_name) - path_len); in PHP_METHOD()
919 RETVAL_STR_COPY(intern->file_name); in PHP_METHOD()
930 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_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 = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
956 if (!intern->file_name) { in PHP_METHOD()
961 path = spl_filesystem_object_get_path(intern); in PHP_METHOD()
963 if (path && ZSTR_LEN(path) && ZSTR_LEN(path) < ZSTR_LEN(intern->file_name)) { in PHP_METHOD()
964 fname = ZSTR_VAL(intern->file_name) + ZSTR_LEN(path) + 1; in PHP_METHOD()
965 flen = ZSTR_LEN(intern->file_name) - (ZSTR_LEN(path) + 1); in PHP_METHOD()
967 fname = ZSTR_VAL(intern->file_name); in PHP_METHOD()
968 flen = ZSTR_LEN(intern->file_name); in PHP_METHOD()
992 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1001 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
1002 fname = php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), NULL, 0); in PHP_METHOD()
1019 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1029 if (!intern->file_name) { in PHP_METHOD()
1034 path = spl_filesystem_object_get_path(intern); in PHP_METHOD()
1036 if (path && ZSTR_LEN(path) && ZSTR_LEN(path) < ZSTR_LEN(intern->file_name)) { in PHP_METHOD()
1038 fname = ZSTR_VAL(intern->file_name) + ZSTR_LEN(path) + 1; in PHP_METHOD()
1039 flen = ZSTR_LEN(intern->file_name) - (ZSTR_LEN(path) + 1); in PHP_METHOD()
1041 fname = ZSTR_VAL(intern->file_name); in PHP_METHOD()
1042 flen = ZSTR_LEN(intern->file_name); in PHP_METHOD()
1055 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1064 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
1065 fname = php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), suffix, slen); in PHP_METHOD()
1074 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1080 path = spl_filesystem_object_get_pathname(intern); in PHP_METHOD()
1092 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1098 if (SPL_FILE_DIR_KEY(intern, SPL_FILE_DIR_KEY_AS_FILENAME)) { in PHP_METHOD()
1099 RETURN_STRING(intern->u.dir.entry.d_name); in PHP_METHOD()
1101 if (spl_filesystem_object_get_file_name(intern) == FAILURE) { in PHP_METHOD()
1104 RETURN_STR_COPY(intern->file_name); in PHP_METHOD()
1112 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1118 if (SPL_FILE_DIR_CURRENT(intern, SPL_FILE_DIR_CURRENT_AS_PATHNAME)) { in PHP_METHOD()
1119 if (spl_filesystem_object_get_file_name(intern) == FAILURE) { in PHP_METHOD()
1122 RETURN_STR_COPY(intern->file_name); in PHP_METHOD()
1123 } else if (SPL_FILE_DIR_CURRENT(intern, SPL_FILE_DIR_CURRENT_AS_FILEINFO)) { in PHP_METHOD()
1124 if (spl_filesystem_object_get_file_name(intern) == FAILURE) { in PHP_METHOD()
1127 spl_filesystem_object_create_type(0, intern, SPL_FS_INFO, NULL, return_value); in PHP_METHOD()
1137 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1143 CHECK_DIRECTORY_ITERATOR_IS_INITIALIZED(intern); in PHP_METHOD()
1144 RETURN_BOOL(spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in PHP_METHOD()
1154 spl_filesystem_object *intern; in PHP_METHOD() local
1161 intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD()
1163 spl_filesystem_info_set_filename(intern, path); in PHP_METHOD()
1173 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); \
1178 if (spl_filesystem_object_get_file_name(intern) == FAILURE) { \
1182 php_stat(intern->file_name, func_num, return_value); \
1250 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in FileInfoFunction() local
1258 if (intern->file_name == NULL) { in FileInfoFunction()
1259 if (spl_filesystem_object_get_file_name(intern) == FAILURE) { in FileInfoFunction()
1264 if (intern->file_name == NULL) { in FileInfoFunction()
1268 if (!IS_ABSOLUTE_PATH(ZSTR_VAL(intern->file_name), ZSTR_LEN(intern->file_name))) { in FileInfoFunction()
1270 …if (!expand_filepath_with_mode(ZSTR_VAL(intern->file_name), expanded_path, NULL, 0, CWD_EXPAND )) { in FileInfoFunction()
1276 ret = php_sys_readlink(ZSTR_VAL(intern->file_name), buff, MAXPATHLEN-1); in FileInfoFunction()
1283 …pl_ce_RuntimeException, 0, "Unable to read link %s, error: %s", ZSTR_VAL(intern->file_name), strer… in FileInfoFunction()
1297 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1305 if (intern->type == SPL_FS_DIR && !intern->file_name && intern->u.dir.entry.d_name[0]) { in PHP_METHOD()
1306 if (spl_filesystem_object_get_file_name(intern) == FAILURE) { in PHP_METHOD()
1311 if (intern->orig_path) { in PHP_METHOD()
1312 filename = ZSTR_VAL(intern->orig_path); in PHP_METHOD()
1314 filename = intern->file_name ? ZSTR_VAL(intern->file_name) : NULL; in PHP_METHOD()
1334 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1336 spl_filesystem_object_create_type(ZEND_NUM_ARGS(), intern, SPL_FS_FILE, NULL, return_value); in PHP_METHOD()
1343 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1350 intern->file_class = ce; in PHP_METHOD()
1357 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1364 intern->info_class = ce; in PHP_METHOD()
1371 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1372 zend_class_entry *ce = intern->info_class; in PHP_METHOD()
1378 spl_filesystem_object_create_type(ZEND_NUM_ARGS(), intern, SPL_FS_INFO, ce, return_value); in PHP_METHOD()
1385 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1386 zend_class_entry *ce = intern->info_class; in PHP_METHOD()
1393 path = spl_filesystem_object_get_pathname(intern); in PHP_METHOD()
1397 spl_filesystem_object_create_info(intern, dpath, ce, return_value); in PHP_METHOD()
1434 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1435 bool skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in PHP_METHOD()
1441 intern->u.dir.index = 0; in PHP_METHOD()
1442 if (intern->u.dir.dirp) { in PHP_METHOD()
1443 php_stream_rewinddir(intern->u.dir.dirp); in PHP_METHOD()
1446 spl_filesystem_dir_read(intern); in PHP_METHOD()
1447 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in PHP_METHOD()
1454 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1460 …RETURN_LONG(intern->flags & (SPL_FILE_DIR_KEY_MODE_MASK | SPL_FILE_DIR_CURRENT_MODE_MASK | SPL_FIL… in PHP_METHOD()
1466 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1473intern->flags &= ~(SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_M… in PHP_METHOD()
1474intern->flags |= ((SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_M… in PHP_METHOD()
1481 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1488 if (spl_filesystem_is_invalid_or_dot(intern->u.dir.entry.d_name)) { in PHP_METHOD()
1491 if (intern->u.dir.entry.d_type == DT_DIR) { in PHP_METHOD()
1493 } else if (intern->u.dir.entry.d_type == DT_REG) { in PHP_METHOD()
1496 if (spl_filesystem_object_get_file_name(intern) == FAILURE) { in PHP_METHOD()
1499 php_stat(intern->file_name, FS_LPERMS, return_value); in PHP_METHOD()
1506 && !(intern->flags & SPL_FILE_DIR_FOLLOW_SYMLINKS)) { in PHP_METHOD()
1509 php_stat(intern->file_name, FS_IS_DIR, return_value); in PHP_METHOD()
1518 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1520 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in PHP_METHOD()
1526 if (spl_filesystem_object_get_file_name(intern) == FAILURE) { in PHP_METHOD()
1531 ZVAL_STR_COPY(&params[0], intern->file_name); in PHP_METHOD()
1532 ZVAL_LONG(&params[1], intern->flags); in PHP_METHOD()
1542 size_t name_len = strlen(intern->u.dir.entry.d_name); in PHP_METHOD()
1543 if (intern->u.dir.sub_path && ZSTR_LEN(intern->u.dir.sub_path)) { in PHP_METHOD()
1544 zend_string *sub_path = zend_string_alloc(ZSTR_LEN(intern->u.dir.sub_path) + 1 + name_len, 0); in PHP_METHOD()
1545 memcpy(ZSTR_VAL(sub_path), ZSTR_VAL(intern->u.dir.sub_path), ZSTR_LEN(intern->u.dir.sub_path)); in PHP_METHOD()
1546 ZSTR_VAL(sub_path)[ZSTR_LEN(intern->u.dir.sub_path)] = slash; in PHP_METHOD()
1547 …memcpy(ZSTR_VAL(sub_path) + ZSTR_LEN(intern->u.dir.sub_path) + 1, intern->u.dir.entry.d_name, name… in PHP_METHOD()
1548 ZSTR_VAL(sub_path)[ZSTR_LEN(intern->u.dir.sub_path) + 1 + name_len] = 0; in PHP_METHOD()
1551 subdir->u.dir.sub_path = zend_string_init(intern->u.dir.entry.d_name, name_len, 0); in PHP_METHOD()
1553 subdir->info_class = intern->info_class; in PHP_METHOD()
1554 subdir->file_class = intern->file_class; in PHP_METHOD()
1555 subdir->oth = intern->oth; in PHP_METHOD()
1563 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1569 if (intern->u.dir.sub_path) { in PHP_METHOD()
1570 RETURN_STR_COPY(intern->u.dir.sub_path); in PHP_METHOD()
1580 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1581 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in PHP_METHOD()
1587 if (intern->u.dir.sub_path) { in PHP_METHOD()
1588 …RETURN_NEW_STR(strpprintf(0, "%s%c%s", ZSTR_VAL(intern->u.dir.sub_path), slash, intern->u.dir.entr… in PHP_METHOD()
1590 RETURN_STRING(intern->u.dir.entry.d_name); in PHP_METHOD()
1613 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
1619 if (intern->u.dir.dirp && php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in PHP_METHOD()
1620 RETURN_LONG(php_glob_stream_get_count(intern->u.dir.dirp, NULL)); in PHP_METHOD()
1663 ZVAL_OBJ_COPY(&iterator->intern.data, Z_OBJ_P(object)); in spl_filesystem_dir_get_iterator()
1664 iterator->intern.funcs = &spl_filesystem_dir_it_funcs; in spl_filesystem_dir_get_iterator()
1669 return &iterator->intern; in spl_filesystem_dir_get_iterator()
1677 zval_ptr_dtor(&iterator->intern.data); in spl_filesystem_dir_it_dtor()
1739 zval_ptr_dtor(&iterator->intern.data); in spl_filesystem_tree_it_dtor()
1767 return &iterator->intern.data; in spl_filesystem_tree_it_current_data()
1857 ZVAL_OBJ_COPY(&iterator->intern.data, Z_OBJ_P(object)); in spl_filesystem_tree_get_iterator()
1858 iterator->intern.funcs = &spl_filesystem_tree_it_funcs; in spl_filesystem_tree_get_iterator()
1860 return &iterator->intern; in spl_filesystem_tree_get_iterator()
1864 static ZEND_COLD void spl_filesystem_file_cannot_read(spl_filesystem_object *intern) in spl_filesystem_file_cannot_read() argument
1866 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot read from file %s", ZSTR_VAL(intern->f… in spl_filesystem_file_cannot_read()
1869 static zend_result spl_filesystem_file_read_ex(spl_filesystem_object *intern, bool silent, zend_lon… in spl_filesystem_file_read_ex() argument
1874 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_ex()
1876 if (php_stream_eof(intern->u.file.stream)) { in spl_filesystem_file_read_ex()
1878 spl_filesystem_file_cannot_read(intern); in spl_filesystem_file_read_ex()
1883 if (intern->u.file.max_line_len > 0) { in spl_filesystem_file_read_ex()
1884 buf = safe_emalloc((intern->u.file.max_line_len + 1), sizeof(char), 0); in spl_filesystem_file_read_ex()
1885 …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()
1892 buf = php_stream_get_line(intern->u.file.stream, NULL, 0, &line_len); in spl_filesystem_file_read_ex()
1896 intern->u.file.current_line = estrdup(""); in spl_filesystem_file_read_ex()
1897 intern->u.file.current_line_len = 0; in spl_filesystem_file_read_ex()
1899 if (!csv && SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_DROP_NEW_LINE)) { in spl_filesystem_file_read_ex()
1909 intern->u.file.current_line = buf; in spl_filesystem_file_read_ex()
1910 intern->u.file.current_line_len = line_len; in spl_filesystem_file_read_ex()
1912 intern->u.file.current_line_num += line_add; in spl_filesystem_file_read_ex()
1917 static inline zend_result spl_filesystem_file_read(spl_filesystem_object *intern, bool silent, bool… in spl_filesystem_file_read() argument
1919 zend_long line_add = (intern->u.file.current_line) ? 1 : 0; in spl_filesystem_file_read()
1920 return spl_filesystem_file_read_ex(intern, silent, line_add, csv); in spl_filesystem_file_read()
1923 static bool is_line_empty(spl_filesystem_object *intern) in is_line_empty() argument
1925 char *current_line = intern->u.file.current_line; in is_line_empty()
1926 size_t current_line_len = intern->u.file.current_line_len; in is_line_empty()
1928 …|| ((SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) && SPL_HAS_FLAG(intern->flags, SPL_FILE… in is_line_empty()
1933 static zend_result spl_filesystem_file_read_csv(spl_filesystem_object *intern, char delimiter, char… in spl_filesystem_file_read_csv() argument
1936 zend_result ret = spl_filesystem_file_read(intern, silent, /* csv */ true); in spl_filesystem_file_read_csv()
1940 } while (is_line_empty(intern) && SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_SKIP_EMPTY)); in spl_filesystem_file_read_csv()
1942 size_t buf_len = intern->u.file.current_line_len; in spl_filesystem_file_read_csv()
1943 char *buf = estrndup(intern->u.file.current_line, buf_len); in spl_filesystem_file_read_csv()
1945 if (!Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_read_csv()
1946 zval_ptr_dtor(&intern->u.file.current_zval); in spl_filesystem_file_read_csv()
1947 ZVAL_UNDEF(&intern->u.file.current_zval); in spl_filesystem_file_read_csv()
1950 HashTable *values = php_fgetcsv(intern->u.file.stream, delimiter, enclosure, escape, buf_len, buf); in spl_filesystem_file_read_csv()
1954 ZVAL_ARR(&intern->u.file.current_zval, values); in spl_filesystem_file_read_csv()
1956 ZVAL_COPY(return_value, &intern->u.file.current_zval); in spl_filesystem_file_read_csv()
1962 static zend_result spl_filesystem_file_read_line_ex(zval * this_ptr, spl_filesystem_object *intern,… in spl_filesystem_file_read_line_ex() argument
1967 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV)) { in spl_filesystem_file_read_line_ex()
1968 …return spl_filesystem_file_read_csv(intern, intern->u.file.delimiter, intern->u.file.enclosure, in… in spl_filesystem_file_read_line_ex()
1970 if (intern->u.file.func_getCurr->common.scope != spl_ce_SplFileObject) { in spl_filesystem_file_read_line_ex()
1971 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_line_ex()
1973 if (php_stream_eof(intern->u.file.stream)) { in spl_filesystem_file_read_line_ex()
1975 spl_filesystem_file_cannot_read(intern); in spl_filesystem_file_read_line_ex()
1979 …zend_call_method_with_0_params(Z_OBJ_P(this_ptr), Z_OBJCE_P(this_ptr), &intern->u.file.func_getCur… in spl_filesystem_file_read_line_ex()
1991 if (intern->u.file.current_line || !Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_read_line_ex()
1992 intern->u.file.current_line_num++; in spl_filesystem_file_read_line_ex()
1994 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_line_ex()
1995 intern->u.file.current_line = estrndup(Z_STRVAL(retval), Z_STRLEN(retval)); in spl_filesystem_file_read_line_ex()
1996 intern->u.file.current_line_len = Z_STRLEN(retval); in spl_filesystem_file_read_line_ex()
2000 return spl_filesystem_file_read(intern, silent, /* csv */ false); in spl_filesystem_file_read_line_ex()
2004 static zend_result spl_filesystem_file_read_line(zval * this_ptr, spl_filesystem_object *intern, bo… in spl_filesystem_file_read_line() argument
2006 zend_result ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent); in spl_filesystem_file_read_line()
2008 …while (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_SKIP_EMPTY) && ret == SUCCESS && is_line_empty( in spl_filesystem_file_read_line()
2009 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_line()
2010 ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent); in spl_filesystem_file_read_line()
2017 static void spl_filesystem_file_rewind(zval * this_ptr, spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_file_rewind() argument
2019 if (!intern->u.file.stream) { in spl_filesystem_file_rewind()
2023 if (-1 == php_stream_rewind(intern->u.file.stream)) { in spl_filesystem_file_rewind()
2024 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot rewind file %s", ZSTR_VAL(intern->file… in spl_filesystem_file_rewind()
2028 spl_filesystem_file_free_line(intern); in spl_filesystem_file_rewind()
2029 intern->u.file.current_line_num = 0; in spl_filesystem_file_rewind()
2031 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in spl_filesystem_file_rewind()
2032 spl_filesystem_file_read_line(this_ptr, intern, true); in spl_filesystem_file_rewind()
2039 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2045 intern->u.file.open_mode = ZSTR_CHAR('r'); in PHP_METHOD()
2048 &intern->file_name, &open_mode, in PHP_METHOD()
2049 &use_include_path, &intern->u.file.zcontext) == FAILURE) { in PHP_METHOD()
2050 intern->u.file.open_mode = NULL; in PHP_METHOD()
2051 intern->file_name = NULL; in PHP_METHOD()
2055 intern->u.file.open_mode = zend_string_copy(open_mode); in PHP_METHOD()
2059 zend_result retval = spl_filesystem_file_open(intern, use_include_path); in PHP_METHOD()
2065 path_len = strlen(intern->u.file.stream->orig_path); in PHP_METHOD()
2067 if (path_len > 1 && IS_SLASH_AT(intern->u.file.stream->orig_path, path_len-1)) { in PHP_METHOD()
2071 while (path_len > 1 && !IS_SLASH_AT(intern->u.file.stream->orig_path, path_len-1)) { in PHP_METHOD()
2079 intern->path = zend_string_init(intern->u.file.stream->orig_path, path_len, 0); in PHP_METHOD()
2087 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2101 intern->file_name = file_name; in PHP_METHOD()
2102 intern->u.file.open_mode = ZSTR_INIT_LITERAL("wb", 0); in PHP_METHOD()
2106 if (spl_filesystem_file_open(intern, /* use_include_path */ false) == SUCCESS) { in PHP_METHOD()
2107 intern->path = ZSTR_EMPTY_ALLOC(); in PHP_METHOD()
2116 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2122 spl_filesystem_file_rewind(ZEND_THIS, intern); in PHP_METHOD()
2128 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2134 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2136 RETURN_BOOL(php_stream_eof(intern->u.file.stream)); in PHP_METHOD()
2142 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2148 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in PHP_METHOD()
2149 RETURN_BOOL(intern->u.file.current_line || !Z_ISUNDEF(intern->u.file.current_zval)); in PHP_METHOD()
2151 if (!intern->u.file.stream) { in PHP_METHOD()
2154 RETURN_BOOL(!php_stream_eof(intern->u.file.stream)); in PHP_METHOD()
2160 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2166 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2168 …if (spl_filesystem_file_read_ex(intern, /* silent */ false, /* line_add */ 1, /* csv */ false) == … in PHP_METHOD()
2171 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); in PHP_METHOD()
2177 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2183 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2185 if (!intern->u.file.current_line && Z_ISUNDEF(intern->u.file.current_zval)) { in PHP_METHOD()
2186 spl_filesystem_file_read_line(ZEND_THIS, intern, true); in PHP_METHOD()
2188 …if (intern->u.file.current_line && (!SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) || Z_IS… in PHP_METHOD()
2189 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); in PHP_METHOD()
2190 } else if (!Z_ISUNDEF(intern->u.file.current_zval)) { in PHP_METHOD()
2191 ZEND_ASSERT(!Z_ISREF(intern->u.file.current_zval)); in PHP_METHOD()
2192 ZEND_ASSERT(Z_TYPE(intern->u.file.current_zval) == IS_ARRAY); in PHP_METHOD()
2193 RETURN_COPY(&intern->u.file.current_zval); in PHP_METHOD()
2201 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2211 RETURN_LONG(intern->u.file.current_line_num); in PHP_METHOD()
2217 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2223 spl_filesystem_file_free_line(intern); in PHP_METHOD()
2224 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in PHP_METHOD()
2225 spl_filesystem_file_read_line(ZEND_THIS, intern, true); in PHP_METHOD()
2227 intern->u.file.current_line_num++; in PHP_METHOD()
2233 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2235 if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &intern->flags) == FAILURE) { in PHP_METHOD()
2243 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2249 RETURN_LONG(intern->flags & SPL_FILE_OBJECT_MASK); in PHP_METHOD()
2257 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2268 intern->u.file.max_line_len = max_len; in PHP_METHOD()
2274 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2280 RETURN_LONG((zend_long)intern->u.file.max_line_len); in PHP_METHOD()
2305 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2306 char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure; in PHP_METHOD()
2307 int escape = intern->u.file.escape; in PHP_METHOD()
2315 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2343 …if (spl_filesystem_file_read_csv(intern, delimiter, enclosure, escape, return_value, true) == FAIL… in PHP_METHOD()
2352 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2353 char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure; in PHP_METHOD()
2354 int escape = intern->u.file.escape; in PHP_METHOD()
2391 ret = php_fputcsv(intern->u.file.stream, fields, delimiter, enclosure, escape, eol); in PHP_METHOD()
2402 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2438 intern->u.file.delimiter = delimiter; in PHP_METHOD()
2439 intern->u.file.enclosure = enclosure; in PHP_METHOD()
2440 intern->u.file.escape = escape; in PHP_METHOD()
2447 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_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 = spl_filesystem_from_obj(Z_OBJ_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 = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2499 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2501 RETURN_BOOL(!php_stream_flush(intern->u.file.stream)); in PHP_METHOD()
2507 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2514 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2516 ret = php_stream_tell(intern->u.file.stream); in PHP_METHOD()
2528 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2535 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2537 spl_filesystem_file_free_line(intern); in PHP_METHOD()
2538 RETURN_LONG(php_stream_seek(intern->u.file.stream, pos, (int)whence)); in PHP_METHOD()
2544 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2552 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2554 spl_filesystem_file_free_line(intern); in PHP_METHOD()
2556 result = php_stream_getc(intern->u.file.stream); in PHP_METHOD()
2562 intern->u.file.current_line_num++; in PHP_METHOD()
2573 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2579 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2581 RETURN_LONG(php_stream_passthru(intern->u.file.stream)); in PHP_METHOD()
2590 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2596 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2599 if (spl_filesystem_file_read(intern, /* silent */ false, /* csv */ false) == FAILURE) { in PHP_METHOD()
2603 …result = php_sscanf_internal(intern->u.file.current_line, ZSTR_VAL(format_str), num_varargs, varar… in PHP_METHOD()
2614 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2624 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2638 written = php_stream_write(intern->u.file.stream, str, str_len); in PHP_METHOD()
2647 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2655 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2662 str = php_stream_read_to_str(intern->u.file.stream, length); in PHP_METHOD()
2672 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2678 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2680 php_fstat(intern->u.file.stream, return_value); in PHP_METHOD()
2687 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2694 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2696 if (!php_stream_truncate_supported(intern->u.file.stream)) { in PHP_METHOD()
2697 …zend_throw_exception_ex(spl_ce_LogicException, 0, "Can't truncate file %s", ZSTR_VAL(intern->file_… in PHP_METHOD()
2701 RETURN_BOOL(0 == php_stream_truncate_set_size(intern->u.file.stream, size)); in PHP_METHOD()
2707 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2714 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2721 spl_filesystem_file_rewind(ZEND_THIS, intern); in PHP_METHOD()
2724 if (spl_filesystem_file_read_line(ZEND_THIS, intern, true) == FAILURE) { in PHP_METHOD()
2728 if (line_pos > 0 && !SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in PHP_METHOD()
2729 intern->u.file.current_line_num++; in PHP_METHOD()
2730 spl_filesystem_file_free_line(intern); in PHP_METHOD()
2740 spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); in PHP_METHOD() local
2742 CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); in PHP_METHOD()
2744 if (!intern->u.file.current_line) { in PHP_METHOD()
2745 ZEND_ASSERT(Z_ISUNDEF(intern->u.file.current_zval)); in PHP_METHOD()
2746 zend_result result = spl_filesystem_file_read_line(ZEND_THIS, intern, false); in PHP_METHOD()
2752 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); in PHP_METHOD()