]> git.lyx.org Git - features.git/commitdiff
Start the clean up of the updateMacros() calls by moving the necessary
authorRichard Heck <rgheck@comcast.net>
Thu, 5 May 2011 20:18:16 +0000 (20:18 +0000)
committerRichard Heck <rgheck@comcast.net>
Thu, 5 May 2011 20:18:16 +0000 (20:18 +0000)
calls into the file writing routines and out of doExport(). They were in
both places before: Called once in doExport, and then again in the e.g.
writeLaTeXSource()---and then again, actually, in validate().

It is possible this will reveal some missing updateBuffer() calls
somewhere. But it should somewhat speed up View>Source, since we now do
not do an extra set of such calls in that routine. Rather, we rely upon
the Buffer's having been made up to date first, by the updateBuffer()
call after dispatch.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38596 a592a061-630c-0410-9148-cb99ea01b6c8

src/Buffer.cpp
src/output_plaintext.cpp

index 615f2b02078752632c7197085933d158cee99df5..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;
 
@@ -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.
-       updateBuffer();
-
-       // 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)));
 
@@ -3522,10 +3529,6 @@ bool Buffer::doExport(string const & format, bool put_in_tempdir,
        filename = changeExtension(filename,
                                   formats.extension(backend_format));
 
-       // fix macros
-       updateMacros();
-       updateMacroInstances();
-
        // Plain text backend
        if (backend_format == "text") {
                runparams.flavor = OutputParams::TEXT;
index 97e3ab11270c5fab649507d74e8ae2a679c32a88..2b6af82a4354a133ddd7fb0bc50794660ec25247 100644 (file)
@@ -37,6 +37,11 @@ void writePlaintextFile(Buffer const & buf, FileName const & fname,
        ofdocstream ofs;
        if (!openFileWrite(ofs, fname))
                return;
+
+       // make sure we are ready to export
+       buf.updateBuffer();
+       buf.updateMacroInstances();
+
        writePlaintextFile(buf, ofs, runparams);
 }