aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/fileio.c
diff options
context:
space:
mode:
authorMarco Hinz <mh.codebro@gmail.com>2014-12-20 16:17:39 +0100
committerFlorian Walch <florian@fwalch.com>2014-12-20 16:31:59 +0100
commit7e31044cd8c0a0f3333dd53c70f4f28957d8514d (patch)
treed51eab562ad70c059408faf82bb5addd184632ef /src/nvim/fileio.c
parent5a1cddc47bdb9cf2b4b0d0d449c34ed9d237ea90 (diff)
downloadrneovim-7e31044cd8c0a0f3333dd53c70f4f28957d8514d.tar.gz
rneovim-7e31044cd8c0a0f3333dd53c70f4f28957d8514d.tar.bz2
rneovim-7e31044cd8c0a0f3333dd53c70f4f28957d8514d.zip
vim-patch:7.4.456
Problem: 'backupcopy' is global, cannot write only some files in a different way. Solution: Make 'backupcopy' global-local. (Christian Brabandt) https://code.google.com/p/vim/source/detail?r=v7-4-456
Diffstat (limited to 'src/nvim/fileio.c')
-rw-r--r--src/nvim/fileio.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c
index 9c6d7c96bb..82613f5b07 100644
--- a/src/nvim/fileio.c
+++ b/src/nvim/fileio.c
@@ -2313,6 +2313,7 @@ buf_write (
#endif
int write_undo_file = FALSE;
context_sha256_T sha_ctx;
+ unsigned int bkc = get_bkc_value(buf);
if (fname == NULL || *fname == NUL) /* safety check */
return FAIL;
@@ -2701,9 +2702,9 @@ buf_write (
if (!(append && *p_pm == NUL) && !filtering && perm >= 0 && dobackup) {
FileInfo file_info;
- if ((bkc_flags & BKC_YES) || append) { /* "yes" */
+ if ((bkc & BKC_YES) || append) { /* "yes" */
backup_copy = TRUE;
- } else if ((bkc_flags & BKC_AUTO)) { /* "auto" */
+ } else if ((bkc & BKC_AUTO)) { /* "auto" */
int i;
# ifdef UNIX
@@ -2758,19 +2759,19 @@ buf_write (
/*
* Break symlinks and/or hardlinks if we've been asked to.
*/
- if ((bkc_flags & BKC_BREAKSYMLINK) || (bkc_flags & BKC_BREAKHARDLINK)) {
+ if ((bkc & BKC_BREAKSYMLINK) || (bkc & BKC_BREAKHARDLINK)) {
# ifdef UNIX
bool file_info_link_ok = os_fileinfo_link((char *)fname, &file_info);
/* Symlinks. */
- if ((bkc_flags & BKC_BREAKSYMLINK)
+ if ((bkc & BKC_BREAKSYMLINK)
&& file_info_link_ok
&& !os_fileinfo_id_equal(&file_info, &file_info_old)) {
backup_copy = FALSE;
}
/* Hardlinks. */
- if ((bkc_flags & BKC_BREAKHARDLINK)
+ if ((bkc & BKC_BREAKHARDLINK)
&& os_fileinfo_hardlinks(&file_info_old) > 1
&& (!file_info_link_ok
|| os_fileinfo_id_equal(&file_info, &file_info_old))) {