/* set up our manifest */
mydata = ecalloc(sizeof(phar_archive_data), 1);
- /* re-open for writing (we only reach here if the file does not exist) */
- fp = php_stream_open_wrapper(fname, "w+b", IGNORE_URL|STREAM_MUST_SEEK|0, &mydata->fname);
- if (!fp) {
- if (options & REPORT_ERRORS) {
- if (error) {
- spprintf(error, 0, "creating archive \"%s\" failed", fname);
- }
- }
- return FAILURE;
- }
- if (mydata->fname) {
- fname = mydata->fname;
-#ifdef PHP_WIN32
- phar_unixify_path_separators(fname, fname_len);
-#endif
- fname_len = strlen(mydata->fname);
- } else {
- mydata->fname = estrndup(fname, fname_len);
+ mydata->fname = expand_filepath(fname, NULL TSRMLS_CC);
#ifdef PHP_WIN32
- phar_unixify_path_separators(mydata->fname, fname_len);
+ phar_unixify_path_separators(fname, fname_len);
#endif
- }
+ fname_len = strlen(mydata->fname);
if (pphar) {
*pphar = mydata;
snprintf(mydata->version, sizeof(mydata->version), "%s", PHAR_API_VERSION_STR);
mydata->is_temporary_alias = alias ? 0 : 1;
mydata->internal_file_start = -1;
- mydata->fp = fp;
+ mydata->fp = NULL;
mydata->is_writeable = 1;
mydata->is_brandnew = 1;
if (!alias_len || !alias) {