Allow LyX to open empty files (created, e.g., via "touch").

Patch from new contributor Jan Niklas Hasse.
This commit is contained in:
Richard Heck 2017-01-19 15:34:45 -05:00
parent 8048ce294a
commit 0d77a7e325
2 changed files with 20 additions and 6 deletions

View File

@ -855,6 +855,14 @@ contributors = [
"9 June 2015",
u"Haiku OS support"),
contributor(u"Jan Niklas Hasse",
"jhasse () bixense ! com",
"GPL",
"Re: Patch to make it possible to open empty files",
"m=148163124122780",
"23 December 2016",
u"File opening enhancement"),
contributor(u"Richard Heck",
"rgheck () comcast ! net",
"GPL",

View File

@ -95,12 +95,18 @@ Buffer * checkAndLoadLyXFile(FileName const & filename, bool const acceptDirty)
bool const exists = filename.exists();
bool const tryVC = exists ? false : LyXVC::fileInVC(filename);
if (exists || tryVC) {
if (exists && !filename.isReadableFile()) {
docstring text = bformat(_("The file %1$s exists but is not "
"readable by the current user."),
from_utf8(filename.absFileName()));
Alert::error(_("File not readable!"), text);
return 0;
if (exists) {
if (!filename.isReadableFile()) {
docstring text = bformat(_("The file %1$s exists but is not "
"readable by the current user."),
from_utf8(filename.absFileName()));
Alert::error(_("File not readable!"), text);
return 0;
}
if (filename.extension() == "lyx" && filename.isFileEmpty()) {
// Makes it possible to open an empty (0 bytes) .lyx file
return newFile(filename.absFileName(), "", true);
}
}
Buffer * b = theBufferList().newBuffer(filename.absFileName());
if (!b) {