]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.cpp
* There are cases where updateLabels is not called because no
[lyx.git] / src / Buffer.cpp
index 0fff4f4157e236813ffae6d79f863fb3cfe3ad0c..83c182a99c66245abfa574b51dd3e5f986fab5e6 100644 (file)
@@ -114,7 +114,7 @@ namespace os = support::os;
 
 namespace {
 
-int const LYX_FORMAT = 313; // Richard Heck: conversion of module representations
+int const LYX_FORMAT = 314; // Uwe Stöhr: scrlttr2 for serial letters
 
 } // namespace anon
 
@@ -1128,9 +1128,15 @@ void Buffer::writeLaTeXSource(odocstream & os,
        
        LYXERR(Debug::INFO, "preamble finished, now the body.");
 
+       // load children, if not already done. 
+       // This includes an updateMacro() call.
+       // 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.
+       loadChildDocuments();
+
        // fold macros if possible, still with parent buffer as the
        // macros will be put in the prefix anyway.
-       updateMacros();
        updateMacroInstances();
 
        // if we are doing a real file with body, even if this is the
@@ -1145,10 +1151,8 @@ void Buffer::writeLaTeXSource(odocstream & os,
                d->parent_buffer = 0;
        }
 
-       loadChildDocuments();
-
        // the real stuff
-       latexParagraphs(*this, paragraphs(), os, d->texrow, runparams);
+       latexParagraphs(*this, text(), os, d->texrow, runparams);
 
        // Restore the parenthood if needed
        if (output_preamble) {
@@ -2156,7 +2160,7 @@ void Buffer::getSourceCode(odocstream & os, pit_type par_begin,
                d->texrow.newline();
                // output paragraphs
                if (isLatex()) {
-                       latexParagraphs(*this, paragraphs(), os, d->texrow, runparams);
+                       latexParagraphs(*this, text(), os, d->texrow, runparams);
                } else {
                        // DocBook
                        docbookParagraphs(paragraphs(), *this, os, runparams);
@@ -2260,14 +2264,12 @@ private:
 };
 
 
-#if !defined (HAVE_FORK)
-# define fork() -1
-#endif
-
 int AutoSaveBuffer::generateChild()
 {
        // tmp_ret will be located (usually) in /tmp
        // will that be a problem?
+       // Note that this calls ForkedCalls::fork(), so it's
+       // ok cross-platform.
        pid_t const pid = fork();
        // If you want to debug the autosave
        // you should set pid to -1, and comment out the fork.