Return early again if there's nothing to do. Also, mark the buffer dirty

only if we manage to read the autosave file successfully.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35824 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Richard Heck 2010-10-25 12:24:15 +00:00
parent 1d55e97b2d
commit 5cd48620f1

View File

@ -3661,31 +3661,36 @@ Buffer::ReadStatus Buffer::readAutosave(FileName const & fn)
// Now check if autosave file is newer. // Now check if autosave file is newer.
FileName const autosaveFile(onlyPath(fn.absFileName()) FileName const autosaveFile(onlyPath(fn.absFileName())
+ '#' + onlyFileName(fn.absFileName()) + '#'); + '#' + onlyFileName(fn.absFileName()) + '#');
if (autosaveFile.exists() if (!autosaveFile.exists()
&& autosaveFile.lastModified() > fn.lastModified()) { || autosaveFile.lastModified() <= fn.lastModified())
docstring const file = makeDisplayPath(fn.absFileName(), 20); return ReadFileNotFound;
docstring const text =
bformat(_("The backup of the document " docstring const file = makeDisplayPath(fn.absFileName(), 20);
"%1$s is newer.\n\nLoad the " docstring const text =
"backup instead?"), file); bformat(_("The backup of the document %1$s is newer.\n\n"
switch (Alert::prompt(_("Load backup?"), text, 0, 2, "Load the backup instead?"), file);
_("&Load backup"), _("Load &original"), switch (Alert::prompt(_("Load backup?"), text, 0, 2,
_("&Cancel") )) _("&Load backup"), _("Load &original"),
{ _("&Cancel") ))
case 0: {
// the file is not saved if we load the autosave file. case 0: {
bool success = readFile(autosaveFile);
// the file is not saved if we load the autosave file.
if (success) {
markDirty(); markDirty();
return readFile(autosaveFile) ? ReadSuccess return ReadSuccess;
: ReadAutosaveFailure;
case 1:
// Here we delete the autosave
autosaveFile.removeFile();
return ReadOriginal;
default:
return ReadCancel;
} }
return ReadAutosaveFailure;
} }
return ReadFileNotFound; case 1:
// Here we delete the autosave
autosaveFile.removeFile();
return ReadOriginal;
default:
return ReadCancel;
}
// suppress warning
return ReadCancel;
} }