]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.cpp
Typo.
[lyx.git] / src / Buffer.cpp
index 54c34c20dbae0bc9d9400f4bf8f1c823674a235c..618b7d18a121a420f3ccd27e2091e935b831b1f4 100644 (file)
@@ -2879,7 +2879,7 @@ MacroData const * Buffer::Impl::getBufferMacro(docstring const & name,
                                // try previous macro if there is one
                                if (it == nameIt->second.begin())
                                        break;
-                               it--;
+                               --it;
                        }
                }
        }
@@ -3316,12 +3316,14 @@ void Buffer::getSourceCode(odocstream & os, string const format,
                                        convert<docstring>(par_end - 1))
                           << "\n\n";
                }
-               TexRow texrow;
-               texrow.reset();
-               texrow.newline();
-               texrow.newline();
                // output paragraphs
-               if (runparams.flavor == OutputParams::HTML) {
+               if (runparams.flavor == OutputParams::LYX) {
+                       Paragraph const & par = text().paragraphs()[par_begin];
+                       ostringstream ods;
+                       depth_type dt = par.getDepth();
+                       par.write(ods, params(), dt);
+                       os << from_utf8(ods.str());
+               } else if (runparams.flavor == OutputParams::HTML) {
                        XHTMLStream xs(os);
                        setMathFlavor(runparams);
                        xhtmlParagraphs(text(), *this, xs, runparams);
@@ -3334,6 +3336,10 @@ void Buffer::getSourceCode(odocstream & os, string const format,
                } else if (params().isDocBook()) {
                        docbookParagraphs(text(), *this, os, runparams);
                } else {
+                       TexRow texrow;
+                       texrow.reset();
+                       texrow.newline();
+                       texrow.newline();
                        // latex or literate
                        otexstream ots(os, texrow);
                        latexParagraphs(*this, text(), ots, runparams);
@@ -3347,10 +3353,16 @@ void Buffer::getSourceCode(odocstream & os, string const format,
                else if (output == OnlyBody)
                        os << _("Preview body");
                os << "\n\n";
-               d->texrow.reset();
-               d->texrow.newline();
-               d->texrow.newline();
-               if (runparams.flavor == OutputParams::HTML) {
+               if (runparams.flavor == OutputParams::LYX) {
+                       ostringstream ods;
+                       if (output == FullSource)
+                               write(ods);
+                       else if (output == OnlyPreamble)
+                               params().writeFile(ods);
+                       else if (output == OnlyBody)
+                               text().write(ods);
+                       os << from_utf8(ods.str());
+               }       else if (runparams.flavor == OutputParams::HTML) {
                        writeLyXHTMLSource(os, runparams, output);
                } else if (runparams.flavor == OutputParams::TEXT) {
                        if (output == OnlyPreamble) {
@@ -3361,6 +3373,9 @@ void Buffer::getSourceCode(odocstream & os, string const format,
                                writeDocBookSource(os, absFileName(), runparams, output);
                } else {
                        // latex or literate
+                       d->texrow.reset();
+                       d->texrow.newline();
+                       d->texrow.newline();
                        otexstream ots(os, d->texrow);
                        writeLaTeXSource(ots, string(), runparams, output);
                }
@@ -3696,6 +3711,7 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir
        runparams.includeall = includeall;
        vector<string> backs = params().backends();
        Converters converters = theConverters();
+       bool need_nice_file = false;
        if (find(backs.begin(), backs.end(), format) == backs.end()) {
                // Get shortest path to format
                converters.buildGraph();
@@ -3719,6 +3735,13 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir
                        return ExportNoPathToFormat;
                }
                runparams.flavor = converters.getFlavor(path, this);
+               Graph::EdgePath::const_iterator it = path.begin();
+               Graph::EdgePath::const_iterator en = path.end();
+               for (; it != en; ++it)
+                       if (theConverters().get(*it).nice) {
+                               need_nice_file = true;
+                               break;
+                       }
 
        } else {
                backend_format = format;
@@ -3758,7 +3781,7 @@ Buffer::ExportStatus Buffer::doExport(string const & target, bool put_in_tempdir
                makeDocBookFile(FileName(filename), runparams);
        }
        // LaTeX backend
-       else if (backend_format == format) {
+       else if (backend_format == format || need_nice_file) {
                runparams.nice = true;
                bool const success = makeLaTeXFile(FileName(filename), string(), runparams);
                if (d->cloned_buffer_)