From 7083f02b1d8a5af93d4cf11b47f61681a5c50b15 Mon Sep 17 00:00:00 2001 From: Vincent van Ravesteijn Date: Tue, 12 May 2009 00:15:16 +0000 Subject: [PATCH] Prevent two more assertions due to non-absolute filename as a parameter of file-insert-plaintext. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29638 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/GuiView.cpp | 2 +- src/insets/InsetTabular.cpp | 31 ++++++++++++++++--------------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp index c8b97ed79d..89793b6b1f 100644 --- a/src/frontends/qt4/GuiView.cpp +++ b/src/frontends/qt4/GuiView.cpp @@ -1742,7 +1742,7 @@ void GuiView::insertPlaintextFile(docstring const & fname, bool asParagraph) { BufferView * bv = view(); - if (!bv) + if (!bv || !FileName::isAbsolute(to_utf8(fname))) return; // FIXME UNICODE diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp index 39ecb09d92..3b60743e04 100644 --- a/src/insets/InsetTabular.cpp +++ b/src/insets/InsetTabular.cpp @@ -3605,23 +3605,24 @@ void InsetTabular::doDispatch(Cursor & cur, FuncRequest & cmd) // insert file functions case LFUN_FILE_INSERT_PLAINTEXT_PARA: - case LFUN_FILE_INSERT_PLAINTEXT: { + case LFUN_FILE_INSERT_PLAINTEXT: // FIXME UNICODE - docstring const tmpstr = cur.bv().contentsOfPlaintextFile( - FileName(to_utf8(cmd.argument()))); - if (tmpstr.empty()) - break; - cur.recordUndoInset(INSERT_UNDO); - if (insertPlaintextString(cur.bv(), tmpstr, false)) { - // content has been replaced, - // so cursor might be invalid - cur.pos() = cur.lastpos(); - cur.pit() = cur.lastpit(); - bvcur.setCursor(cur); - } else - cur.undispatched(); + if (FileName::isAbsolute(to_utf8(cmd.argument()))) { + docstring const tmpstr = cur.bv().contentsOfPlaintextFile( + FileName(to_utf8(cmd.argument()))); + if (tmpstr.empty()) + break; + cur.recordUndoInset(INSERT_UNDO); + if (insertPlaintextString(cur.bv(), tmpstr, false)) { + // content has been replaced, + // so cursor might be invalid + cur.pos() = cur.lastpos(); + cur.pit() = cur.lastpit(); + bvcur.setCursor(cur); + } else + cur.undispatched(); + } break; - } case LFUN_CUT: if (cur.selIsMultiCell()) { -- 2.39.2