From: Pavel Sanda Date: Fri, 28 Jan 2011 12:39:50 +0000 (+0000) Subject: .lyx as symlinks killed when saving because of #6587 workarounds. X-Git-Tag: 2.0.0~984 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=b01f5549f30e805bbb95253c199e4256a767b339;p=features.git .lyx as symlinks killed when saving because of #6587 workarounds. At the end escape for fsync would be the least hackish solution but it needs somebody with ext4 to test with. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37348 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/Buffer.cpp b/src/Buffer.cpp index f9545e4f40..b4e03b99d0 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -1055,10 +1055,15 @@ bool Buffer::save() const backupName = FileName(addName(lyxrc.backupdir_path, mangledName)); } - // do not copy because of #6587 - if (fileName().moveTo(backupName)) { - madeBackup = true; - } else { + + // Except file is symlink do not copy because of #6587. + // Hard links have bad luck. + if (fileName().isSymLink()) + madeBackup = fileName().copyTo(backupName); + else + madeBackup = fileName().moveTo(backupName); + + if (!madeBackup) { Alert::error(_("Backup failure"), bformat(_("Cannot create backup file %1$s.\n" "Please check whether the directory exists and is writable."),