X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Foutput_linuxdoc.C;h=7db9ab81cba3238d03cb6bef0d1fccd94fc58b27;hb=b9963e1a57135c3e2ab128a9ec4300f0e4886992;hp=7ce1e932bcbd5b3f601d013e7a00659082907bb5;hpb=1eaa3eb913b16f4e6f5991b9c53b0b9ab3f84948;p=lyx.git diff --git a/src/output_linuxdoc.C b/src/output_linuxdoc.C index 7ce1e932bc..7db9ab81cb 100644 --- a/src/output_linuxdoc.C +++ b/src/output_linuxdoc.C @@ -17,14 +17,12 @@ #include "bufferparams.h" #include "paragraph.h" #include "paragraph_funcs.h" +#include "ParagraphList_fwd.h" #include "ParagraphParameters.h" #include "sgml.h" #include -#ifdef HAVE_LOCALE -#endif - using std::ostream; using std::stack; using std::vector; @@ -35,28 +33,28 @@ void linuxdocParagraphs(Buffer const & buf, ostream & os, OutputParams const & runparams) { - + Paragraph::depth_type depth = 0; // paragraph depth string item_name; vector environment_stack(5); - ParagraphList::iterator pit = const_cast(paragraphs).begin(); - ParagraphList::iterator pend = const_cast(paragraphs).end(); + ParagraphList::const_iterator pit = paragraphs.begin(); + ParagraphList::const_iterator pend = paragraphs.end(); for (; pit != pend; ++pit) { LyXLayout_ptr const & style = pit->layout(); // treat as a special case for compatibility with old code - if (pit->isInset(0)) { - InsetBase * inset = pit->getInset(0); - if (inset->lyxCode() == InsetOld::TOC_CODE) { + if (!pit->empty() && pit->isInset(0)) { + InsetBase const * inset = pit->getInset(0); + if (inset->lyxCode() == InsetBase::TOC_CODE) { string const temp = "toc"; - sgml::openTag(os, depth, false, temp); + sgml::openTag(os, temp); continue; } } // environment tag closing for (; depth > pit->params().depth(); --depth) { - sgml::closeTag(os, depth, false, environment_stack[depth]); + sgml::closeTag(os, environment_stack[depth]); environment_stack[depth].erase(); } @@ -65,28 +63,29 @@ void linuxdocParagraphs(Buffer const & buf, case LATEX_PARAGRAPH: if (depth == pit->params().depth() && !environment_stack[depth].empty()) { - sgml::closeTag(os, depth, false, environment_stack[depth]); + sgml::closeTag(os, environment_stack[depth]); environment_stack[depth].erase(); if (depth) --depth; else os << "

"; } - sgml::openTag(os, depth, false, style->latexname()); + sgml::openTag(os, style->latexname()); 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, depth, false, environment_stack[depth]); + sgml::closeTag(os, environment_stack[depth]); os << "

"; } environment_stack[depth].erase(); - sgml::openTag(os, depth, false, style->latexname()); + sgml::openTag(os, style->latexname()); break; case LATEX_ENVIRONMENT: @@ -96,8 +95,7 @@ void linuxdocParagraphs(Buffer const & buf, if (depth == pit->params().depth() && environment_stack[depth] != latexname) { - sgml::closeTag(os, depth, false, - environment_stack[depth]); + sgml::closeTag(os, environment_stack[depth]); environment_stack[depth].erase(); } if (depth < pit->params().depth()) { @@ -106,9 +104,9 @@ void linuxdocParagraphs(Buffer const & buf, } if (environment_stack[depth] != latexname) { if (depth == 0) { - sgml::openTag(os, depth, false, "p"); + sgml::openTag(os, "p"); } - sgml::openTag(os, depth, false, latexname); + sgml::openTag(os, latexname); if (environment_stack.size() == depth + 1) environment_stack.push_back("!-- --"); @@ -125,16 +123,17 @@ void linuxdocParagraphs(Buffer const & buf, else item_name = "item"; - sgml::openTag(os, depth + 1, false, item_name); + sgml::openTag(os, item_name); } break; default: - sgml::openTag(os, depth, false, style->latexname()); + sgml::openTag(os, style->latexname()); break; } - pit->simpleLinuxDocOnePar(buf, os, outerFont(pit, paragraphs), + pit->simpleLinuxDocOnePar(buf, os, + outerFont(pit - paragraphs.begin(), paragraphs), runparams, depth); os << "\n"; @@ -149,14 +148,12 @@ void linuxdocParagraphs(Buffer const & buf, os << "]]>"; break; default: - sgml::closeTag(os, depth, false, style->latexname()); + sgml::closeTag(os, style->latexname()); break; } } // Close open tags for (int i = depth; i >= 0; --i) - sgml::closeTag(os, depth, false, environment_stack[i]); + sgml::closeTag(os, environment_stack[i]); } - -