]> git.lyx.org Git - features.git/blobdiff - src/Buffer.cpp
.lyx as symlinks killed when saving because of #6587 workarounds.
[features.git] / src / Buffer.cpp
index f9545e4f40a5c3a541b90233fbc3083f2ce4632a..b4e03b99d08e2385b450c53b6955d2245d3b6d8a 100644 (file)
@@ -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."),