]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.cpp
cmake: remove 2.8 warning
[lyx.git] / src / Buffer.cpp
index 88200f16dc713822a26516666b37e00f9495083c..c6ac1591d73e1f829e1c157a8b39de332b38c7ce 100644 (file)
@@ -1086,6 +1086,11 @@ bool Buffer::save() const
 
 bool Buffer::writeFile(FileName const & fname) const
 {
+       // FIXME Do we need to do these here? I don't think writing
+       // the LyX file depends upon it. (RGH)
+       // updateBuffer();
+       // updateMacroInstances();
+
        if (d->read_only && fname == d->filename)
                return false;
 
@@ -1147,7 +1152,7 @@ docstring Buffer::emergencyWrite()
        }
 
        // 2) In HOME directory.
-       string s = addName(package().home_dir().absFileName(), absFileName());
+       string s = addName(Package::get_home_dir().absFileName(), absFileName());
        s += ".emergency";
        lyxerr << ' ' << s << endl;
        if (writeFile(FileName(s))) {
@@ -1270,6 +1275,14 @@ bool Buffer::makeLaTeXFile(FileName const & fname,
        errorList.clear();
        bool failed_export = false;
        otexstream os(ofs, d->texrow);
+
+       // make sure we are ready to export
+       // this needs to be done before we validate
+       // FIXME Do we need to do this all the time? I.e., in children
+       // of a master we are exporting?
+       updateBuffer();
+       updateMacroInstances();
+
        try {
                os.texrow().reset();
                writeLaTeXSource(os, original_path,
@@ -1343,15 +1356,6 @@ void Buffer::writeLaTeXSource(otexstream & os,
        }
        LYXERR(Debug::INFO, "lyx document header finished");
 
-       // Don't move this behind the parent_buffer=0 code below,
-       // because then the macros will not get the right "redefinition"
-       // flag as they don't see the parent macros which are output before.
-       updateMacros();
-
-       // fold macros if possible, still with parent buffer as the
-       // macros will be put in the prefix anyway.
-       updateMacroInstances();
-
        // There are a few differences between nice LaTeX and usual files:
        // usual is \batchmode and has a
        // special input@path to allow the including of figures
@@ -1505,6 +1509,11 @@ void Buffer::makeDocBookFile(FileName const & fname,
        if (!openFileWrite(ofs, fname))
                return;
 
+       // make sure we are ready to export
+       // this needs to be done before we validate
+       updateBuffer();
+       updateMacroInstances();
+
        writeDocBookSource(ofs, fname.absFileName(), runparams, body_only);
 
        ofs.close();
@@ -1579,8 +1588,6 @@ void Buffer::writeDocBookSource(odocstream & os, string const & fname,
 
        params().documentClass().counters().reset();
 
-       updateMacros();
-
        sgml::openTag(os, top);
        os << '\n';
        docbookParagraphs(text(), *this, os, runparams);
@@ -1598,6 +1605,11 @@ void Buffer::makeLyXHTMLFile(FileName const & fname,
        if (!openFileWrite(ofs, fname))
                return;
 
+       // make sure we are ready to export
+       // this has to be done before we validate
+       updateBuffer(UpdateMaster, OutputUpdate);
+       updateMacroInstances();
+
        writeLyXHTMLSource(ofs, runparams, body_only);
 
        ofs.close();
@@ -1612,10 +1624,7 @@ void Buffer::writeLyXHTMLSource(odocstream & os,
 {
        LaTeXFeatures features(*this, params(), runparams);
        validate(features);
-       updateBuffer(UpdateMaster, OutputUpdate);
        d->bibinfo_.makeCitationLabels(*this);
-       updateMacros();
-       updateMacroInstances();
 
        if (!only_body) {
                os << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
@@ -1701,8 +1710,6 @@ void Buffer::validate(LaTeXFeatures & features) const
 {
        params().validate(features);
 
-       updateMacros();
-
        for_each(paragraphs().begin(), paragraphs().end(),
                 bind(&Paragraph::validate, _1, ref(features)));
 
@@ -3457,6 +3464,11 @@ namespace {
 void Buffer::setExportStatus(bool e) const
 {
        d->doing_export = e;    
+       ListOfBuffers clist = getDescendents();
+       ListOfBuffers::const_iterator cit = clist.begin();
+       ListOfBuffers::const_iterator const cen = clist.end();
+       for (; cit != cen; ++cit)
+               (*cit)->d->doing_export = e;
 }
 
 
@@ -3517,9 +3529,6 @@ bool Buffer::doExport(string const & format, bool put_in_tempdir,
        filename = changeExtension(filename,
                                   formats.extension(backend_format));
 
-       // fix macros
-       updateMacroInstances();
-
        // Plain text backend
        if (backend_format == "text") {
                runparams.flavor = OutputParams::TEXT;