mirror of
https://github.com/neovim/neovim.git
synced 2025-09-16 16:28:17 +00:00
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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user