fix(fileio): use first available directory in backupdir for backupcopy (#20655)

Fix backups failing for symlink files

Set backup to NULL prior to continuing & Clear backup prior to NULL set
to avoid leaking

Fixes #11349

Remove testing hacks in scripts for windows

Skip FreeBSD

Something appears up with these types of tests for FreeBSD on
Circus, see 2d6735d8ce
This commit is contained in:
Will Spurgin
2022-11-04 20:24:34 -05:00
committed by GitHub
parent 95f2f3cb5e
commit 19a487bc86
2 changed files with 59 additions and 4 deletions

View File

@@ -2781,10 +2781,11 @@ int buf_write(buf_T *buf, char *fname, char *sfname, linenr_T start, linenr_T en
#endif
// copy the file
if (os_copy(fname, backup, UV_FS_COPYFILE_FICLONE)
!= 0) {
SET_ERRMSG(_("E506: Can't write to backup file "
"(add ! to override)"));
if (os_copy(fname, backup, UV_FS_COPYFILE_FICLONE) != 0) {
SET_ERRMSG(_("E509: Cannot create backup file (add ! to override)"));
XFREE_CLEAR(backup);
backup = NULL;
continue;
}
#ifdef UNIX
@@ -2795,6 +2796,7 @@ int buf_write(buf_T *buf, char *fname, char *sfname, linenr_T start, linenr_T en
#ifdef HAVE_ACL
mch_set_acl((char_u *)backup, acl);
#endif
SET_ERRMSG(NULL);
break;
}
}