]> git.lyx.org Git - lyx.git/blobdiff - src/output_linuxdoc.C
* remove various xforms relicts, in particular:
[lyx.git] / src / output_linuxdoc.C
index 89958ab06163dcd9bd6dc9eb3ae6aba4a1a0c044..459c23b324de132f7452ee731d7f5e6f77d655a7 100644 (file)
 
 #include "buffer.h"
 #include "bufferparams.h"
+#include "outputparams.h"
 #include "paragraph.h"
 #include "paragraph_funcs.h"
-#include "ParagraphList_fwd.h"
+#include "ParagraphList.h"
 #include "ParagraphParameters.h"
 #include "sgml.h"
 
@@ -40,12 +41,24 @@ void linuxdocParagraphs(Buffer const & buf,
 
        ParagraphList::const_iterator pit = paragraphs.begin();
        ParagraphList::const_iterator pend = paragraphs.end();
+       
+       BOOST_ASSERT(runparams.par_begin <= runparams.par_end);
+       // if only part of the paragraphs will be outputed
+       if (runparams.par_begin !=  runparams.par_end) {
+               pit = boost::next(paragraphs.begin(), runparams.par_begin);
+               pend = boost::next(paragraphs.begin(), runparams.par_end);
+               // runparams will be passed to nested paragraphs, so
+               // we have to reset the range parameters.
+               const_cast<OutputParams&>(runparams).par_begin = 0;
+               const_cast<OutputParams&>(runparams).par_end = 0;
+       }
+
        for (; pit != pend; ++pit) {
                LyXLayout_ptr const & style = pit->layout();
                // treat <toc> as a special case for compatibility with old code
                if (!pit->empty() && pit->isInset(0)) {
                        InsetBase const * inset = pit->getInset(0);
-                       if (inset->lyxCode() == InsetOld::TOC_CODE) {
+                       if (inset->lyxCode() == InsetBase::TOC_CODE) {
                                string const temp = "toc";
                                sgml::openTag(os, temp);
                                continue;
@@ -74,9 +87,10 @@ void linuxdocParagraphs(Buffer const & buf,
                        break;
 
                case LATEX_COMMAND:
+#if 0
                        if (depth != 0)
-                               //error(ErrorItem(_("Error:"), _("Wrong depth for LatexType Command.\n"), pit->id(), 0, pit->size()));
-                               ;
+                               error(ErrorItem(_("Error:"), _("Wrong depth for LatexType Command.\n"), pit->id(), 0, pit->size()));
+#endif
 
                        if (!environment_stack[depth].empty()) {
                                sgml::closeTag(os, environment_stack[depth]);
@@ -132,7 +146,7 @@ void linuxdocParagraphs(Buffer const & buf,
                }
 
                pit->simpleLinuxDocOnePar(buf, os,
-                       outerFont(pit - paragraphs.begin(), paragraphs),
+                                         outerFont(std::distance(paragraphs.begin(), pit), paragraphs),
                                          runparams, depth);
 
                os << "\n";