]> git.lyx.org Git - lyx.git/blobdiff - src/output_linuxdoc.C
Second Locale patch.
[lyx.git] / src / output_linuxdoc.C
index 213112b490dcffbe83bb82000377f28362391aff..7db9ab81cba3238d03cb6bef0d1fccd94fc58b27 100644 (file)
 #include "bufferparams.h"
 #include "paragraph.h"
 #include "paragraph_funcs.h"
+#include "ParagraphList_fwd.h"
 #include "ParagraphParameters.h"
 #include "sgml.h"
 
 #include <stack>
 
-#ifdef HAVE_LOCALE
-#endif
-
 using std::ostream;
 using std::stack;
 using std::vector;
@@ -35,29 +33,28 @@ void linuxdocParagraphs(Buffer const & buf,
                        ostream & os,
                        OutputParams const & runparams)
 {
-       
+
        Paragraph::depth_type depth = 0; // paragraph depth
        string item_name;
        vector<string> environment_stack(5);
 
-       ParagraphList::iterator pit = const_cast<ParagraphList&>(paragraphs).begin();
-       ParagraphList::iterator pend = const_cast<ParagraphList&>(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 <toc> as a special case for compatibility with old code
-               if (pit->isInset(0)) {
-                       InsetOld * inset = pit->getInset(0);
-                       InsetOld::Code lyx_code = inset->lyxCode();
-                       if (lyx_code == 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();
                }
 
@@ -66,40 +63,39 @@ 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 << "</p>";
                        }
-                       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 << "</p>";
                        }
 
                        environment_stack[depth].erase();
-                       sgml::openTag(os, depth, false, style->latexname());
+                       sgml::openTag(os, style->latexname());
                        break;
 
                case LATEX_ENVIRONMENT:
                case LATEX_ITEM_ENVIRONMENT:
-               case LATEX_BIB_ENVIRONMENT:
-               {
+               case LATEX_BIB_ENVIRONMENT: {
                        string const & latexname = style->latexname();
 
                        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()) {
@@ -108,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("!-- --");
@@ -127,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";
@@ -151,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]);
 }
-
-