eval: Do not allocate FileDescriptor

This commit is contained in:
ZyX
2017-04-01 22:26:50 +03:00
parent cc4523013f
commit 19690d4a25

View File

@@ -17439,21 +17439,21 @@ static void f_writefile(typval_T *argvars, typval_T *rettv, FunPtr fptr)
if (fname == NULL) {
return;
}
FileDescriptor *fp;
FileDescriptor fp;
int error;
rettv->vval.v_number = -1;
if (*fname == NUL) {
EMSG(_("E482: Can't open file with an empty name"));
} else if ((fp = file_open_new(&error, fname,
} else if ((error = file_open(&fp, fname,
((append ? kFileAppend : kFileTruncate)
| kFileCreate), 0666)) == NULL) {
| kFileCreate), 0666)) != 0) {
emsgf(_("E482: Can't open file %s for writing: %s"),
fname, os_strerror(error));
} else {
if (write_list(fp, argvars[0].vval.v_list, binary)) {
if (write_list(&fp, argvars[0].vval.v_list, binary)) {
rettv->vval.v_number = 0;
}
if ((error = file_free(fp)) != 0) {
if ((error = file_close(&fp)) != 0) {
emsgf(_("E80: Error when closing file %s: %s"),
fname, os_strerror(error));
}