Lines Matching refs:intern

61 static void spl_filesystem_file_free_line(spl_filesystem_object *intern) /* {{{ */  in spl_filesystem_file_free_line()  argument
63 if (intern->u.file.current_line) { in spl_filesystem_file_free_line()
64 efree(intern->u.file.current_line); in spl_filesystem_file_free_line()
65 intern->u.file.current_line = NULL; in spl_filesystem_file_free_line()
67 if (!Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_free_line()
68 zval_ptr_dtor(&intern->u.file.current_zval); in spl_filesystem_file_free_line()
69 ZVAL_UNDEF(&intern->u.file.current_zval); in spl_filesystem_file_free_line()
75 spl_filesystem_object *intern = spl_filesystem_from_obj(object); in spl_filesystem_object_destroy_object() local
79 switch(intern->type) { in spl_filesystem_object_destroy_object()
81 if (intern->u.dir.dirp) { in spl_filesystem_object_destroy_object()
82 php_stream_close(intern->u.dir.dirp); in spl_filesystem_object_destroy_object()
83 intern->u.dir.dirp = NULL; in spl_filesystem_object_destroy_object()
87 if (intern->u.file.stream) { in spl_filesystem_object_destroy_object()
93 if (!intern->u.file.stream->is_persistent) { in spl_filesystem_object_destroy_object()
94 php_stream_close(intern->u.file.stream); in spl_filesystem_object_destroy_object()
96 php_stream_pclose(intern->u.file.stream); in spl_filesystem_object_destroy_object()
98 intern->u.file.stream = NULL; in spl_filesystem_object_destroy_object()
99 ZVAL_UNDEF(&intern->u.file.zresource); in spl_filesystem_object_destroy_object()
109 spl_filesystem_object *intern = spl_filesystem_from_obj(object); in spl_filesystem_object_free_storage() local
111 if (intern->oth_handler && intern->oth_handler->dtor) { in spl_filesystem_object_free_storage()
112 intern->oth_handler->dtor(intern); in spl_filesystem_object_free_storage()
115 zend_object_std_dtor(&intern->std); in spl_filesystem_object_free_storage()
117 if (intern->_path) { in spl_filesystem_object_free_storage()
118 efree(intern->_path); in spl_filesystem_object_free_storage()
120 if (intern->file_name) { in spl_filesystem_object_free_storage()
121 efree(intern->file_name); in spl_filesystem_object_free_storage()
123 switch(intern->type) { in spl_filesystem_object_free_storage()
127 if (intern->u.dir.sub_path) { in spl_filesystem_object_free_storage()
128 efree(intern->u.dir.sub_path); in spl_filesystem_object_free_storage()
132 if (intern->u.file.open_mode) { in spl_filesystem_object_free_storage()
133 efree(intern->u.file.open_mode); in spl_filesystem_object_free_storage()
135 if (intern->orig_path) { in spl_filesystem_object_free_storage()
136 efree(intern->orig_path); in spl_filesystem_object_free_storage()
138 spl_filesystem_file_free_line(intern); in spl_filesystem_object_free_storage()
156 spl_filesystem_object *intern; in spl_filesystem_object_new_ex() local
158 intern = zend_object_alloc(sizeof(spl_filesystem_object), class_type); in spl_filesystem_object_new_ex()
160 intern->file_class = spl_ce_SplFileObject; in spl_filesystem_object_new_ex()
161 intern->info_class = spl_ce_SplFileInfo; in spl_filesystem_object_new_ex()
163 zend_object_std_init(&intern->std, class_type); in spl_filesystem_object_new_ex()
164 object_properties_init(&intern->std, class_type); in spl_filesystem_object_new_ex()
165 intern->std.handlers = &spl_filesystem_object_handlers; in spl_filesystem_object_new_ex()
167 return &intern->std; in spl_filesystem_object_new_ex()
188 PHPAPI char* spl_filesystem_object_get_path(spl_filesystem_object *intern, size_t *len) /* {{{ */ in spl_filesystem_object_get_path() argument
191 if (intern->type == SPL_FS_DIR) { in spl_filesystem_object_get_path()
192 if (php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in spl_filesystem_object_get_path()
193 return php_glob_stream_get_path(intern->u.dir.dirp, len); in spl_filesystem_object_get_path()
198 *len = intern->_path_len; in spl_filesystem_object_get_path()
200 return intern->_path; in spl_filesystem_object_get_path()
203 static inline void spl_filesystem_object_get_file_name(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_object_get_file_name() argument
205 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in spl_filesystem_object_get_file_name()
207 switch (intern->type) { in spl_filesystem_object_get_file_name()
210 if (!intern->file_name) { in spl_filesystem_object_get_file_name()
217 char *path = spl_filesystem_object_get_path(intern, &path_len); in spl_filesystem_object_get_file_name()
218 if (intern->file_name) { in spl_filesystem_object_get_file_name()
219 efree(intern->file_name); in spl_filesystem_object_get_file_name()
223 intern->file_name_len = spprintf( in spl_filesystem_object_get_file_name()
224 &intern->file_name, 0, "%s", intern->u.dir.entry.d_name); in spl_filesystem_object_get_file_name()
226 intern->file_name_len = spprintf( in spl_filesystem_object_get_file_name()
227 &intern->file_name, 0, "%s%c%s", path, slash, intern->u.dir.entry.d_name); in spl_filesystem_object_get_file_name()
234 static int spl_filesystem_dir_read(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_dir_read() argument
236 if (!intern->u.dir.dirp || !php_stream_readdir(intern->u.dir.dirp, &intern->u.dir.entry)) { in spl_filesystem_dir_read()
237 intern->u.dir.entry.d_name[0] = '\0'; in spl_filesystem_dir_read()
255 static void spl_filesystem_dir_open(spl_filesystem_object* intern, char *path) in spl_filesystem_dir_open() argument
257 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in spl_filesystem_dir_open()
259 intern->type = SPL_FS_DIR; in spl_filesystem_dir_open()
260 intern->_path_len = strlen(path); in spl_filesystem_dir_open()
261 intern->u.dir.dirp = php_stream_opendir(path, REPORT_ERRORS, FG(default_context)); in spl_filesystem_dir_open()
263 if (intern->_path_len > 1 && IS_SLASH_AT(path, intern->_path_len-1)) { in spl_filesystem_dir_open()
264 intern->_path = estrndup(path, --intern->_path_len); in spl_filesystem_dir_open()
266 intern->_path = estrndup(path, intern->_path_len); in spl_filesystem_dir_open()
268 intern->u.dir.index = 0; in spl_filesystem_dir_open()
270 if (EG(exception) || intern->u.dir.dirp == NULL) { in spl_filesystem_dir_open()
271 intern->u.dir.entry.d_name[0] = '\0'; in spl_filesystem_dir_open()
279 spl_filesystem_dir_read(intern); in spl_filesystem_dir_open()
280 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in spl_filesystem_dir_open()
285 static int spl_filesystem_file_open(spl_filesystem_object *intern, int use_include_path, int silent… in spl_filesystem_file_open() argument
289 intern->type = SPL_FS_FILE; in spl_filesystem_file_open()
291 php_stat(intern->file_name, intern->file_name_len, FS_IS_DIR, &tmp); in spl_filesystem_file_open()
293 intern->u.file.open_mode = NULL; in spl_filesystem_file_open()
294 intern->file_name = NULL; in spl_filesystem_file_open()
299 intern->u.file.context = php_stream_context_from_zval(intern->u.file.zcontext, 0); in spl_filesystem_file_open()
300intern->u.file.stream = php_stream_open_wrapper_ex(intern->file_name, intern->u.file.open_mode, (u… in spl_filesystem_file_open()
302 if (!intern->file_name_len || !intern->u.file.stream) { in spl_filesystem_file_open()
304 …tion_ex(spl_ce_RuntimeException, 0, "Cannot open file '%s'", intern->file_name_len ? intern->file_… in spl_filesystem_file_open()
306 intern->file_name = NULL; /* until here it is not a copy */ in spl_filesystem_file_open()
307 intern->u.file.open_mode = NULL; in spl_filesystem_file_open()
318 if (intern->file_name_len > 1 && IS_SLASH_AT(intern->file_name, intern->file_name_len-1)) { in spl_filesystem_file_open()
319 intern->file_name_len--; in spl_filesystem_file_open()
322intern->orig_path = estrndup(intern->u.file.stream->orig_path, strlen(intern->u.file.stream->orig_… in spl_filesystem_file_open()
324 intern->file_name = estrndup(intern->file_name, intern->file_name_len); in spl_filesystem_file_open()
325 intern->u.file.open_mode = estrndup(intern->u.file.open_mode, intern->u.file.open_mode_len); in spl_filesystem_file_open()
328 ZVAL_RES(&intern->u.file.zresource, intern->u.file.stream->res); in spl_filesystem_file_open()
333 intern->u.file.delimiter = ','; in spl_filesystem_file_open()
334 intern->u.file.enclosure = '"'; in spl_filesystem_file_open()
335 intern->u.file.escape = (unsigned char) '\\'; in spl_filesystem_file_open()
337intern->u.file.func_getCurr = zend_hash_str_find_ptr(&intern->std.ce->function_table, "getcurrentl… in spl_filesystem_file_open()
353 spl_filesystem_object *intern; in spl_filesystem_object_clone() local
360 intern = spl_filesystem_from_obj(new_object); in spl_filesystem_object_clone()
362 intern->flags = source->flags; in spl_filesystem_object_clone()
366 intern->_path_len = source->_path_len; in spl_filesystem_object_clone()
367 intern->_path = estrndup(source->_path, source->_path_len); in spl_filesystem_object_clone()
368 intern->file_name_len = source->file_name_len; in spl_filesystem_object_clone()
369 intern->file_name = estrndup(source->file_name, intern->file_name_len); in spl_filesystem_object_clone()
372 spl_filesystem_dir_open(intern, source->_path); in spl_filesystem_object_clone()
377 spl_filesystem_dir_read(intern); in spl_filesystem_object_clone()
378 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in spl_filesystem_object_clone()
380 intern->u.dir.index = index; in spl_filesystem_object_clone()
386 intern->file_class = source->file_class; in spl_filesystem_object_clone()
387 intern->info_class = source->info_class; in spl_filesystem_object_clone()
388 intern->oth = source->oth; in spl_filesystem_object_clone()
389 intern->oth_handler = source->oth_handler; in spl_filesystem_object_clone()
393 if (intern->oth_handler && intern->oth_handler->clone) { in spl_filesystem_object_clone()
394 intern->oth_handler->clone(source, intern); in spl_filesystem_object_clone()
401 void spl_filesystem_info_set_filename(spl_filesystem_object *intern, char *path, size_t len, size_t… in spl_filesystem_info_set_filename() argument
405 if (intern->file_name) { in spl_filesystem_info_set_filename()
406 efree(intern->file_name); in spl_filesystem_info_set_filename()
409 intern->file_name = use_copy ? estrndup(path, len) : path; in spl_filesystem_info_set_filename()
410 intern->file_name_len = len; in spl_filesystem_info_set_filename()
412 while (intern->file_name_len > 1 && IS_SLASH_AT(intern->file_name, intern->file_name_len-1)) { in spl_filesystem_info_set_filename()
413 intern->file_name[intern->file_name_len-1] = 0; in spl_filesystem_info_set_filename()
414 intern->file_name_len--; in spl_filesystem_info_set_filename()
417 p1 = strrchr(intern->file_name, '/'); in spl_filesystem_info_set_filename()
419 p2 = strrchr(intern->file_name, '\\'); in spl_filesystem_info_set_filename()
424 intern->_path_len = ((p1 > p2 ? p1 : p2) - intern->file_name); in spl_filesystem_info_set_filename()
426 intern->_path_len = 0; in spl_filesystem_info_set_filename()
429 if (intern->_path) { in spl_filesystem_info_set_filename()
430 efree(intern->_path); in spl_filesystem_info_set_filename()
432 intern->_path = estrndup(path, intern->_path_len); in spl_filesystem_info_set_filename()
437 spl_filesystem_object *intern; in spl_filesystem_object_create_info() local
463 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_info()
464 ZVAL_OBJ(return_value, &intern->std); in spl_filesystem_object_create_info()
471 spl_filesystem_info_set_filename(intern, file_path, file_path_len, use_copy); in spl_filesystem_object_create_info()
475 return intern; in spl_filesystem_object_create_info()
480 spl_filesystem_object *intern; in spl_filesystem_object_create_type() local
507 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_type()
508 ZVAL_OBJ(return_value, &intern->std); in spl_filesystem_object_create_type()
516 intern->file_name = estrndup(source->file_name, source->file_name_len); in spl_filesystem_object_create_type()
517 intern->file_name_len = source->file_name_len; in spl_filesystem_object_create_type()
518 intern->_path = spl_filesystem_object_get_path(source, &intern->_path_len); in spl_filesystem_object_create_type()
519 intern->_path = estrndup(intern->_path, intern->_path_len); in spl_filesystem_object_create_type()
529 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_type()
531 ZVAL_OBJ(return_value, &intern->std); in spl_filesystem_object_create_type()
542 intern->file_name = source->file_name; in spl_filesystem_object_create_type()
543 intern->file_name_len = source->file_name_len; in spl_filesystem_object_create_type()
544 intern->_path = spl_filesystem_object_get_path(source, &intern->_path_len); in spl_filesystem_object_create_type()
545 intern->_path = estrndup(intern->_path, intern->_path_len); in spl_filesystem_object_create_type()
547 intern->u.file.open_mode = "r"; in spl_filesystem_object_create_type()
548 intern->u.file.open_mode_len = 1; in spl_filesystem_object_create_type()
551 &intern->u.file.open_mode, &intern->u.file.open_mode_len, in spl_filesystem_object_create_type()
552 &use_include_path, &intern->u.file.zcontext) == FAILURE) { in spl_filesystem_object_create_type()
554 intern->u.file.open_mode = NULL; in spl_filesystem_object_create_type()
555 intern->file_name = NULL; in spl_filesystem_object_create_type()
561 if (spl_filesystem_file_open(intern, use_include_path, 0) == FAILURE) { in spl_filesystem_object_create_type()
584 static char *spl_filesystem_object_get_pathname(spl_filesystem_object *intern, size_t *len) { /* {{… in spl_filesystem_object_get_pathname() argument
585 switch (intern->type) { in spl_filesystem_object_get_pathname()
588 *len = intern->file_name_len; in spl_filesystem_object_get_pathname()
589 return intern->file_name; in spl_filesystem_object_get_pathname()
591 if (intern->u.dir.entry.d_name[0]) { in spl_filesystem_object_get_pathname()
592 spl_filesystem_object_get_file_name(intern); in spl_filesystem_object_get_pathname()
593 *len = intern->file_name_len; in spl_filesystem_object_get_pathname()
594 return intern->file_name; in spl_filesystem_object_get_pathname()
604 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(object); in spl_filesystem_object_get_debug_info() local
612 if (!intern->std.properties) { in spl_filesystem_object_get_debug_info()
613 rebuild_object_properties(&intern->std); in spl_filesystem_object_get_debug_info()
616 rv = zend_array_dup(intern->std.properties); in spl_filesystem_object_get_debug_info()
619 path = spl_filesystem_object_get_pathname(intern, &path_len); in spl_filesystem_object_get_debug_info()
624 if (intern->file_name) { in spl_filesystem_object_get_debug_info()
626 spl_filesystem_object_get_path(intern, &path_len); in spl_filesystem_object_get_debug_info()
628 if (path_len && path_len < intern->file_name_len) { in spl_filesystem_object_get_debug_info()
629 ZVAL_STRINGL(&tmp, intern->file_name + path_len + 1, intern->file_name_len - (path_len + 1)); in spl_filesystem_object_get_debug_info()
631 ZVAL_STRINGL(&tmp, intern->file_name, intern->file_name_len); in spl_filesystem_object_get_debug_info()
636 if (intern->type == SPL_FS_DIR) { in spl_filesystem_object_get_debug_info()
639 if (php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in spl_filesystem_object_get_debug_info()
640 ZVAL_STRINGL(&tmp, intern->_path, intern->_path_len); in spl_filesystem_object_get_debug_info()
648 if (intern->u.dir.sub_path) { in spl_filesystem_object_get_debug_info()
649 ZVAL_STRINGL(&tmp, intern->u.dir.sub_path, intern->u.dir.sub_path_len); in spl_filesystem_object_get_debug_info()
656 if (intern->type == SPL_FS_FILE) { in spl_filesystem_object_get_debug_info()
658 ZVAL_STRINGL(&tmp, intern->u.file.open_mode, intern->u.file.open_mode_len); in spl_filesystem_object_get_debug_info()
662 stmp[0] = intern->u.file.delimiter; in spl_filesystem_object_get_debug_info()
667 stmp[0] = intern->u.file.enclosure; in spl_filesystem_object_get_debug_info()
699 spl_filesystem_object *intern; in spl_filesystem_object_construct() local
731 intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in spl_filesystem_object_construct()
732 if (intern->_path) { in spl_filesystem_object_construct()
738 intern->flags = flags; in spl_filesystem_object_construct()
742 spl_filesystem_dir_open(intern, path); in spl_filesystem_object_construct()
747 spl_filesystem_dir_open(intern, path); in spl_filesystem_object_construct()
751intern->u.dir.is_recursive = instanceof_function(intern->std.ce, spl_ce_RecursiveDirectoryIterator… in spl_filesystem_object_construct()
769 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
775 intern->u.dir.index = 0; in SPL_METHOD()
776 if (intern->u.dir.dirp) { in SPL_METHOD()
777 php_stream_rewinddir(intern->u.dir.dirp); in SPL_METHOD()
779 spl_filesystem_dir_read(intern); in SPL_METHOD()
787 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
793 if (intern->u.dir.dirp) { in SPL_METHOD()
794 RETURN_LONG(intern->u.dir.index); in SPL_METHOD()
817 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
818 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in SPL_METHOD()
824 intern->u.dir.index++; in SPL_METHOD()
826 spl_filesystem_dir_read(intern); in SPL_METHOD()
827 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in SPL_METHOD()
828 if (intern->file_name) { in SPL_METHOD()
829 efree(intern->file_name); in SPL_METHOD()
830 intern->file_name = NULL; in SPL_METHOD()
839 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
847 if (intern->u.dir.index > pos) { in SPL_METHOD()
849 …zend_call_method_with_0_params(ZEND_THIS, Z_OBJCE_P(ZEND_THIS), &intern->u.dir.func_rewind, "rewin… in SPL_METHOD()
852 while (intern->u.dir.index < pos) { in SPL_METHOD()
854 …zend_call_method_with_0_params(ZEND_THIS, Z_OBJCE_P(ZEND_THIS), &intern->u.dir.func_valid, "valid"… in SPL_METHOD()
861 …zend_call_method_with_0_params(ZEND_THIS, Z_OBJCE_P(ZEND_THIS), &intern->u.dir.func_next, "next", … in SPL_METHOD()
869 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
875 RETURN_BOOL(intern->u.dir.entry.d_name[0] != '\0'); in SPL_METHOD()
883 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
891 path = spl_filesystem_object_get_path(intern, &path_len); in SPL_METHOD()
904 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
911 spl_filesystem_object_get_path(intern, &path_len); in SPL_METHOD()
913 if (path_len && path_len < intern->file_name_len) { in SPL_METHOD()
914 RETURN_STRINGL(intern->file_name + path_len + 1, intern->file_name_len - (path_len + 1)); in SPL_METHOD()
916 RETURN_STRINGL(intern->file_name, intern->file_name_len); in SPL_METHOD()
925 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
931 RETURN_STRING(intern->u.dir.entry.d_name); in SPL_METHOD()
939 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
951 spl_filesystem_object_get_path(intern, &path_len); in SPL_METHOD()
953 if (path_len && path_len < intern->file_name_len) { in SPL_METHOD()
954 fname = intern->file_name + path_len + 1; in SPL_METHOD()
955 flen = intern->file_name_len - (path_len + 1); in SPL_METHOD()
957 fname = intern->file_name; in SPL_METHOD()
958 flen = intern->file_name_len; in SPL_METHOD()
980 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
989 fname = php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), NULL, 0); in SPL_METHOD()
1007 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1016 spl_filesystem_object_get_path(intern, &path_len); in SPL_METHOD()
1018 if (path_len && path_len < intern->file_name_len) { in SPL_METHOD()
1019 fname = intern->file_name + path_len + 1; in SPL_METHOD()
1020 flen = intern->file_name_len - (path_len + 1); in SPL_METHOD()
1022 fname = intern->file_name; in SPL_METHOD()
1023 flen = intern->file_name_len; in SPL_METHOD()
1034 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1043 fname = php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), suffix, slen); in SPL_METHOD()
1053 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1060 path = spl_filesystem_object_get_pathname(intern, &path_len); in SPL_METHOD()
1073 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1079 if (SPL_FILE_DIR_KEY(intern, SPL_FILE_DIR_KEY_AS_FILENAME)) { in SPL_METHOD()
1080 RETURN_STRING(intern->u.dir.entry.d_name); in SPL_METHOD()
1082 spl_filesystem_object_get_file_name(intern); in SPL_METHOD()
1083 RETURN_STRINGL(intern->file_name, intern->file_name_len); in SPL_METHOD()
1092 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1098 if (SPL_FILE_DIR_CURRENT(intern, SPL_FILE_DIR_CURRENT_AS_PATHNAME)) { in SPL_METHOD()
1099 spl_filesystem_object_get_file_name(intern); in SPL_METHOD()
1100 RETURN_STRINGL(intern->file_name, intern->file_name_len); in SPL_METHOD()
1101 } else if (SPL_FILE_DIR_CURRENT(intern, SPL_FILE_DIR_CURRENT_AS_FILEINFO)) { in SPL_METHOD()
1102 spl_filesystem_object_get_file_name(intern); in SPL_METHOD()
1103 spl_filesystem_object_create_type(0, intern, SPL_FS_INFO, NULL, return_value); in SPL_METHOD()
1116 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1122 RETURN_BOOL(spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in SPL_METHOD()
1133 spl_filesystem_object *intern; in SPL_METHOD() local
1141 intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD()
1143 spl_filesystem_info_set_filename(intern, path, len, 1); in SPL_METHOD()
1153 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); \
1160 spl_filesystem_object_get_file_name(intern); \
1161 php_stat(intern->file_name, intern->file_name_len, func_num, return_value); \
1245 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in FileInfoFunction() local
1256 if (intern->file_name == NULL) { in FileInfoFunction()
1257 spl_filesystem_object_get_file_name(intern); in FileInfoFunction()
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 )) { in FileInfoFunction()
1271 ret = php_sys_readlink(intern->file_name, buff, MAXPATHLEN-1); in FileInfoFunction()
1278 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Unable to read link %s, error: %s", intern->f… in FileInfoFunction()
1296 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); 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); 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 = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1340 spl_filesystem_object_create_type(ZEND_NUM_ARGS(), intern, SPL_FS_FILE, NULL, return_value); in SPL_METHOD()
1348 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1355 intern->file_class = ce; in SPL_METHOD()
1366 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1373 intern->info_class = ce; in SPL_METHOD()
1384 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1385 zend_class_entry *ce = intern->info_class; in SPL_METHOD()
1391 spl_filesystem_object_create_type(ZEND_NUM_ARGS(), intern, SPL_FS_INFO, ce, return_value); in SPL_METHOD()
1402 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); 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); in SPL_METHOD()
1414 spl_filesystem_object_create_info(intern, dpath, path_len, 1, ce, return_value); in SPL_METHOD()
1454 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1455 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in SPL_METHOD()
1461 intern->u.dir.index = 0; in SPL_METHOD()
1462 if (intern->u.dir.dirp) { in SPL_METHOD()
1463 php_stream_rewinddir(intern->u.dir.dirp); in SPL_METHOD()
1466 spl_filesystem_dir_read(intern); in SPL_METHOD()
1467 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in SPL_METHOD()
1475 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1481 …RETURN_LONG(intern->flags & (SPL_FILE_DIR_KEY_MODE_MASK | SPL_FILE_DIR_CURRENT_MODE_MASK | SPL_FIL… in SPL_METHOD()
1488 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1495intern->flags &= ~(SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_M… in SPL_METHOD()
1496intern->flags |= ((SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_M… in SPL_METHOD()
1504 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1509 if (spl_filesystem_is_invalid_or_dot(intern->u.dir.entry.d_name)) { in SPL_METHOD()
1512 spl_filesystem_object_get_file_name(intern); in SPL_METHOD()
1513 if (!allow_links && !(intern->flags & SPL_FILE_DIR_FOLLOW_SYMLINKS)) { in SPL_METHOD()
1514 php_stat(intern->file_name, intern->file_name_len, FS_IS_LINK, return_value); in SPL_METHOD()
1519 php_stat(intern->file_name, intern->file_name_len, FS_IS_DIR, return_value); in SPL_METHOD()
1529 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1531 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in SPL_METHOD()
1537 spl_filesystem_object_get_file_name(intern); in SPL_METHOD()
1539 ZVAL_LONG(&zflags, intern->flags); in SPL_METHOD()
1540 ZVAL_STRINGL(&zpath, intern->file_name, intern->file_name_len); in SPL_METHOD()
1546 if (intern->u.dir.sub_path && intern->u.dir.sub_path[0]) { in SPL_METHOD()
1547 …path_len = spprintf(&subdir->u.dir.sub_path, 0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u… in SPL_METHOD()
1549 subdir->u.dir.sub_path_len = strlen(intern->u.dir.entry.d_name); in SPL_METHOD()
1550 subdir->u.dir.sub_path = estrndup(intern->u.dir.entry.d_name, subdir->u.dir.sub_path_len); in SPL_METHOD()
1552 subdir->info_class = intern->info_class; in SPL_METHOD()
1553 subdir->file_class = intern->file_class; in SPL_METHOD()
1554 subdir->oth = intern->oth; in SPL_METHOD()
1563 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1569 if (intern->u.dir.sub_path) { in SPL_METHOD()
1570 RETURN_STRINGL(intern->u.dir.sub_path, intern->u.dir.sub_path_len); in SPL_METHOD()
1581 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1582 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in SPL_METHOD()
1588 if (intern->u.dir.sub_path) { in SPL_METHOD()
1589 …RETURN_NEW_STR(strpprintf(0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u.dir.entry.d_name)); in SPL_METHOD()
1591 RETURN_STRING(intern->u.dir.entry.d_name); in SPL_METHOD()
1617 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
1623 if (intern->u.dir.dirp && php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in SPL_METHOD()
1624 RETURN_LONG(php_glob_stream_get_count(intern->u.dir.dirp, NULL)); in SPL_METHOD()
1666 ZVAL_OBJ(&iterator->intern.data, Z_OBJ_P(object)); in spl_filesystem_dir_get_iterator()
1667 iterator->intern.funcs = &spl_filesystem_dir_it_funcs; in spl_filesystem_dir_get_iterator()
1672 return &iterator->intern; in spl_filesystem_dir_get_iterator()
1680 zval_ptr_dtor(&iterator->intern.data); in spl_filesystem_dir_it_dtor()
1742 zval_ptr_dtor(&iterator->intern.data); in spl_filesystem_tree_it_dtor()
1766 return &iterator->intern.data; in spl_filesystem_tree_it_current_data()
1852 ZVAL_OBJ(&iterator->intern.data, Z_OBJ_P(object)); in spl_filesystem_tree_get_iterator()
1853 iterator->intern.funcs = &spl_filesystem_tree_it_funcs; in spl_filesystem_tree_get_iterator()
1855 return &iterator->intern; in spl_filesystem_tree_get_iterator()
1862 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(readobj); in spl_filesystem_object_cast() local
1869 switch (intern->type) { in spl_filesystem_object_cast()
1872 ZVAL_STRINGL(writeobj, intern->file_name, intern->file_name_len); in spl_filesystem_object_cast()
1875 ZVAL_STRING(writeobj, intern->u.dir.entry.d_name); in spl_filesystem_object_cast()
2017 static int spl_filesystem_file_read(spl_filesystem_object *intern, int silent) /* {{{ */ in spl_filesystem_file_read() argument
2021 …zend_long line_add = (intern->u.file.current_line || !Z_ISUNDEF(intern->u.file.current_zval)) ? 1 … in spl_filesystem_file_read()
2023 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read()
2025 if (php_stream_eof(intern->u.file.stream)) { in spl_filesystem_file_read()
2027 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot read from file %s", intern->file_name); in spl_filesystem_file_read()
2032 if (intern->u.file.max_line_len > 0) { in spl_filesystem_file_read()
2033 buf = safe_emalloc((intern->u.file.max_line_len + 1), sizeof(char), 0); in spl_filesystem_file_read()
2034 …if (php_stream_get_line(intern->u.file.stream, buf, intern->u.file.max_line_len + 1, &line_len) ==… in spl_filesystem_file_read()
2041 buf = php_stream_get_line(intern->u.file.stream, NULL, 0, &line_len); in spl_filesystem_file_read()
2045 intern->u.file.current_line = estrdup(""); in spl_filesystem_file_read()
2046 intern->u.file.current_line_len = 0; in spl_filesystem_file_read()
2048 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_DROP_NEW_LINE)) { in spl_filesystem_file_read()
2058 intern->u.file.current_line = buf; in spl_filesystem_file_read()
2059 intern->u.file.current_line_len = line_len; in spl_filesystem_file_read()
2061 intern->u.file.current_line_num += line_add; in spl_filesystem_file_read()
2066 static int spl_filesystem_file_call(spl_filesystem_object *intern, zend_function *func_ptr, int pas… in spl_filesystem_file_call() argument
2070 zval *zresource_ptr = &intern->u.file.zresource, *params, retval; in spl_filesystem_file_call()
2125 spl_filesystem_file_call(intern, func_ptr, pass_num_args, return_value, arg2); \
2128 static int spl_filesystem_file_read_csv(spl_filesystem_object *intern, char delimiter, char enclosu… in spl_filesystem_file_read_csv() argument
2134 ret = spl_filesystem_file_read(intern, 1); in spl_filesystem_file_read_csv()
2135 …} while (ret == SUCCESS && !intern->u.file.current_line_len && SPL_HAS_FLAG(intern->flags, SPL_FIL… in spl_filesystem_file_read_csv()
2138 size_t buf_len = intern->u.file.current_line_len; in spl_filesystem_file_read_csv()
2139 char *buf = estrndup(intern->u.file.current_line, buf_len); in spl_filesystem_file_read_csv()
2141 if (!Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_read_csv()
2142 zval_ptr_dtor(&intern->u.file.current_zval); in spl_filesystem_file_read_csv()
2143 ZVAL_UNDEF(&intern->u.file.current_zval); in spl_filesystem_file_read_csv()
2146 …php_fgetcsv(intern->u.file.stream, delimiter, enclosure, escape, buf_len, buf, &intern->u.file.cur… in spl_filesystem_file_read_csv()
2148 value = &intern->u.file.current_zval; in spl_filesystem_file_read_csv()
2156 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
2161 …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()
2162 if (php_stream_eof(intern->u.file.stream)) { in spl_filesystem_file_read_line_ex()
2164 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot read from file %s", intern->file_name); in spl_filesystem_file_read_line_ex()
2168 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV)) { in spl_filesystem_file_read_line_ex()
2169 …return spl_filesystem_file_read_csv(intern, intern->u.file.delimiter, intern->u.file.enclosure, in… in spl_filesystem_file_read_line_ex()
2172 …zend_call_method_with_0_params(this_ptr, Z_OBJCE_P(ZEND_THIS), &intern->u.file.func_getCurr, "getC… in spl_filesystem_file_read_line_ex()
2175 if (intern->u.file.current_line || !Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_read_line_ex()
2176 intern->u.file.current_line_num++; in spl_filesystem_file_read_line_ex()
2178 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_line_ex()
2180 intern->u.file.current_line = estrndup(Z_STRVAL(retval), Z_STRLEN(retval)); in spl_filesystem_file_read_line_ex()
2181 intern->u.file.current_line_len = Z_STRLEN(retval); in spl_filesystem_file_read_line_ex()
2185 ZVAL_COPY_DEREF(&intern->u.file.current_zval, value); in spl_filesystem_file_read_line_ex()
2193 return spl_filesystem_file_read(intern, silent); in spl_filesystem_file_read_line_ex()
2197 static int spl_filesystem_file_is_empty_line(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_file_is_empty_line() argument
2199 if (intern->u.file.current_line) { in spl_filesystem_file_is_empty_line()
2200 return intern->u.file.current_line_len == 0; in spl_filesystem_file_is_empty_line()
2201 } else if (!Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_is_empty_line()
2202 switch(Z_TYPE(intern->u.file.current_zval)) { in spl_filesystem_file_is_empty_line()
2204 return Z_STRLEN(intern->u.file.current_zval) == 0; in spl_filesystem_file_is_empty_line()
2206 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) in spl_filesystem_file_is_empty_line()
2207 && zend_hash_num_elements(Z_ARRVAL(intern->u.file.current_zval)) == 1) { in spl_filesystem_file_is_empty_line()
2211 while (Z_ISUNDEF(Z_ARRVAL(intern->u.file.current_zval)->arData[idx].val)) { in spl_filesystem_file_is_empty_line()
2214 first = &Z_ARRVAL(intern->u.file.current_zval)->arData[idx].val; in spl_filesystem_file_is_empty_line()
2217 return zend_hash_num_elements(Z_ARRVAL(intern->u.file.current_zval)) == 0; in spl_filesystem_file_is_empty_line()
2229 static int spl_filesystem_file_read_line(zval * this_ptr, spl_filesystem_object *intern, int silent… in spl_filesystem_file_read_line() argument
2231 int ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent); in spl_filesystem_file_read_line()
2233 …while (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_SKIP_EMPTY) && ret == SUCCESS && spl_filesystem… in spl_filesystem_file_read_line()
2234 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_line()
2235 ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent); in spl_filesystem_file_read_line()
2242 static void spl_filesystem_file_rewind(zval * this_ptr, spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_file_rewind() argument
2244 if(!intern->u.file.stream) { in spl_filesystem_file_rewind()
2248 if (-1 == php_stream_rewind(intern->u.file.stream)) { in spl_filesystem_file_rewind()
2249 zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot rewind file %s", intern->file_name); in spl_filesystem_file_rewind()
2251 spl_filesystem_file_free_line(intern); in spl_filesystem_file_rewind()
2252 intern->u.file.current_line_num = 0; in spl_filesystem_file_rewind()
2254 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in spl_filesystem_file_rewind()
2255 spl_filesystem_file_read_line(this_ptr, intern, 1); in spl_filesystem_file_rewind()
2263 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2270 intern->u.file.open_mode = NULL; in SPL_METHOD()
2271 intern->u.file.open_mode_len = 0; in SPL_METHOD()
2274 &intern->file_name, &intern->file_name_len, in SPL_METHOD()
2275 &intern->u.file.open_mode, &intern->u.file.open_mode_len, in SPL_METHOD()
2276 &use_include_path, &intern->u.file.zcontext) == FAILURE) { in SPL_METHOD()
2277 intern->u.file.open_mode = NULL; in SPL_METHOD()
2278 intern->file_name = NULL; in SPL_METHOD()
2282 if (intern->u.file.open_mode == NULL) { in SPL_METHOD()
2283 intern->u.file.open_mode = "r"; in SPL_METHOD()
2284 intern->u.file.open_mode_len = 1; in SPL_METHOD()
2289 if (spl_filesystem_file_open(intern, use_include_path, 0) == SUCCESS) { in SPL_METHOD()
2290 tmp_path_len = strlen(intern->u.file.stream->orig_path); in SPL_METHOD()
2292 if (tmp_path_len > 1 && IS_SLASH_AT(intern->u.file.stream->orig_path, tmp_path_len-1)) { in SPL_METHOD()
2296 tmp_path = estrndup(intern->u.file.stream->orig_path, tmp_path_len); in SPL_METHOD()
2305 intern->_path_len = ((p1 > p2 ? p1 : p2) - tmp_path); in SPL_METHOD()
2307 intern->_path_len = 0; in SPL_METHOD()
2312 intern->_path = estrndup(intern->u.file.stream->orig_path, intern->_path_len); in SPL_METHOD()
2325 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2333 intern->file_name = "php://memory"; in SPL_METHOD()
2334 intern->file_name_len = 12; in SPL_METHOD()
2336intern->file_name_len = slprintf(tmp_fname, sizeof(tmp_fname), "php://temp/maxmemory:" ZEND_LONG_F… in SPL_METHOD()
2337 intern->file_name = tmp_fname; in SPL_METHOD()
2339 intern->file_name = "php://temp"; in SPL_METHOD()
2340 intern->file_name_len = 10; in SPL_METHOD()
2342 intern->u.file.open_mode = "wb"; in SPL_METHOD()
2343 intern->u.file.open_mode_len = 1; in SPL_METHOD()
2346 if (spl_filesystem_file_open(intern, 0, 0) == SUCCESS) { in SPL_METHOD()
2347 intern->_path_len = 0; in SPL_METHOD()
2348 intern->_path = estrndup("", 0); in SPL_METHOD()
2357 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2363 spl_filesystem_file_rewind(ZEND_THIS, intern); in SPL_METHOD()
2370 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2376 if(!intern->u.file.stream) { in SPL_METHOD()
2381 RETURN_BOOL(php_stream_eof(intern->u.file.stream)); in SPL_METHOD()
2388 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2394 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in SPL_METHOD()
2395 RETURN_BOOL(intern->u.file.current_line || !Z_ISUNDEF(intern->u.file.current_zval)); in SPL_METHOD()
2397 if(!intern->u.file.stream) { in SPL_METHOD()
2400 RETVAL_BOOL(!php_stream_eof(intern->u.file.stream)); in SPL_METHOD()
2408 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2414 if(!intern->u.file.stream) { in SPL_METHOD()
2419 if (spl_filesystem_file_read(intern, 0) == FAILURE) { in SPL_METHOD()
2422 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); in SPL_METHOD()
2429 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2435 if(!intern->u.file.stream) { in SPL_METHOD()
2440 if (!intern->u.file.current_line && Z_ISUNDEF(intern->u.file.current_zval)) { in SPL_METHOD()
2441 spl_filesystem_file_read_line(ZEND_THIS, intern, 1); in SPL_METHOD()
2443 …if (intern->u.file.current_line && (!SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) || Z_IS… in SPL_METHOD()
2444 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); in SPL_METHOD()
2445 } else if (!Z_ISUNDEF(intern->u.file.current_zval)) { in SPL_METHOD()
2446 zval *value = &intern->u.file.current_zval; in SPL_METHOD()
2458 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2468 RETURN_LONG(intern->u.file.current_line_num); in SPL_METHOD()
2475 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2481 spl_filesystem_file_free_line(intern); in SPL_METHOD()
2482 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in SPL_METHOD()
2483 spl_filesystem_file_read_line(ZEND_THIS, intern, 1); in SPL_METHOD()
2485 intern->u.file.current_line_num++; in SPL_METHOD()
2492 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2494 if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &intern->flags) == FAILURE) { in SPL_METHOD()
2503 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2509 RETURN_LONG(intern->flags & SPL_FILE_OBJECT_MASK); in SPL_METHOD()
2518 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2529 intern->u.file.max_line_len = max_len; in SPL_METHOD()
2536 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2542 RETURN_LONG((zend_long)intern->u.file.max_line_len); in SPL_METHOD()
2570 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); \
2579 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2580 char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure; in SPL_METHOD()
2581 int escape = intern->u.file.escape; in SPL_METHOD()
2587 if(!intern->u.file.stream) { in SPL_METHOD()
2622 spl_filesystem_file_read_csv(intern, delimiter, enclosure, escape, return_value); in SPL_METHOD()
2631 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2632 char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure; in SPL_METHOD()
2633 int escape = intern->u.file.escape; in SPL_METHOD()
2673 ret = php_fputcsv(intern->u.file.stream, fields, delimiter, enclosure, escape); in SPL_METHOD()
2686 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2725 intern->u.file.delimiter = delimiter; in SPL_METHOD()
2726 intern->u.file.enclosure = enclosure; in SPL_METHOD()
2727 intern->u.file.escape = escape; in SPL_METHOD()
2736 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2741 delimiter[0] = intern->u.file.delimiter; in SPL_METHOD()
2743 enclosure[0] = intern->u.file.enclosure; in SPL_METHOD()
2745 if (intern->u.file.escape == PHP_CSV_NO_ESCAPE) { in SPL_METHOD()
2748 escape[0] = (unsigned char) intern->u.file.escape; in SPL_METHOD()
2767 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2769 if(!intern->u.file.stream) { in SPL_METHOD()
2774 RETURN_BOOL(!php_stream_flush(intern->u.file.stream)); in SPL_METHOD()
2781 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2784 if(!intern->u.file.stream) { in SPL_METHOD()
2789 ret = php_stream_tell(intern->u.file.stream); in SPL_METHOD()
2802 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2809 if(!intern->u.file.stream) { in SPL_METHOD()
2814 spl_filesystem_file_free_line(intern); in SPL_METHOD()
2815 RETURN_LONG(php_stream_seek(intern->u.file.stream, pos, (int)whence)); in SPL_METHOD()
2822 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2826 if(!intern->u.file.stream) { in SPL_METHOD()
2831 spl_filesystem_file_free_line(intern); in SPL_METHOD()
2833 result = php_stream_getc(intern->u.file.stream); in SPL_METHOD()
2839 intern->u.file.current_line_num++; in SPL_METHOD()
2852 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2855 if(!intern->u.file.stream) { in SPL_METHOD()
2860 if (intern->u.file.max_line_len > 0) { in SPL_METHOD()
2861 ZVAL_LONG(&arg2, intern->u.file.max_line_len); in SPL_METHOD()
2866 spl_filesystem_file_free_line(intern); in SPL_METHOD()
2867 intern->u.file.current_line_num++; in SPL_METHOD()
2876 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2878 if(!intern->u.file.stream) { in SPL_METHOD()
2883 RETURN_LONG(php_stream_passthru(intern->u.file.stream)); in SPL_METHOD()
2890 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2892 if(!intern->u.file.stream) { in SPL_METHOD()
2897 spl_filesystem_file_free_line(intern); in SPL_METHOD()
2898 intern->u.file.current_line_num++; in SPL_METHOD()
2908 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2918 if(!intern->u.file.stream) { in SPL_METHOD()
2935 written = php_stream_write(intern->u.file.stream, str, str_len); in SPL_METHOD()
2944 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2952 if(!intern->u.file.stream) { in SPL_METHOD()
2962 str = php_stream_read_to_str(intern->u.file.stream, length); in SPL_METHOD()
2978 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
2985 if(!intern->u.file.stream) { in SPL_METHOD()
2990 if (!php_stream_truncate_supported(intern->u.file.stream)) { in SPL_METHOD()
2991 zend_throw_exception_ex(spl_ce_LogicException, 0, "Can't truncate file %s", intern->file_name); in SPL_METHOD()
2995 RETURN_BOOL(0 == php_stream_truncate_set_size(intern->u.file.stream, size)); in SPL_METHOD()
3002 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); in SPL_METHOD() local
3008 if(!intern->u.file.stream) { in SPL_METHOD()
3014 …LogicException, 0, "Can't seek file %s to negative line " ZEND_LONG_FMT, intern->file_name, line_p… in SPL_METHOD()
3018 spl_filesystem_file_rewind(ZEND_THIS, intern); in SPL_METHOD()
3020 while(intern->u.file.current_line_num < line_pos) { in SPL_METHOD()
3021 if (spl_filesystem_file_read_line(ZEND_THIS, intern, 1) == FAILURE) { in SPL_METHOD()