Lines Matching refs:intern

63 static void spl_filesystem_file_free_line(spl_filesystem_object *intern) /* {{{ */  in spl_filesystem_file_free_line()  argument
65 if (intern->u.file.current_line) { in spl_filesystem_file_free_line()
66 efree(intern->u.file.current_line); in spl_filesystem_file_free_line()
67 intern->u.file.current_line = NULL; in spl_filesystem_file_free_line()
69 if (!Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_free_line()
70 zval_ptr_dtor(&intern->u.file.current_zval); in spl_filesystem_file_free_line()
71 ZVAL_UNDEF(&intern->u.file.current_zval); in spl_filesystem_file_free_line()
77 spl_filesystem_object *intern = spl_filesystem_from_obj(object); in spl_filesystem_object_free_storage() local
79 if (intern->oth_handler && intern->oth_handler->dtor) { in spl_filesystem_object_free_storage()
80 intern->oth_handler->dtor(intern); in spl_filesystem_object_free_storage()
83 zend_object_std_dtor(&intern->std); in spl_filesystem_object_free_storage()
85 if (intern->_path) { in spl_filesystem_object_free_storage()
86 efree(intern->_path); in spl_filesystem_object_free_storage()
88 if (intern->file_name) { in spl_filesystem_object_free_storage()
89 efree(intern->file_name); in spl_filesystem_object_free_storage()
91 switch(intern->type) { in spl_filesystem_object_free_storage()
95 if (intern->u.dir.dirp) { in spl_filesystem_object_free_storage()
96 php_stream_close(intern->u.dir.dirp); in spl_filesystem_object_free_storage()
97 intern->u.dir.dirp = NULL; in spl_filesystem_object_free_storage()
99 if (intern->u.dir.sub_path) { in spl_filesystem_object_free_storage()
100 efree(intern->u.dir.sub_path); in spl_filesystem_object_free_storage()
104 if (intern->u.file.stream) { in spl_filesystem_object_free_storage()
110 if (!intern->u.file.stream->is_persistent) { in spl_filesystem_object_free_storage()
111 php_stream_close(intern->u.file.stream); in spl_filesystem_object_free_storage()
113 php_stream_pclose(intern->u.file.stream); in spl_filesystem_object_free_storage()
115 if (intern->u.file.open_mode) { in spl_filesystem_object_free_storage()
116 efree(intern->u.file.open_mode); in spl_filesystem_object_free_storage()
118 if (intern->orig_path) { in spl_filesystem_object_free_storage()
119 efree(intern->orig_path); in spl_filesystem_object_free_storage()
122 spl_filesystem_file_free_line(intern); in spl_filesystem_object_free_storage()
140 spl_filesystem_object *intern; in spl_filesystem_object_new_ex() local
142 intern = ecalloc(1, sizeof(spl_filesystem_object) + zend_object_properties_size(class_type)); in spl_filesystem_object_new_ex()
144 intern->file_class = spl_ce_SplFileObject; in spl_filesystem_object_new_ex()
145 intern->info_class = spl_ce_SplFileInfo; in spl_filesystem_object_new_ex()
147 zend_object_std_init(&intern->std, class_type); in spl_filesystem_object_new_ex()
148 object_properties_init(&intern->std, class_type); in spl_filesystem_object_new_ex()
149 intern->std.handlers = &spl_filesystem_object_handlers; in spl_filesystem_object_new_ex()
151 return &intern->std; in spl_filesystem_object_new_ex()
172 PHPAPI char* spl_filesystem_object_get_path(spl_filesystem_object *intern, size_t *len) /* {{{ */ in spl_filesystem_object_get_path() argument
175 if (intern->type == SPL_FS_DIR) { in spl_filesystem_object_get_path()
176 if (php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in spl_filesystem_object_get_path()
177 return php_glob_stream_get_path(intern->u.dir.dirp, 0, len); in spl_filesystem_object_get_path()
182 *len = intern->_path_len; in spl_filesystem_object_get_path()
184 return intern->_path; in spl_filesystem_object_get_path()
187 static inline void spl_filesystem_object_get_file_name(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_object_get_file_name() argument
189 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in spl_filesystem_object_get_file_name()
191 switch (intern->type) { in spl_filesystem_object_get_file_name()
194 if (!intern->file_name) { in spl_filesystem_object_get_file_name()
199 if (intern->file_name) { in spl_filesystem_object_get_file_name()
200 efree(intern->file_name); in spl_filesystem_object_get_file_name()
202 intern->file_name_len = spprintf(&intern->file_name, 0, "%s%c%s", in spl_filesystem_object_get_file_name()
203 spl_filesystem_object_get_path(intern, NULL), in spl_filesystem_object_get_file_name()
204 slash, intern->u.dir.entry.d_name); in spl_filesystem_object_get_file_name()
209 static int spl_filesystem_dir_read(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_dir_read() argument
211 if (!intern->u.dir.dirp || !php_stream_readdir(intern->u.dir.dirp, &intern->u.dir.entry)) { in spl_filesystem_dir_read()
212 intern->u.dir.entry.d_name[0] = '\0'; in spl_filesystem_dir_read()
230 static void spl_filesystem_dir_open(spl_filesystem_object* intern, char *path) in spl_filesystem_dir_open() argument
232 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in spl_filesystem_dir_open()
234 intern->type = SPL_FS_DIR; in spl_filesystem_dir_open()
235 intern->_path_len = strlen(path); in spl_filesystem_dir_open()
236 intern->u.dir.dirp = php_stream_opendir(path, REPORT_ERRORS, FG(default_context)); in spl_filesystem_dir_open()
238 if (intern->_path_len > 1 && IS_SLASH_AT(path, intern->_path_len-1)) { in spl_filesystem_dir_open()
239 intern->_path = estrndup(path, --intern->_path_len); in spl_filesystem_dir_open()
241 intern->_path = estrndup(path, intern->_path_len); in spl_filesystem_dir_open()
243 intern->u.dir.index = 0; in spl_filesystem_dir_open()
245 if (EG(exception) || intern->u.dir.dirp == NULL) { in spl_filesystem_dir_open()
246 intern->u.dir.entry.d_name[0] = '\0'; in spl_filesystem_dir_open()
254 spl_filesystem_dir_read(intern); in spl_filesystem_dir_open()
255 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in spl_filesystem_dir_open()
260 static int spl_filesystem_file_open(spl_filesystem_object *intern, int use_include_path, int silent… in spl_filesystem_file_open() argument
264 intern->type = SPL_FS_FILE; in spl_filesystem_file_open()
266 php_stat(intern->file_name, intern->file_name_len, FS_IS_DIR, &tmp); in spl_filesystem_file_open()
268 intern->u.file.open_mode = NULL; in spl_filesystem_file_open()
269 intern->file_name = NULL; in spl_filesystem_file_open()
274 intern->u.file.context = php_stream_context_from_zval(intern->u.file.zcontext, 0); in spl_filesystem_file_open()
275intern->u.file.stream = php_stream_open_wrapper_ex(intern->file_name, intern->u.file.open_mode, (u… in spl_filesystem_file_open()
277 if (!intern->file_name_len || !intern->u.file.stream) { in spl_filesystem_file_open()
279 …tion_ex(spl_ce_RuntimeException, 0, "Cannot open file '%s'", intern->file_name_len ? intern->file_… in spl_filesystem_file_open()
281 intern->file_name = NULL; /* until here it is not a copy */ in spl_filesystem_file_open()
282 intern->u.file.open_mode = NULL; in spl_filesystem_file_open()
293 if (intern->file_name_len > 1 && IS_SLASH_AT(intern->file_name, intern->file_name_len-1)) { in spl_filesystem_file_open()
294 intern->file_name_len--; in spl_filesystem_file_open()
297intern->orig_path = estrndup(intern->u.file.stream->orig_path, strlen(intern->u.file.stream->orig_… in spl_filesystem_file_open()
299 intern->file_name = estrndup(intern->file_name, intern->file_name_len); in spl_filesystem_file_open()
300 intern->u.file.open_mode = estrndup(intern->u.file.open_mode, intern->u.file.open_mode_len); in spl_filesystem_file_open()
303 ZVAL_RES(&intern->u.file.zresource, intern->u.file.stream->res); in spl_filesystem_file_open()
308 intern->u.file.delimiter = ','; in spl_filesystem_file_open()
309 intern->u.file.enclosure = '"'; in spl_filesystem_file_open()
310 intern->u.file.escape = '\\'; in spl_filesystem_file_open()
312intern->u.file.func_getCurr = zend_hash_str_find_ptr(&intern->std.ce->function_table, "getcurrentl… in spl_filesystem_file_open()
328 spl_filesystem_object *intern; in spl_filesystem_object_clone() local
335 intern = spl_filesystem_from_obj(new_object); in spl_filesystem_object_clone()
337 intern->flags = source->flags; in spl_filesystem_object_clone()
341 intern->_path_len = source->_path_len; in spl_filesystem_object_clone()
342 intern->_path = estrndup(source->_path, source->_path_len); in spl_filesystem_object_clone()
343 intern->file_name_len = source->file_name_len; in spl_filesystem_object_clone()
344 intern->file_name = estrndup(source->file_name, intern->file_name_len); in spl_filesystem_object_clone()
347 spl_filesystem_dir_open(intern, source->_path); in spl_filesystem_object_clone()
352 spl_filesystem_dir_read(intern); in spl_filesystem_object_clone()
353 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in spl_filesystem_object_clone()
355 intern->u.dir.index = index; in spl_filesystem_object_clone()
362 intern->file_class = source->file_class; in spl_filesystem_object_clone()
363 intern->info_class = source->info_class; in spl_filesystem_object_clone()
364 intern->oth = source->oth; in spl_filesystem_object_clone()
365 intern->oth_handler = source->oth_handler; in spl_filesystem_object_clone()
369 if (intern->oth_handler && intern->oth_handler->clone) { in spl_filesystem_object_clone()
370 intern->oth_handler->clone(source, intern); in spl_filesystem_object_clone()
377 void spl_filesystem_info_set_filename(spl_filesystem_object *intern, char *path, size_t len, size_t… in spl_filesystem_info_set_filename() argument
381 if (intern->file_name) { in spl_filesystem_info_set_filename()
382 efree(intern->file_name); in spl_filesystem_info_set_filename()
385 intern->file_name = use_copy ? estrndup(path, len) : path; in spl_filesystem_info_set_filename()
386 intern->file_name_len = len; in spl_filesystem_info_set_filename()
388 while (intern->file_name_len > 1 && IS_SLASH_AT(intern->file_name, intern->file_name_len-1)) { in spl_filesystem_info_set_filename()
389 intern->file_name[intern->file_name_len-1] = 0; in spl_filesystem_info_set_filename()
390 intern->file_name_len--; in spl_filesystem_info_set_filename()
393 p1 = strrchr(intern->file_name, '/'); in spl_filesystem_info_set_filename()
395 p2 = strrchr(intern->file_name, '\\'); in spl_filesystem_info_set_filename()
400 intern->_path_len = ((p1 > p2 ? p1 : p2) - intern->file_name); in spl_filesystem_info_set_filename()
402 intern->_path_len = 0; in spl_filesystem_info_set_filename()
405 if (intern->_path) { in spl_filesystem_info_set_filename()
406 efree(intern->_path); in spl_filesystem_info_set_filename()
408 intern->_path = estrndup(path, intern->_path_len); in spl_filesystem_info_set_filename()
413 spl_filesystem_object *intern; in spl_filesystem_object_create_info() local
439 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_info()
440 ZVAL_OBJ(return_value, &intern->std); in spl_filesystem_object_create_info()
447 spl_filesystem_info_set_filename(intern, file_path, file_path_len, use_copy); in spl_filesystem_object_create_info()
451 return intern; in spl_filesystem_object_create_info()
456 spl_filesystem_object *intern; in spl_filesystem_object_create_type() local
483 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_type()
484 ZVAL_OBJ(return_value, &intern->std); in spl_filesystem_object_create_type()
492 intern->file_name = estrndup(source->file_name, source->file_name_len); in spl_filesystem_object_create_type()
493 intern->file_name_len = source->file_name_len; in spl_filesystem_object_create_type()
494 intern->_path = spl_filesystem_object_get_path(source, &intern->_path_len); in spl_filesystem_object_create_type()
495 intern->_path = estrndup(intern->_path, intern->_path_len); in spl_filesystem_object_create_type()
505 intern = spl_filesystem_from_obj(spl_filesystem_object_new_ex(ce)); in spl_filesystem_object_create_type()
507 ZVAL_OBJ(return_value, &intern->std); in spl_filesystem_object_create_type()
518 intern->file_name = source->file_name; in spl_filesystem_object_create_type()
519 intern->file_name_len = source->file_name_len; in spl_filesystem_object_create_type()
520 intern->_path = spl_filesystem_object_get_path(source, &intern->_path_len); in spl_filesystem_object_create_type()
521 intern->_path = estrndup(intern->_path, intern->_path_len); in spl_filesystem_object_create_type()
523 intern->u.file.open_mode = "r"; in spl_filesystem_object_create_type()
524 intern->u.file.open_mode_len = 1; in spl_filesystem_object_create_type()
527 &intern->u.file.open_mode, &intern->u.file.open_mode_len, in spl_filesystem_object_create_type()
528 &use_include_path, &intern->u.file.zcontext) == FAILURE) { in spl_filesystem_object_create_type()
530 intern->u.file.open_mode = NULL; in spl_filesystem_object_create_type()
531 intern->file_name = NULL; in spl_filesystem_object_create_type()
537 if (spl_filesystem_file_open(intern, use_include_path, 0) == FAILURE) { in spl_filesystem_object_create_type()
560 static char *spl_filesystem_object_get_pathname(spl_filesystem_object *intern, size_t *len) { /* {{… in spl_filesystem_object_get_pathname() argument
561 switch (intern->type) { in spl_filesystem_object_get_pathname()
564 *len = intern->file_name_len; in spl_filesystem_object_get_pathname()
565 return intern->file_name; in spl_filesystem_object_get_pathname()
567 if (intern->u.dir.entry.d_name[0]) { in spl_filesystem_object_get_pathname()
568 spl_filesystem_object_get_file_name(intern); in spl_filesystem_object_get_pathname()
569 *len = intern->file_name_len; in spl_filesystem_object_get_pathname()
570 return intern->file_name; in spl_filesystem_object_get_pathname()
580 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(object); in spl_filesystem_object_get_debug_info() local
590 if (!intern->std.properties) { in spl_filesystem_object_get_debug_info()
591 rebuild_object_properties(&intern->std); in spl_filesystem_object_get_debug_info()
594 rv = zend_array_dup(intern->std.properties); in spl_filesystem_object_get_debug_info()
597 path = spl_filesystem_object_get_pathname(intern, &path_len); in spl_filesystem_object_get_debug_info()
602 if (intern->file_name) { in spl_filesystem_object_get_debug_info()
604 spl_filesystem_object_get_path(intern, &path_len); in spl_filesystem_object_get_debug_info()
606 if (path_len && path_len < intern->file_name_len) { in spl_filesystem_object_get_debug_info()
607 ZVAL_STRINGL(&tmp, intern->file_name + path_len + 1, intern->file_name_len - (path_len + 1)); in spl_filesystem_object_get_debug_info()
609 ZVAL_STRINGL(&tmp, intern->file_name, intern->file_name_len); in spl_filesystem_object_get_debug_info()
614 if (intern->type == SPL_FS_DIR) { in spl_filesystem_object_get_debug_info()
617 if (php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in spl_filesystem_object_get_debug_info()
618 ZVAL_STRINGL(&tmp, intern->_path, intern->_path_len); in spl_filesystem_object_get_debug_info()
626 if (intern->u.dir.sub_path) { in spl_filesystem_object_get_debug_info()
627 ZVAL_STRINGL(&tmp, intern->u.dir.sub_path, intern->u.dir.sub_path_len); in spl_filesystem_object_get_debug_info()
634 if (intern->type == SPL_FS_FILE) { in spl_filesystem_object_get_debug_info()
636 ZVAL_STRINGL(&tmp, intern->u.file.open_mode, intern->u.file.open_mode_len); in spl_filesystem_object_get_debug_info()
640 stmp[0] = intern->u.file.delimiter; in spl_filesystem_object_get_debug_info()
645 stmp[0] = intern->u.file.enclosure; in spl_filesystem_object_get_debug_info()
677 spl_filesystem_object *intern; in spl_filesystem_object_construct() local
709 intern = Z_SPLFILESYSTEM_P(getThis()); in spl_filesystem_object_construct()
710 if (intern->_path) { in spl_filesystem_object_construct()
716 intern->flags = flags; in spl_filesystem_object_construct()
720 spl_filesystem_dir_open(intern, path); in spl_filesystem_object_construct()
725 spl_filesystem_dir_open(intern, path); in spl_filesystem_object_construct()
729intern->u.dir.is_recursive = instanceof_function(intern->std.ce, spl_ce_RecursiveDirectoryIterator… in spl_filesystem_object_construct()
747 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
753 intern->u.dir.index = 0; in SPL_METHOD()
754 if (intern->u.dir.dirp) { in SPL_METHOD()
755 php_stream_rewinddir(intern->u.dir.dirp); in SPL_METHOD()
757 spl_filesystem_dir_read(intern); in SPL_METHOD()
765 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
771 if (intern->u.dir.dirp) { in SPL_METHOD()
772 RETURN_LONG(intern->u.dir.index); in SPL_METHOD()
795 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
796 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in SPL_METHOD()
802 intern->u.dir.index++; in SPL_METHOD()
804 spl_filesystem_dir_read(intern); in SPL_METHOD()
805 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in SPL_METHOD()
806 if (intern->file_name) { in SPL_METHOD()
807 efree(intern->file_name); in SPL_METHOD()
808 intern->file_name = NULL; in SPL_METHOD()
817 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
825 if (intern->u.dir.index > pos) { in SPL_METHOD()
827 …zend_call_method_with_0_params(&EX(This), Z_OBJCE(EX(This)), &intern->u.dir.func_rewind, "rewind",… in SPL_METHOD()
830 while (intern->u.dir.index < pos) { in SPL_METHOD()
832 …zend_call_method_with_0_params(&EX(This), Z_OBJCE(EX(This)), &intern->u.dir.func_valid, "valid", &… in SPL_METHOD()
841 …zend_call_method_with_0_params(&EX(This), Z_OBJCE(EX(This)), &intern->u.dir.func_next, "next", NUL… in SPL_METHOD()
849 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
855 RETURN_BOOL(intern->u.dir.entry.d_name[0] != '\0'); in SPL_METHOD()
863 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
871 path = spl_filesystem_object_get_path(intern, &path_len); in SPL_METHOD()
880 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
887 spl_filesystem_object_get_path(intern, &path_len); in SPL_METHOD()
889 if (path_len && path_len < intern->file_name_len) { in SPL_METHOD()
890 RETURN_STRINGL(intern->file_name + path_len + 1, intern->file_name_len - (path_len + 1)); in SPL_METHOD()
892 RETURN_STRINGL(intern->file_name, intern->file_name_len); in SPL_METHOD()
901 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
907 RETURN_STRING(intern->u.dir.entry.d_name); in SPL_METHOD()
915 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
927 spl_filesystem_object_get_path(intern, &path_len); in SPL_METHOD()
929 if (path_len && path_len < intern->file_name_len) { in SPL_METHOD()
930 fname = intern->file_name + path_len + 1; in SPL_METHOD()
931 flen = intern->file_name_len - (path_len + 1); in SPL_METHOD()
933 fname = intern->file_name; in SPL_METHOD()
934 flen = intern->file_name_len; in SPL_METHOD()
956 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
965 fname = php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), NULL, 0); in SPL_METHOD()
983 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
992 spl_filesystem_object_get_path(intern, &path_len); in SPL_METHOD()
994 if (path_len && path_len < intern->file_name_len) { in SPL_METHOD()
995 fname = intern->file_name + path_len + 1; in SPL_METHOD()
996 flen = intern->file_name_len - (path_len + 1); in SPL_METHOD()
998 fname = intern->file_name; in SPL_METHOD()
999 flen = intern->file_name_len; in SPL_METHOD()
1010 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1019 fname = php_basename(intern->u.dir.entry.d_name, strlen(intern->u.dir.entry.d_name), suffix, slen); in SPL_METHOD()
1029 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1036 path = spl_filesystem_object_get_pathname(intern, &path_len); in SPL_METHOD()
1049 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1055 if (SPL_FILE_DIR_KEY(intern, SPL_FILE_DIR_KEY_AS_FILENAME)) { in SPL_METHOD()
1056 RETURN_STRING(intern->u.dir.entry.d_name); in SPL_METHOD()
1058 spl_filesystem_object_get_file_name(intern); in SPL_METHOD()
1059 RETURN_STRINGL(intern->file_name, intern->file_name_len); in SPL_METHOD()
1068 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1074 if (SPL_FILE_DIR_CURRENT(intern, SPL_FILE_DIR_CURRENT_AS_PATHNAME)) { in SPL_METHOD()
1075 spl_filesystem_object_get_file_name(intern); in SPL_METHOD()
1076 RETURN_STRINGL(intern->file_name, intern->file_name_len); in SPL_METHOD()
1077 } else if (SPL_FILE_DIR_CURRENT(intern, SPL_FILE_DIR_CURRENT_AS_FILEINFO)) { in SPL_METHOD()
1078 spl_filesystem_object_get_file_name(intern); in SPL_METHOD()
1079 spl_filesystem_object_create_type(0, intern, SPL_FS_INFO, NULL, return_value); in SPL_METHOD()
1092 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1098 RETURN_BOOL(spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in SPL_METHOD()
1109 spl_filesystem_object *intern; in SPL_METHOD() local
1117 intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD()
1119 spl_filesystem_info_set_filename(intern, path, len, 1); in SPL_METHOD()
1129 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); \
1136 spl_filesystem_object_get_file_name(intern); \
1137 php_stat(intern->file_name, intern->file_name_len, func_num, return_value); \
1221 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in FileInfoFunction() local
1232 if (intern->file_name == NULL) { in FileInfoFunction()
1233 spl_filesystem_object_get_file_name(intern); in FileInfoFunction()
1236 if (intern->file_name == NULL) { in FileInfoFunction()
1239 } else if (!IS_ABSOLUTE_PATH(intern->file_name, intern->file_name_len)) { in FileInfoFunction()
1241 if (!expand_filepath_with_mode(intern->file_name, expanded_path, NULL, 0, CWD_EXPAND )) { in FileInfoFunction()
1247 ret = php_sys_readlink(intern->file_name, buff, MAXPATHLEN-1); in FileInfoFunction()
1254 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Unable to read link %s, error: %s", intern->f… in FileInfoFunction()
1272 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1283 if (intern->type == SPL_FS_DIR && !intern->file_name && intern->u.dir.entry.d_name[0]) { in SPL_METHOD()
1284 spl_filesystem_object_get_file_name(intern); in SPL_METHOD()
1287 if (intern->orig_path) { in SPL_METHOD()
1288 filename = intern->orig_path; in SPL_METHOD()
1290 filename = intern->file_name; in SPL_METHOD()
1314 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1316 spl_filesystem_object_create_type(ZEND_NUM_ARGS(), intern, SPL_FS_FILE, NULL, return_value); in SPL_METHOD()
1324 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1331 intern->file_class = ce; in SPL_METHOD()
1342 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1349 intern->info_class = ce; in SPL_METHOD()
1360 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1361 zend_class_entry *ce = intern->info_class; in SPL_METHOD()
1367 spl_filesystem_object_create_type(ZEND_NUM_ARGS(), intern, SPL_FS_INFO, ce, return_value); in SPL_METHOD()
1378 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1379 zend_class_entry *ce = intern->info_class; in SPL_METHOD()
1386 char *path = spl_filesystem_object_get_pathname(intern, &path_len); in SPL_METHOD()
1390 spl_filesystem_object_create_info(intern, dpath, path_len, 1, ce, return_value); in SPL_METHOD()
1420 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1421 int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS); in SPL_METHOD()
1427 intern->u.dir.index = 0; in SPL_METHOD()
1428 if (intern->u.dir.dirp) { in SPL_METHOD()
1429 php_stream_rewinddir(intern->u.dir.dirp); in SPL_METHOD()
1432 spl_filesystem_dir_read(intern); in SPL_METHOD()
1433 } while (skip_dots && spl_filesystem_is_dot(intern->u.dir.entry.d_name)); in SPL_METHOD()
1441 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1447 …RETURN_LONG(intern->flags & (SPL_FILE_DIR_KEY_MODE_MASK | SPL_FILE_DIR_CURRENT_MODE_MASK | SPL_FIL… in SPL_METHOD()
1454 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1461intern->flags &= ~(SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_M… in SPL_METHOD()
1462intern->flags |= ((SPL_FILE_DIR_KEY_MODE_MASK|SPL_FILE_DIR_CURRENT_MODE_MASK|SPL_FILE_DIR_OTHERS_M… in SPL_METHOD()
1470 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1475 if (spl_filesystem_is_invalid_or_dot(intern->u.dir.entry.d_name)) { in SPL_METHOD()
1478 spl_filesystem_object_get_file_name(intern); in SPL_METHOD()
1479 if (!allow_links && !(intern->flags & SPL_FILE_DIR_FOLLOW_SYMLINKS)) { in SPL_METHOD()
1480 php_stat(intern->file_name, intern->file_name_len, FS_IS_LINK, return_value); in SPL_METHOD()
1485 php_stat(intern->file_name, intern->file_name_len, FS_IS_DIR, return_value); in SPL_METHOD()
1495 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1497 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in SPL_METHOD()
1503 spl_filesystem_object_get_file_name(intern); in SPL_METHOD()
1505 ZVAL_LONG(&zflags, intern->flags); in SPL_METHOD()
1506 ZVAL_STRINGL(&zpath, intern->file_name, intern->file_name_len); in SPL_METHOD()
1513 if (intern->u.dir.sub_path && intern->u.dir.sub_path[0]) { in SPL_METHOD()
1514 …path_len = spprintf(&subdir->u.dir.sub_path, 0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u… in SPL_METHOD()
1516 subdir->u.dir.sub_path_len = strlen(intern->u.dir.entry.d_name); in SPL_METHOD()
1517 subdir->u.dir.sub_path = estrndup(intern->u.dir.entry.d_name, subdir->u.dir.sub_path_len); in SPL_METHOD()
1519 subdir->info_class = intern->info_class; in SPL_METHOD()
1520 subdir->file_class = intern->file_class; in SPL_METHOD()
1521 subdir->oth = intern->oth; in SPL_METHOD()
1530 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1536 if (intern->u.dir.sub_path) { in SPL_METHOD()
1537 RETURN_STRINGL(intern->u.dir.sub_path, intern->u.dir.sub_path_len); in SPL_METHOD()
1548 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1549 char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH; in SPL_METHOD()
1555 if (intern->u.dir.sub_path) { in SPL_METHOD()
1556 …RETURN_NEW_STR(strpprintf(0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u.dir.entry.d_name)); in SPL_METHOD()
1558 RETURN_STRING(intern->u.dir.entry.d_name); in SPL_METHOD()
1584 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
1590 if (intern->u.dir.dirp && php_stream_is(intern->u.dir.dirp ,&php_glob_stream_ops)) { in SPL_METHOD()
1591 RETURN_LONG(php_glob_stream_get_count(intern->u.dir.dirp, NULL)); in SPL_METHOD()
1631 ZVAL_COPY(&iterator->intern.data, object); in spl_filesystem_dir_get_iterator()
1632 iterator->intern.funcs = &spl_filesystem_dir_it_funcs; in spl_filesystem_dir_get_iterator()
1637 return &iterator->intern; in spl_filesystem_dir_get_iterator()
1646 if (!Z_ISUNDEF(iterator->intern.data)) { in spl_filesystem_dir_it_dtor()
1647 zval *object = &iterator->intern.data; in spl_filesystem_dir_it_dtor()
1716 if (!Z_ISUNDEF(iterator->intern.data)) { in spl_filesystem_tree_it_dtor()
1717 zval *object = &iterator->intern.data; in spl_filesystem_tree_it_dtor()
1747 return &iterator->intern.data; in spl_filesystem_tree_it_current_data()
1831 ZVAL_COPY(&iterator->intern.data, object); in spl_filesystem_tree_get_iterator()
1832 iterator->intern.funcs = &spl_filesystem_tree_it_funcs; in spl_filesystem_tree_get_iterator()
1834 return &iterator->intern; in spl_filesystem_tree_get_iterator()
1841 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(readobj); in spl_filesystem_object_cast() local
1848 switch (intern->type) { in spl_filesystem_object_cast()
1855 ZVAL_STRINGL(retval_ptr, intern->file_name, intern->file_name_len); in spl_filesystem_object_cast()
1859 ZVAL_STRINGL(writeobj, intern->file_name, intern->file_name_len); in spl_filesystem_object_cast()
1867 ZVAL_STRING(retval_ptr, intern->u.dir.entry.d_name); in spl_filesystem_object_cast()
1871 ZVAL_STRING(writeobj, intern->u.dir.entry.d_name); in spl_filesystem_object_cast()
2016 static int spl_filesystem_file_read(spl_filesystem_object *intern, int silent) /* {{{ */ in spl_filesystem_file_read() argument
2020 …zend_long line_add = (intern->u.file.current_line || !Z_ISUNDEF(intern->u.file.current_zval)) ? 1 … in spl_filesystem_file_read()
2022 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read()
2024 if (php_stream_eof(intern->u.file.stream)) { in spl_filesystem_file_read()
2026 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot read from file %s", intern->file_name); in spl_filesystem_file_read()
2031 if (intern->u.file.max_line_len > 0) { in spl_filesystem_file_read()
2032 buf = safe_emalloc((intern->u.file.max_line_len + 1), sizeof(char), 0); in spl_filesystem_file_read()
2033 …if (php_stream_get_line(intern->u.file.stream, buf, intern->u.file.max_line_len + 1, &line_len) ==… in spl_filesystem_file_read()
2040 buf = php_stream_get_line(intern->u.file.stream, NULL, 0, &line_len); in spl_filesystem_file_read()
2044 intern->u.file.current_line = estrdup(""); in spl_filesystem_file_read()
2045 intern->u.file.current_line_len = 0; in spl_filesystem_file_read()
2047 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_DROP_NEW_LINE)) { in spl_filesystem_file_read()
2052 intern->u.file.current_line = buf; in spl_filesystem_file_read()
2053 intern->u.file.current_line_len = line_len; in spl_filesystem_file_read()
2055 intern->u.file.current_line_num += line_add; in spl_filesystem_file_read()
2060 static int spl_filesystem_file_call(spl_filesystem_object *intern, zend_function *func_ptr, int pas… in spl_filesystem_file_call() argument
2064 zval *zresource_ptr = &intern->u.file.zresource, retval; in spl_filesystem_file_call()
2117 spl_filesystem_file_call(intern, func_ptr, pass_num_args, return_value, arg2); \
2120 static int spl_filesystem_file_read_csv(spl_filesystem_object *intern, char delimiter, char enclosu… in spl_filesystem_file_read_csv() argument
2126 ret = spl_filesystem_file_read(intern, 1); in spl_filesystem_file_read_csv()
2127 …} while (ret == SUCCESS && !intern->u.file.current_line_len && SPL_HAS_FLAG(intern->flags, SPL_FIL… in spl_filesystem_file_read_csv()
2130 size_t buf_len = intern->u.file.current_line_len; in spl_filesystem_file_read_csv()
2131 char *buf = estrndup(intern->u.file.current_line, buf_len); in spl_filesystem_file_read_csv()
2133 if (!Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_read_csv()
2134 zval_ptr_dtor(&intern->u.file.current_zval); in spl_filesystem_file_read_csv()
2135 ZVAL_UNDEF(&intern->u.file.current_zval); in spl_filesystem_file_read_csv()
2138 …php_fgetcsv(intern->u.file.stream, delimiter, enclosure, escape, buf_len, buf, &intern->u.file.cur… in spl_filesystem_file_read_csv()
2141 value = &intern->u.file.current_zval; in spl_filesystem_file_read_csv()
2150 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
2155 …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()
2156 if (php_stream_eof(intern->u.file.stream)) { in spl_filesystem_file_read_line_ex()
2158 …zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot read from file %s", intern->file_name); in spl_filesystem_file_read_line_ex()
2162 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV)) { in spl_filesystem_file_read_line_ex()
2163 …return spl_filesystem_file_read_csv(intern, intern->u.file.delimiter, intern->u.file.enclosure, in… in spl_filesystem_file_read_line_ex()
2166 …zend_call_method_with_0_params(this_ptr, Z_OBJCE(EX(This)), &intern->u.file.func_getCurr, "getCurr… in spl_filesystem_file_read_line_ex()
2169 if (intern->u.file.current_line || !Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_read_line_ex()
2170 intern->u.file.current_line_num++; in spl_filesystem_file_read_line_ex()
2172 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_line_ex()
2174 intern->u.file.current_line = estrndup(Z_STRVAL(retval), Z_STRLEN(retval)); in spl_filesystem_file_read_line_ex()
2175 intern->u.file.current_line_len = Z_STRLEN(retval); in spl_filesystem_file_read_line_ex()
2180 ZVAL_COPY(&intern->u.file.current_zval, value); in spl_filesystem_file_read_line_ex()
2188 return spl_filesystem_file_read(intern, silent); in spl_filesystem_file_read_line_ex()
2192 static int spl_filesystem_file_is_empty_line(spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_file_is_empty_line() argument
2194 if (intern->u.file.current_line) { in spl_filesystem_file_is_empty_line()
2195 return intern->u.file.current_line_len == 0; in spl_filesystem_file_is_empty_line()
2196 } else if (!Z_ISUNDEF(intern->u.file.current_zval)) { in spl_filesystem_file_is_empty_line()
2197 switch(Z_TYPE(intern->u.file.current_zval)) { in spl_filesystem_file_is_empty_line()
2199 return Z_STRLEN(intern->u.file.current_zval) == 0; in spl_filesystem_file_is_empty_line()
2201 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) in spl_filesystem_file_is_empty_line()
2202 && zend_hash_num_elements(Z_ARRVAL(intern->u.file.current_zval)) == 1) { in spl_filesystem_file_is_empty_line()
2206 while (Z_ISUNDEF(Z_ARRVAL(intern->u.file.current_zval)->arData[idx].val)) { in spl_filesystem_file_is_empty_line()
2209 first = &Z_ARRVAL(intern->u.file.current_zval)->arData[idx].val; in spl_filesystem_file_is_empty_line()
2212 return zend_hash_num_elements(Z_ARRVAL(intern->u.file.current_zval)) == 0; in spl_filesystem_file_is_empty_line()
2224 static int spl_filesystem_file_read_line(zval * this_ptr, spl_filesystem_object *intern, int silent… in spl_filesystem_file_read_line() argument
2226 int ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent); in spl_filesystem_file_read_line()
2228 …while (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_SKIP_EMPTY) && ret == SUCCESS && spl_filesystem… in spl_filesystem_file_read_line()
2229 spl_filesystem_file_free_line(intern); in spl_filesystem_file_read_line()
2230 ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent); in spl_filesystem_file_read_line()
2237 static void spl_filesystem_file_rewind(zval * this_ptr, spl_filesystem_object *intern) /* {{{ */ in spl_filesystem_file_rewind() argument
2239 if(!intern->u.file.stream) { in spl_filesystem_file_rewind()
2243 if (-1 == php_stream_rewind(intern->u.file.stream)) { in spl_filesystem_file_rewind()
2244 zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot rewind file %s", intern->file_name); in spl_filesystem_file_rewind()
2246 spl_filesystem_file_free_line(intern); in spl_filesystem_file_rewind()
2247 intern->u.file.current_line_num = 0; in spl_filesystem_file_rewind()
2249 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in spl_filesystem_file_rewind()
2250 spl_filesystem_file_read_line(this_ptr, intern, 1); in spl_filesystem_file_rewind()
2258 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2265 intern->u.file.open_mode = NULL; in SPL_METHOD()
2266 intern->u.file.open_mode_len = 0; in SPL_METHOD()
2269 &intern->file_name, &intern->file_name_len, in SPL_METHOD()
2270 &intern->u.file.open_mode, &intern->u.file.open_mode_len, in SPL_METHOD()
2271 &use_include_path, &intern->u.file.zcontext) == FAILURE) { in SPL_METHOD()
2272 intern->u.file.open_mode = NULL; in SPL_METHOD()
2273 intern->file_name = NULL; in SPL_METHOD()
2277 if (intern->u.file.open_mode == NULL) { in SPL_METHOD()
2278 intern->u.file.open_mode = "r"; in SPL_METHOD()
2279 intern->u.file.open_mode_len = 1; in SPL_METHOD()
2284 if (spl_filesystem_file_open(intern, use_include_path, 0) == SUCCESS) { in SPL_METHOD()
2285 tmp_path_len = strlen(intern->u.file.stream->orig_path); in SPL_METHOD()
2287 if (tmp_path_len > 1 && IS_SLASH_AT(intern->u.file.stream->orig_path, tmp_path_len-1)) { in SPL_METHOD()
2291 tmp_path = estrndup(intern->u.file.stream->orig_path, tmp_path_len); in SPL_METHOD()
2300 intern->_path_len = ((p1 > p2 ? p1 : p2) - tmp_path); in SPL_METHOD()
2302 intern->_path_len = 0; in SPL_METHOD()
2307 intern->_path = estrndup(intern->u.file.stream->orig_path, intern->_path_len); in SPL_METHOD()
2320 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2328 intern->file_name = "php://memory"; in SPL_METHOD()
2329 intern->file_name_len = 12; in SPL_METHOD()
2331intern->file_name_len = slprintf(tmp_fname, sizeof(tmp_fname), "php://temp/maxmemory:" ZEND_LONG_F… in SPL_METHOD()
2332 intern->file_name = tmp_fname; in SPL_METHOD()
2334 intern->file_name = "php://temp"; in SPL_METHOD()
2335 intern->file_name_len = 10; in SPL_METHOD()
2337 intern->u.file.open_mode = "wb"; in SPL_METHOD()
2338 intern->u.file.open_mode_len = 1; in SPL_METHOD()
2341 if (spl_filesystem_file_open(intern, 0, 0) == SUCCESS) { in SPL_METHOD()
2342 intern->_path_len = 0; in SPL_METHOD()
2343 intern->_path = estrndup("", 0); in SPL_METHOD()
2352 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2358 spl_filesystem_file_rewind(getThis(), intern); in SPL_METHOD()
2365 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2371 if(!intern->u.file.stream) { in SPL_METHOD()
2376 RETURN_BOOL(php_stream_eof(intern->u.file.stream)); in SPL_METHOD()
2383 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2389 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in SPL_METHOD()
2390 RETURN_BOOL(intern->u.file.current_line || !Z_ISUNDEF(intern->u.file.current_zval)); in SPL_METHOD()
2392 if(!intern->u.file.stream) { in SPL_METHOD()
2395 RETVAL_BOOL(!php_stream_eof(intern->u.file.stream)); in SPL_METHOD()
2403 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2409 if(!intern->u.file.stream) { in SPL_METHOD()
2414 if (spl_filesystem_file_read(intern, 0) == FAILURE) { in SPL_METHOD()
2417 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); in SPL_METHOD()
2424 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2430 if(!intern->u.file.stream) { in SPL_METHOD()
2435 if (!intern->u.file.current_line && Z_ISUNDEF(intern->u.file.current_zval)) { in SPL_METHOD()
2436 spl_filesystem_file_read_line(getThis(), intern, 1); in SPL_METHOD()
2438 …if (intern->u.file.current_line && (!SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) || Z_IS… in SPL_METHOD()
2439 RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); in SPL_METHOD()
2440 } else if (!Z_ISUNDEF(intern->u.file.current_zval)) { in SPL_METHOD()
2441 zval *value = &intern->u.file.current_zval; in SPL_METHOD()
2454 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2464 RETURN_LONG(intern->u.file.current_line_num); in SPL_METHOD()
2471 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2477 spl_filesystem_file_free_line(intern); in SPL_METHOD()
2478 if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { in SPL_METHOD()
2479 spl_filesystem_file_read_line(getThis(), intern, 1); in SPL_METHOD()
2481 intern->u.file.current_line_num++; in SPL_METHOD()
2488 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2490 if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &intern->flags) == FAILURE) { in SPL_METHOD()
2499 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2505 RETURN_LONG(intern->flags & SPL_FILE_OBJECT_MASK); in SPL_METHOD()
2514 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2525 intern->u.file.max_line_len = max_len; in SPL_METHOD()
2532 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2538 RETURN_LONG((zend_long)intern->u.file.max_line_len); in SPL_METHOD()
2566 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); \
2575 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2576 …char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure, escape = intern->… in SPL_METHOD()
2582 if(!intern->u.file.stream) { in SPL_METHOD()
2613 spl_filesystem_file_read_csv(intern, delimiter, enclosure, escape, return_value); in SPL_METHOD()
2622 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2623 …char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure, escape = intern->… in SPL_METHOD()
2657 ret = php_fputcsv(intern->u.file.stream, fields, delimiter, enclosure, escape); in SPL_METHOD()
2667 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2699 intern->u.file.delimiter = delimiter; in SPL_METHOD()
2700 intern->u.file.enclosure = enclosure; in SPL_METHOD()
2701 intern->u.file.escape = escape; in SPL_METHOD()
2710 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2715 delimiter[0] = intern->u.file.delimiter; in SPL_METHOD()
2717 enclosure[0] = intern->u.file.enclosure; in SPL_METHOD()
2719 escape[0] = intern->u.file.escape; in SPL_METHOD()
2737 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2739 if(!intern->u.file.stream) { in SPL_METHOD()
2744 RETURN_BOOL(!php_stream_flush(intern->u.file.stream)); in SPL_METHOD()
2751 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2754 if(!intern->u.file.stream) { in SPL_METHOD()
2759 ret = php_stream_tell(intern->u.file.stream); in SPL_METHOD()
2772 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2779 if(!intern->u.file.stream) { in SPL_METHOD()
2784 spl_filesystem_file_free_line(intern); in SPL_METHOD()
2785 RETURN_LONG(php_stream_seek(intern->u.file.stream, pos, (int)whence)); in SPL_METHOD()
2792 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2796 if(!intern->u.file.stream) { in SPL_METHOD()
2801 spl_filesystem_file_free_line(intern); in SPL_METHOD()
2803 result = php_stream_getc(intern->u.file.stream); in SPL_METHOD()
2809 intern->u.file.current_line_num++; in SPL_METHOD()
2822 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2825 if(!intern->u.file.stream) { in SPL_METHOD()
2830 if (intern->u.file.max_line_len > 0) { in SPL_METHOD()
2831 ZVAL_LONG(&arg2, intern->u.file.max_line_len); in SPL_METHOD()
2836 spl_filesystem_file_free_line(intern); in SPL_METHOD()
2837 intern->u.file.current_line_num++; in SPL_METHOD()
2846 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2848 if(!intern->u.file.stream) { in SPL_METHOD()
2853 RETURN_LONG(php_stream_passthru(intern->u.file.stream)); in SPL_METHOD()
2860 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2862 if(!intern->u.file.stream) { in SPL_METHOD()
2867 spl_filesystem_file_free_line(intern); in SPL_METHOD()
2868 intern->u.file.current_line_num++; in SPL_METHOD()
2878 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2887 if(!intern->u.file.stream) { in SPL_METHOD()
2904 RETURN_LONG(php_stream_write(intern->u.file.stream, str, str_len)); in SPL_METHOD()
2909 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2916 if(!intern->u.file.stream) { in SPL_METHOD()
2927 …Z_STRLEN_P(return_value) = php_stream_read(intern->u.file.stream, Z_STRVAL_P(return_value), length… in SPL_METHOD()
2942 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2949 if(!intern->u.file.stream) { in SPL_METHOD()
2954 if (!php_stream_truncate_supported(intern->u.file.stream)) { in SPL_METHOD()
2955 zend_throw_exception_ex(spl_ce_LogicException, 0, "Can't truncate file %s", intern->file_name); in SPL_METHOD()
2959 RETURN_BOOL(0 == php_stream_truncate_set_size(intern->u.file.stream, size)); in SPL_METHOD()
2966 spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis()); in SPL_METHOD() local
2972 if(!intern->u.file.stream) { in SPL_METHOD()
2978 …LogicException, 0, "Can't seek file %s to negative line " ZEND_LONG_FMT, intern->file_name, line_p… in SPL_METHOD()
2982 spl_filesystem_file_rewind(getThis(), intern); in SPL_METHOD()
2984 while(intern->u.file.current_line_num < line_pos) { in SPL_METHOD()
2985 if (spl_filesystem_file_read_line(getThis(), intern, 1) == FAILURE) { in SPL_METHOD()