From 1d99b347196588babb1a66a86183ba71301ad8da Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Sun, 13 Jan 2002 21:35:50 +0000 Subject: [PATCH] fix crash bug with non-existing input files git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3360 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 3 +++ src/bufferlist.C | 4 ++-- src/insets/ChangeLog | 3 +++ src/insets/insetinclude.C | 6 ++++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index e83de61a16..b23fdf97a7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2002-01-13 Jean-Marc Lasgouttes + * bufferlist.C (readFile): create the buffer _after_ checking that + the file exists. + * lyxfunc.C (verboseDispatch): fix handling of arguments * lyxrc.C (setDefaults): do not initialize document_path to $HOME. diff --git a/src/bufferlist.C b/src/bufferlist.C index 2d5695f64c..8fd835dd35 100644 --- a/src/bufferlist.C +++ b/src/bufferlist.C @@ -357,8 +357,6 @@ void BufferList::emergencyWrite(Buffer * buf) Buffer * BufferList::readFile(string const & s, bool ronly) { - Buffer * b = bstore.newBuffer(s, ronly); - string ts(s); string e = OnlyPath(s); string a = e; @@ -371,6 +369,8 @@ Buffer * BufferList::readFile(string const & s, bool ronly) return 0; } + Buffer * b = bstore.newBuffer(s, ronly); + // Check if emergency save file exists and is newer. e += OnlyFilename(s) + ".emergency"; FileInfo fileInfoE(e); diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 370fb1b514..f5300b8cd3 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,5 +1,8 @@ 2002-01-13 Jean-Marc Lasgouttes + * insetinclude.C (loadIfNeeded): do not call bufferlist.readFile + if file does not exist + * figinset.C (browseFile): add shortcuts to directory buttons * insettext.C (updateLocal): update menubar and toolbar here too. diff --git a/src/insets/insetinclude.C b/src/insets/insetinclude.C index a7f28753ad..e4f207a1a5 100644 --- a/src/insets/insetinclude.C +++ b/src/insets/insetinclude.C @@ -218,8 +218,10 @@ bool InsetInclude::loadIfNeeded() const // the readonly flag can/will be wrong, not anymore I think. FileInfo finfo(getFileName()); - bool const ro = !(!finfo.isOK() || finfo.writable()); - return bufferlist.readFile(getFileName(), ro) != 0; + if (!finfo.isOK()) + return false; + + return bufferlist.readFile(getFileName(), !finfo.writable()) != 0; } -- 2.39.5