]> git.lyx.org Git - lyx.git/blobdiff - src/output_latex.C
Fix my breakage. Sorry guys.
[lyx.git] / src / output_latex.C
index b50748dd5274fb6c56fdf75f48613165a387142f..d1ea46e50d197c2d368ad5c0364f2cc4de97ad5d 100644 (file)
@@ -190,23 +190,28 @@ TeXEnvironment(Buffer const & buf,
                texrow.newline();
        }
 
-       lyxerr[Debug::LATEX] << "TeXEnvironment...done " << &*par << endl;
-       return par;  // ale970302
+       if (par != paragraphs.end() && lyxerr.debugging(Debug::LATEX))
+               lyxerr << "TeXEnvironment...done " << &*par << endl;
+       return par;
 }
 
 
-InsetOptArg * optArgInset(Paragraph const & par)
+int latexOptArgInsets(Buffer const & buf, Paragraph const & par,
+                     ostream & os, OutputParams const & runparams, int number)
 {
-       // Find the entry.
+       int lines = 0;
+
        InsetList::const_iterator it = par.insetlist.begin();
        InsetList::const_iterator end = par.insetlist.end();
-       for (; it != end; ++it) {
-               InsetBase * ins = it->inset;
-               if (ins->lyxCode() == InsetBase::OPTARG_CODE) {
-                       return static_cast<InsetOptArg *>(ins);
+       for (; it != end && number > 0 ; ++it) {
+               if (it->inset->lyxCode() == InsetBase::OPTARG_CODE) {
+                       InsetOptArg * ins =
+                               static_cast<InsetOptArg *>(it->inset);
+                       lines += ins->latexOptional(buf, os, runparams);
+                       --number;
                }
        }
-       return 0;
+       return lines;
 }
 
 
@@ -308,10 +313,13 @@ TeXOnePar(Buffer const & buf,
                os << '\\' << style->latexname();
 
                // Separate handling of optional argument inset.
-               if (style->optionalargs == 1) {
-                       InsetOptArg * it = optArgInset(*pit);
-                       if (it)
-                               it->latexOptional(buf, os, runparams);
+               if (style->optionalargs > 0) {
+                       int ret = latexOptArgInsets(buf, *pit, os, runparams,
+                                                   style->optionalargs);
+                       while (ret > 0) {
+                               texrow.newline();
+                               --ret;
+                       }
                }
                else
                        os << style->latexparam();
@@ -409,7 +417,7 @@ paragraphs);
                }
        }
 
-       if (boost::next(pit) == const_cast<ParagraphList&>(paragraphs).end()
+       if (boost::next(pit) == paragraphs.end()
            && language->babel() != doc_language->babel()) {
                // Since \selectlanguage write the language to the aux file,
                // we need to reset the language at the end of footnote or
@@ -436,7 +444,9 @@ paragraphs);
                texrow.newline();
        }
 
-       lyxerr[Debug::LATEX] << "TeXOnePar...done " << &*boost::next(pit) << endl;
+       if (boost::next(pit) != paragraphs.end() &&
+           lyxerr.debugging(Debug::LATEX))
+               lyxerr << "TeXOnePar...done " << &*boost::next(pit) << endl;
        return ++pit;
 }