From: Jean-Marc Lasgouttes Date: Thu, 8 Apr 2004 10:09:09 +0000 (+0000) Subject: Georg\'s last patch for bug 605 X-Git-Tag: 1.6.10~15337 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=b3bed8d879e40fef62c5c0f8d3ef08d1e52fa6aa;p=features.git Georg\'s last patch for bug 605 git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8627 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/po/POTFILES.in b/po/POTFILES.in index 1aaecd8ae3..2f914c2342 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -187,7 +187,6 @@ src/output_plaintext.C src/paragraph.C src/rowpainter.C src/support/globbing.C -src/tex2lyx/lengthcommon.C src/text.C src/text2.C src/text3.C diff --git a/src/ChangeLog b/src/ChangeLog index f596dbe887..6214a42fec 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,4 +1,8 @@ +2004-04-01 Georg Baum + * LaTeXFeatures.[Ch]: change buffer_ to a pointer and add accessor + setBuffer() + 2004-04-07 Alfredo Braunstein * BufferView.C (setCursor): call redoParagraph (some insets could diff --git a/src/LaTeXFeatures.C b/src/LaTeXFeatures.C index e7f52c7954..99bb39ee29 100644 --- a/src/LaTeXFeatures.C +++ b/src/LaTeXFeatures.C @@ -43,7 +43,7 @@ using std::set; LaTeXFeatures::LaTeXFeatures(Buffer const & b, BufferParams const & p, bool n) - : buffer_(b), params_(p), nice_(n) + : buffer_(&b), params_(p), nice_(n) {} @@ -465,7 +465,13 @@ void LaTeXFeatures::showStruct() const { Buffer const & LaTeXFeatures::buffer() const { - return buffer_; + return *buffer_; +} + + +void LaTeXFeatures::setBuffer(Buffer const & buffer) +{ + buffer_ = &buffer; } diff --git a/src/LaTeXFeatures.h b/src/LaTeXFeatures.h index c3d62de312..a21d7f65ba 100644 --- a/src/LaTeXFeatures.h +++ b/src/LaTeXFeatures.h @@ -79,6 +79,8 @@ public: /// Buffer const & buffer() const; /// + void setBuffer(Buffer const &); + /// BufferParams const & bufferParams() const; /// the return value is dependent upon both LyXRC and LaTeXFeatures. bool useBabel() const; @@ -106,8 +108,12 @@ private: typedef std::map FileMap; /// FileMap IncludedFiles_; - /// - Buffer const & buffer_; + /** Buffer of the file being processed. + * This may be a child buffer of the to-be-exported file and + * therefore may not be the buffer that belongs to params_. + * Only needed by InsetInclude::validate(). + */ + Buffer const * buffer_; /// BufferParams const & params_; /** If we are writing a nice LaTeX file or not. diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index c7486f4c38..507ce4962f 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,8 @@ +2004-04-01 Georg Baum + + * insetinclude.C (validate): set/reset features.buffer_ when + validating the child + 2004-04-07 Angus Leeming * insetexternal.C (priv_dispatch): @@ -15,7 +20,7 @@ * ExternalSupport.C (doSubstitution): add new variables $$AbsPath, $$RelPath_Master, $$RelPath_Parent, $$Extension, - $$AbsOrRelPath_Master and $$AbsOrRelPath_Parent. Change the meaning + $$AbsOrRelPathMaster and $$AbsOrRelPathParent. Change the meaning of $$Basename * ExternalSupport.C (updateExternal): use absolute and output filename where appropriate diff --git a/src/insets/insetinclude.C b/src/insets/insetinclude.C index 4d1381a605..62a9ee0212 100644 --- a/src/insets/insetinclude.C +++ b/src/insets/insetinclude.C @@ -530,8 +530,14 @@ void InsetInclude::validate(LaTeXFeatures & features) const if (loadIfNeeded(buffer, params_)) { // a file got loaded Buffer * const tmp = bufferlist.getBuffer(included_file); - if (tmp) + if (tmp) { + // We must temporarily change features.buffer, + // otherwise it would always be the master buffer, + // and nested includes would not work. + features.setBuffer(*tmp); tmp->validate(features); + features.setBuffer(buffer); + } } }