]> git.lyx.org Git - features.git/commitdiff
Revert "Use a different naming scheme, per Enrico's suggestion."
authorRichard Heck <rgheck@lyx.org>
Mon, 9 Jun 2014 19:28:56 +0000 (15:28 -0400)
committerRichard Heck <rgheck@lyx.org>
Sat, 14 Jun 2014 21:42:26 +0000 (17:42 -0400)
This reverts commit fff454fa4bde75ca3554fc4b22cfcad6f36b026d.

Revert "Per a suggestion of JMarc's, first write the saved file to a"
This reverts commit 094129f804ad6f81de833d8957db42d0991b6882.

src/Buffer.cpp
status.21x

index 867eddd3625219ebea83fe84053ba7321ae49541..ab2164b82b7949d3f68254ea7717d4e95d212517 100644 (file)
@@ -1276,42 +1276,12 @@ bool Buffer::save() const
        // We don't need autosaves in the immediate future. (Asger)
        resetAutosaveTimers();
 
-       // if the file does not yet exist, none of the backup activity
-       // that follows is necessary
-       if (!fileName().exists())
-               return writeFile(fileName());
-
-       // we first write the file to a new name, then move it to its
-       // proper location once that has been done successfully. that
-       // way we preserve the original file if something goes wrong.
-       string const savepath = fileName().onlyPath().absFileName();
-       int fnum = 1;
-       string const fname = fileName().onlyFileName();
-       string savename = "tmp-" + convert<string>(fnum) + "-" + fname;
-       FileName savefile(addName(savepath, savename));
-       while (savefile.exists()) {
-               // surely that is enough tries?
-               if (fnum > 100) {
-                       Alert::error(_("Write failure"),
-                                    bformat(_("Cannot find temporary filename for:\n  %1$s.\n"
-                                        "Even %2$s exists!"),
-                                            from_utf8(fileName().absFileName()),
-                                from_utf8(savefile.absFileName())));
-                       return false;
-               }
-               fnum += 1;
-               savename = "tmp-" + convert<string>(fnum) + "-" + fname;
-               savefile.set(addName(savepath, savename));
-       }
-
-       LYXERR(Debug::FILES, "Saving to " << savefile.absFileName());
-       if (!writeFile(savefile))
-               return false;
+       FileName backupName;
+       bool madeBackup = false;
 
-       // we will set this to false if we fail
-       bool made_backup = true;
-       if (lyxrc.make_backup) {
-               FileName backupName(absFileName() + '~');
+       // make a backup if the file already exists
+       if (lyxrc.make_backup && fileName().exists()) {
+               backupName = FileName(absFileName() + '~');
                if (!lyxrc.backupdir_path.empty()) {
                        string const mangledName =
                                subst(subst(backupName.absFileName(), '/', '!'), ':', '!');
@@ -1321,11 +1291,12 @@ bool Buffer::save() const
 
                // Except file is symlink do not copy because of #6587.
                // Hard links have bad luck.
-               made_backup = fileName().isSymLink() ?
-                       fileName().copyTo(backupName):
-                       fileName().moveTo(backupName);
+               if (fileName().isSymLink())
+                       madeBackup = fileName().copyTo(backupName);
+               else
+                       madeBackup = fileName().moveTo(backupName);
 
-               if (!made_backup) {
+               if (!madeBackup) {
                        Alert::error(_("Backup failure"),
                                     bformat(_("Cannot create backup file %1$s.\n"
                                               "Please check whether the directory exists and is writable."),
@@ -1333,18 +1304,16 @@ bool Buffer::save() const
                        //LYXERR(Debug::DEBUG, "Fs error: " << fe.what());
                }
        }
-       
-       if (made_backup && savefile.moveTo(fileName())) {
+
+       if (writeFile(d->filename)) {
                markClean();
                return true;
+       } else {
+               // Saving failed, so backup is not backup
+               if (madeBackup)
+                       backupName.moveTo(d->filename);
+               return false;
        }
-       // else
-       Alert::error(_("Write failure"),
-                    bformat(_("Cannot move saved file to:\n  %1$s.\n"
-                              "But the file has successfully been saved as:\n  %2$s."),
-                            from_utf8(fileName().absFileName()),
-                from_utf8(savefile.absFileName())));
-       return false;
 }
 
 
index 9b17a54e7d69add88bfcc40ce2e86cca157961dc..f3cf3a73ccda3d836c8c9560d38b7f821af756ab 100644 (file)
@@ -28,9 +28,6 @@ What's new
 
 * DOCUMENT INPUT/OUTPUT
 
-- When saving a file, LyX now writes the saved file first to a temporary
-  filename (tmp-oldfile.lyx) and only deletes the original file once the
-  new file has successfully been written. 
 
 - We now flush the output stream more frequently, as a temporary measure
   to help us gather information about the crash mentioned above.