From 15c913fe5a896f6d53dd50a64ed83be3ed1d8dc4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Matox?= Date: Fri, 31 Oct 2003 18:45:43 +0000 Subject: [PATCH] unify API for insets export git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8008 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 14 +++ src/buffer.C | 223 +++------------------------------- src/buffer.h | 13 +- src/exporter.C | 15 ++- src/insets/ChangeLog | 34 ++++++ src/insets/inset.h | 10 +- src/insets/insetbox.C | 15 ++- src/insets/insetbox.h | 9 +- src/insets/insetbranch.C | 15 ++- src/insets/insetbranch.h | 9 +- src/insets/insetcaption.C | 9 +- src/insets/insetcaption.h | 6 +- src/insets/insetcollapsable.C | 15 ++- src/insets/insetcollapsable.h | 9 +- src/insets/insetcommand.C | 9 +- src/insets/insetcommand.h | 9 +- src/insets/insetert.C | 9 +- src/insets/insetert.h | 10 +- src/insets/insetexternal.C | 9 +- src/insets/insetexternal.h | 8 +- src/insets/insetfloat.C | 11 +- src/insets/insetfloat.h | 6 +- src/insets/insetfloatlist.C | 2 +- src/insets/insetfloatlist.h | 9 +- src/insets/insetfoot.C | 5 +- src/insets/insetfoot.h | 3 +- src/insets/insetgraphics.C | 8 +- src/insets/insetgraphics.h | 9 +- src/insets/insethfill.C | 9 +- src/insets/insethfill.h | 9 +- src/insets/insetinclude.C | 16 ++- src/insets/insetinclude.h | 12 +- src/insets/insetindex.C | 3 +- src/insets/insetindex.h | 3 +- src/insets/insetlabel.C | 9 +- src/insets/insetlabel.h | 9 +- src/insets/insetlatexaccent.C | 9 +- src/insets/insetlatexaccent.h | 9 +- src/insets/insetline.C | 9 +- src/insets/insetline.h | 9 +- src/insets/insetnewline.C | 9 +- src/insets/insetnewline.h | 9 +- src/insets/insetnote.C | 17 +-- src/insets/insetnote.h | 11 +- src/insets/insetpagebreak.C | 11 +- src/insets/insetpagebreak.h | 11 +- src/insets/insetquotes.C | 9 +- src/insets/insetquotes.h | 9 +- src/insets/insetref.C | 9 +- src/insets/insetref.h | 9 +- src/insets/insetspace.C | 9 +- src/insets/insetspace.h | 9 +- src/insets/insetspecialchar.C | 9 +- src/insets/insetspecialchar.h | 9 +- src/insets/insettabular.C | 30 +++-- src/insets/insettabular.h | 9 +- src/insets/insettext.C | 26 ++-- src/insets/insettext.h | 9 +- src/insets/insettoc.C | 9 +- src/insets/insettoc.h | 9 +- src/insets/inseturl.C | 9 +- src/insets/inseturl.h | 9 +- src/insets/insetwrap.C | 6 +- src/insets/insetwrap.h | 3 +- src/latexrunparams.h | 13 +- src/mathed/ChangeLog | 9 ++ src/mathed/formula.C | 13 +- src/mathed/formula.h | 9 +- src/mathed/formulamacro.C | 13 +- src/mathed/formulamacro.h | 9 +- src/mathed/math_inset.C | 6 +- src/mathed/math_inset.h | 8 +- src/mathed/ref_inset.C | 6 +- src/mathed/ref_inset.h | 6 +- src/paragraph.C | 34 +++++- src/paragraph.h | 18 ++- src/paragraph_funcs.C | 208 ++++++++++++++++++++++++++++++- src/paragraph_funcs.h | 15 ++- src/paragraph_pimpl.C | 2 +- src/tabular.C | 37 +++--- src/tabular.h | 14 ++- 81 files changed, 800 insertions(+), 488 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 459a3fa9b0..4388d917c5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,17 @@ +2003-10-31 José Matos + + * paragraph_funcs.C (addDepth, asciiParagraph): move from buffer.C + + * buffer.[Ch] (writeFileAscii, makeLinuxDocFile, makeDocBookFile): + * paragraph.[Ch] (simpleLinuxDocOnePar, simpleDocBookOnePar, asString): + * paragraph_funcs.[Ch] (linuxdocParagraphs, docbookParagraphs): + * paragraph_pimpl.C (simpleTeXSpecialC): + * tabular.[Ch] (linuxdoc, docbookRow, docbook, ascii): + add LatexRunParams argument. + + * exporter.C (Export): change call accordingly. + + * latexrunparams.h: add new member to take care of the other backends. 2003-10-30 José Matos * buffer.C (makeLinuxDocFile, makeDocBookFile): diff --git a/src/buffer.C b/src/buffer.C index a901e24e57..7f8d0b033f 100644 --- a/src/buffer.C +++ b/src/buffer.C @@ -74,14 +74,10 @@ using lyx::pos_type; using lyx::support::AddName; -using lyx::support::ascii_lowercase; using lyx::support::atoi; using lyx::support::bformat; using lyx::support::ChangeExtension; using lyx::support::cmd_ret; -using lyx::support::compare_ascii_no_case; -using lyx::support::compare_no_case; -using lyx::support::contains; using lyx::support::CreateBufferTmpDir; using lyx::support::destroyDir; using lyx::support::FileInfo; @@ -887,213 +883,22 @@ bool Buffer::do_writeFile(ostream & ofs) const } -namespace { - -pair const addDepth(int depth, int ldepth) -{ - int d = depth * 2; - if (ldepth > depth) - d += (ldepth - depth) * 2; - return make_pair(d, string(d, ' ')); -} - -} - - -string const Buffer::asciiParagraph(Paragraph const & par, - unsigned int linelen, - bool noparbreak) const -{ - ostringstream buffer; - int ltype = 0; - Paragraph::depth_type ltype_depth = 0; - bool ref_printed = false; - Paragraph::depth_type depth = par.params().depth(); - - // First write the layout - string const & tmp = par.layout()->name(); - if (compare_no_case(tmp, "itemize") == 0) { - ltype = 1; - ltype_depth = depth + 1; - } else if (compare_ascii_no_case(tmp, "enumerate") == 0) { - ltype = 2; - ltype_depth = depth + 1; - } else if (contains(ascii_lowercase(tmp), "ection")) { - ltype = 3; - ltype_depth = depth + 1; - } else if (contains(ascii_lowercase(tmp), "aragraph")) { - ltype = 4; - ltype_depth = depth + 1; - } else if (compare_ascii_no_case(tmp, "description") == 0) { - ltype = 5; - ltype_depth = depth + 1; - } else if (compare_ascii_no_case(tmp, "abstract") == 0) { - ltype = 6; - ltype_depth = 0; - } else if (compare_ascii_no_case(tmp, "bibliography") == 0) { - ltype = 7; - ltype_depth = 0; - } else { - ltype = 0; - ltype_depth = 0; - } - - /* maybe some vertical spaces */ - - /* the labelwidthstring used in lists */ - - /* some lines? */ - - /* some pagebreaks? */ - - /* noindent ? */ - - /* what about the alignment */ - - // linelen <= 0 is special and means we don't have paragraph breaks - - string::size_type currlinelen = 0; - - if (!noparbreak) { - if (linelen > 0) - buffer << "\n\n"; - - buffer << string(depth * 2, ' '); - currlinelen += depth * 2; - - //-- - // we should probably change to the paragraph language in the - // gettext here (if possible) so that strings are outputted in - // the correct language! (20012712 Jug) - //-- - switch (ltype) { - case 0: // Standard - case 4: // (Sub)Paragraph - case 5: // Description - break; - case 6: // Abstract - if (linelen > 0) { - buffer << _("Abstract") << "\n\n"; - currlinelen = 0; - } else { - string const abst = _("Abstract: "); - buffer << abst; - currlinelen += abst.length(); - } - break; - case 7: // Bibliography - if (!ref_printed) { - if (linelen > 0) { - buffer << _("References") << "\n\n"; - currlinelen = 0; - } else { - string const refs = _("References: "); - buffer << refs; - currlinelen += refs.length(); - } - - ref_printed = true; - } - break; - default: - { - string const parlab = par.params().labelString(); - buffer << parlab << ' '; - currlinelen += parlab.length() + 1; - } - break; - - } - } - - if (!currlinelen) { - pair p = addDepth(depth, ltype_depth); - buffer << p.second; - currlinelen += p.first; - } - - // this is to change the linebreak to do it by word a bit more - // intelligent hopefully! (only in the case where we have a - // max linelength!) (Jug) - - string word; - - for (pos_type i = 0; i < par.size(); ++i) { - char c = par.getUChar(params(), i); - switch (c) { - case Paragraph::META_INSET: - { - InsetOld const * inset = par.getInset(i); - if (inset) { - if (linelen > 0) { - buffer << word; - currlinelen += word.length(); - word.erase(); - } - if (inset->ascii(*this, buffer, linelen)) { - // to be sure it breaks paragraph - currlinelen += linelen; - } - } - } - break; - - default: - if (c == ' ') { - if (linelen > 0 && - currlinelen + word.length() > linelen - 10) { - buffer << "\n"; - pair p = addDepth(depth, ltype_depth); - buffer << p.second; - currlinelen = p.first; - } - - buffer << word << ' '; - currlinelen += word.length() + 1; - word.erase(); - - } else { - if (c != '\0') { - word += c; - } else { - lyxerr[Debug::INFO] << - "writeAsciiFile: NULL char in structure." << endl; - } - if ((linelen > 0) && - (currlinelen + word.length()) > linelen) - { - buffer << "\n"; - - pair p = - addDepth(depth, ltype_depth); - buffer << p.second; - currlinelen = p.first; - } - } - break; - } - } - buffer << word; - return buffer.str(); -} - - -void Buffer::writeFileAscii(string const & fname, int linelen) +void Buffer::writeFileAscii(string const & fname, LatexRunParams const & runparams) { ofstream ofs; if (!::openFileWrite(ofs, fname)) return; - writeFileAscii(ofs, linelen); + writeFileAscii(ofs, runparams); } -void Buffer::writeFileAscii(ostream & os, int linelen) +void Buffer::writeFileAscii(ostream & os, LatexRunParams const & runparams) { ParagraphList::iterator beg = paragraphs().begin(); ParagraphList::iterator end = paragraphs().end(); ParagraphList::iterator it = beg; for (; it != end; ++it) { - os << asciiParagraph(*it, linelen, it == beg); + asciiParagraph(*this, *it, os, runparams, it == beg); } os << "\n"; } @@ -1261,13 +1066,15 @@ bool Buffer::isSGML() const } -void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only) +void Buffer::makeLinuxDocFile(string const & fname, + LatexRunParams const & runparams, + bool body_only ) { ofstream ofs; if (!::openFileWrite(ofs, fname)) return; - niceFile() = nice; // this will be used by included files. + niceFile() = runparams.nice; // this will be used by included files. LaTeXFeatures features(*this, params()); @@ -1283,7 +1090,7 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only) ofs << "filename, ".sgml") + string const name = runparams.nice ? ChangeExtension(pimpl_->filename, ".sgml") : fname; preamble += features.getIncludedFiles(name); preamble += features.getLyXSGMLEntities(); @@ -1307,7 +1114,7 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only) << " created this file. For more info see http://www.lyx.org/" << " -->\n"; - linuxdocParagraphs(*this, paragraphs(), ofs); + linuxdocParagraphs(*this, paragraphs(), ofs, runparams); if (!body_only) { ofs << "\n\n"; @@ -1322,13 +1129,15 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only) } -void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body) +void Buffer::makeDocBookFile(string const & fname, + LatexRunParams const & runparams, + bool only_body) { ofstream ofs; if (!::openFileWrite(ofs, fname)) return; - niceFile() = nice; // this will be used by Insetincludes. + niceFile() = runparams.nice; // this will be used by Insetincludes. LaTeXFeatures features(*this, params()); validate(features); @@ -1343,7 +1152,7 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body) << " PUBLIC \"-//OASIS//DTD DocBook V4.1//EN\""; string preamble = params().preamble; - string const name = nice ? ChangeExtension(pimpl_->filename, ".sgml") + string const name = runparams.nice ? ChangeExtension(pimpl_->filename, ".sgml") : fname; preamble += features.getIncludedFiles(name); preamble += features.getLyXSGMLEntities(); @@ -1368,7 +1177,7 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body) ofs << "\n"; - docbookParagraphs(*this, paragraphs(), ofs); + docbookParagraphs(*this, paragraphs(), ofs, runparams); ofs << "\n\n"; sgml::closeTag(ofs, 0, false, top_element); diff --git a/src/buffer.h b/src/buffer.h index 27690c0ad8..9637b9d059 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -134,12 +134,9 @@ public: bool writeFile(std::string const &) const; /// - void writeFileAscii(std::string const &, int); + void writeFileAscii(std::string const &, LatexRunParams const &); /// - void writeFileAscii(std::ostream &, int); - /// - std::string const asciiParagraph(Paragraph const &, unsigned int linelen, - bool noparbreak = false) const; + void writeFileAscii(std::ostream &, LatexRunParams const &); /// Just a wrapper for the method below, first creating the ofstream. void makeLaTeXFile(std::string const & filename, std::string const & original_path, @@ -154,10 +151,12 @@ public: bool output_body = true); /// void makeLinuxDocFile(std::string const & filename, - bool nice, bool only_body = false); + LatexRunParams const & runparams_in, + bool only_body = false); /// void makeDocBookFile(std::string const & filename, - bool nice, bool only_body = false); + LatexRunParams const & runparams_in, + bool only_body = false); /// returns the main language for the buffer (document) Language const * getLanguage() const; /// get l10n translated to the buffers language diff --git a/src/exporter.C b/src/exporter.C index 6905871c23..1d386a2a6d 100644 --- a/src/exporter.C +++ b/src/exporter.C @@ -62,6 +62,7 @@ bool Exporter::Export(Buffer * buffer, string const & format, string backend_format; LatexRunParams runparams; runparams.flavor = LatexRunParams::LATEX; + runparams.linelen = lyxrc.ascii_linelen; vector backends = Backends(*buffer); if (find(backends.begin(), backends.end(), format) == backends.end()) { for (vector::const_iterator it = backends.begin(); @@ -92,13 +93,17 @@ bool Exporter::Export(Buffer * buffer, string const & format, // Ascii backend if (backend_format == "text") - buffer->writeFileAscii(filename, lyxrc.ascii_linelen); + buffer->writeFileAscii(filename, runparams); // Linuxdoc backend - else if (buffer->isLinuxDoc()) - buffer->makeLinuxDocFile(filename, !put_in_tempdir); + else if (buffer->isLinuxDoc()) { + runparams.nice = !put_in_tempdir; + buffer->makeLinuxDocFile(filename, runparams); + } // Docbook backend - else if (buffer->isDocBook()) - buffer->makeDocBookFile(filename, !put_in_tempdir); + else if (buffer->isDocBook()) { + runparams.nice = !put_in_tempdir; + buffer->makeDocBookFile(filename, runparams); + } // LaTeX backend else if (backend_format == format) { runparams.nice = true; diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 5f30c10f5a..3892a355ce 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,37 @@ +2003-10-31 José Matos + + * inset.h (ascii, linuxdoc, docbook): + * insetbox.[Ch] (ascii, linuxdoc, docbook): + * insetbranch.[Ch] (ascii, linuxdoc, docbook): + * insetcaption.[Ch] (ascii, docbook): + * insetcollapsable.[Ch] (ascii, linuxdoc, docbook): + * insetcommand.[Ch] (ascii, linuxdoc, docbook): + * insetert.[Ch] (ascii, linuxdoc, docbook): + * insetexternal.[Ch] (ascii, linuxdoc, docbook): + * insetfloat.[Ch] (linuxdoc, docbook): + * insetfloatlist.[Ch] (ascii): + * insetfoot.[Ch] (docbook): + * insetgraphics.[Ch] (ascii, linuxdoc, docbook): + * insethfill.[Ch] (ascii, linuxdoc, docbook): + * insetinclude.[Ch] (ascii, linuxdoc, docbook): + * insetindex.[Ch] (docbook): + * insetlabel.[Ch] (ascii, linuxdoc, docbook): + * insetlatexaccent.[Ch] (ascii, linuxdoc, docbook): + * insetline.[Ch] (ascii, linuxdoc, docbook): + * insetnewline.[Ch] (ascii, linuxdoc, docbook): + * insetnote.[Ch] (ascii, linuxdoc, docbook): + * insetpagebreak.[Ch] (ascii, linuxdoc, docbook): + * insetquotes.[Ch] (ascii, linuxdoc, docbook): + * insetref.[Ch] (ascii, linuxdoc, docbook): + * insetspace.[Ch] (ascii, linuxdoc, docbook): + * insetspecialchar.[Ch] (ascii, linuxdoc, docbook): + * insetspecialchar.[Ch] (ascii, linuxdoc, docbook): + * insettext.[Ch] (ascii, linuxdoc, docbook): + * insettoc.[Ch] (ascii, linuxdoc, docbook): + * inseturl.[Ch] (ascii, linuxdoc, docbook): + * insetwrap.[Ch] (docbook): + add LatexRunParams argument. + 2003-10-30 José Matos * insettext.C (linuxdoc, docbook): use new pagraph generation code. diff --git a/src/insets/inset.h b/src/insets/inset.h index bf463049d1..c6509cd5d5 100644 --- a/src/insets/inset.h +++ b/src/insets/inset.h @@ -184,12 +184,14 @@ public: virtual int latex(Buffer const &, std::ostream &, LatexRunParams const &) const = 0; /// - virtual int ascii(Buffer const &, - std::ostream &, int linelen = 0) const = 0; + virtual int ascii(Buffer const &, std::ostream &, + LatexRunParams const &) const = 0; /// - virtual int linuxdoc(Buffer const &, std::ostream &) const = 0; + virtual int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const = 0; /// - virtual int docbook(Buffer const &, std::ostream &, bool) const = 0; + virtual int docbook(Buffer const &, std::ostream &, + LatexRunParams const &) const = 0; /// returns LyX code associated with the inset. Used for TOC, ...) virtual InsetOld::Code lyxCode() const { return NO_CODE; } diff --git a/src/insets/insetbox.C b/src/insets/insetbox.C index 212bac8e22..adbb9c0c88 100644 --- a/src/insets/insetbox.C +++ b/src/insets/insetbox.C @@ -325,19 +325,22 @@ int InsetBox::latex(Buffer const & buf, ostream & os, } -int InsetBox::linuxdoc(Buffer const & buf, std::ostream & os) const +int InsetBox::linuxdoc(Buffer const & buf, std::ostream & os, + LatexRunParams const & runparams) const { - return inset.linuxdoc(buf, os); + return inset.linuxdoc(buf, os, runparams); } -int InsetBox::docbook(Buffer const & buf, std::ostream & os, bool mixcont) const +int InsetBox::docbook(Buffer const & buf, std::ostream & os, + LatexRunParams const & runparams) const { - return inset.docbook(buf, os, mixcont); + return inset.docbook(buf, os, runparams); } -int InsetBox::ascii(Buffer const & buf, std::ostream & os, int ll) const +int InsetBox::ascii(Buffer const & buf, std::ostream & os, + LatexRunParams const & runparams) const { int i = 0; string const pt = params_.type; @@ -362,7 +365,7 @@ int InsetBox::ascii(Buffer const & buf, std::ostream & os, int ll) const break; } - i = inset.ascii(buf, os, ll); + i = inset.ascii(buf, os, runparams); switch (btype) { case Frameless: diff --git a/src/insets/insetbox.h b/src/insets/insetbox.h index c83606e575..7a1604f2df 100644 --- a/src/insets/insetbox.h +++ b/src/insets/insetbox.h @@ -81,11 +81,14 @@ public: int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; /// - int linuxdoc(Buffer const &, std::ostream &) const; + int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int docbook(Buffer const &, std::ostream &, bool) const; + int docbook(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int ascii(Buffer const &, std::ostream &, int) const; + int ascii(Buffer const &, std::ostream &, + LatexRunParams const & runparams) const; /// void validate(LaTeXFeatures &) const; /// diff --git a/src/insets/insetbranch.C b/src/insets/insetbranch.C index 642620f4ff..666c08125c 100644 --- a/src/insets/insetbranch.C +++ b/src/insets/insetbranch.C @@ -162,29 +162,32 @@ int InsetBranch::latex(Buffer const & buf, ostream & os, } -int InsetBranch::linuxdoc(Buffer const & buf, std::ostream & os) const +int InsetBranch::linuxdoc(Buffer const & buf, std::ostream & os, + LatexRunParams const & runparams) const { string const branch_sel = buf.params().branchlist().allSelected(); if (branch_sel.find(params_.branch, 0) != string::npos) - return inset.linuxdoc(buf, os); + return inset.linuxdoc(buf, os, runparams); return 0; } -int InsetBranch::docbook(Buffer const & buf, std::ostream & os, bool mixcont) const +int InsetBranch::docbook(Buffer const & buf, std::ostream & os, + LatexRunParams const & runparams) const { string const branch_sel = buf.params().branchlist().allSelected(); if (branch_sel.find(params_.branch, 0) != string::npos) - return inset.docbook(buf, os, mixcont); + return inset.docbook(buf, os, runparams); return 0; } -int InsetBranch::ascii(Buffer const & buf, std::ostream & os, int ll) const +int InsetBranch::ascii(Buffer const & buf, std::ostream & os, + LatexRunParams const & runparams) const { string const branch_sel = buf.params().branchlist().allSelected(); if (branch_sel.find(params_.branch, 0) != string::npos) { - return inset.ascii(buf, os, ll); + return inset.ascii(buf, os, runparams); } return 0; } diff --git a/src/insets/insetbranch.h b/src/insets/insetbranch.h index 15945de5de..65a3d1194c 100644 --- a/src/insets/insetbranch.h +++ b/src/insets/insetbranch.h @@ -59,11 +59,14 @@ public: int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; /// - int linuxdoc(Buffer const &, std::ostream &) const; + int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int docbook(Buffer const &, std::ostream &, bool) const; + int docbook(Buffer const &, std::ostream &, + LatexRunParams const & runparams) const; /// - int ascii(Buffer const &, std::ostream &, int) const; + int ascii(Buffer const &, std::ostream &, + LatexRunParams const & runparams) const; /// void validate(LaTeXFeatures &) const; /// diff --git a/src/insets/insetcaption.C b/src/insets/insetcaption.C index 7756436ff6..5b282dbd16 100644 --- a/src/insets/insetcaption.C +++ b/src/insets/insetcaption.C @@ -127,19 +127,20 @@ int InsetCaption::latex(Buffer const & buf, ostream & os, } -int InsetCaption::ascii(Buffer const & /*buf*/, - ostream & /*os*/, int /*linelen*/) const +int InsetCaption::ascii(Buffer const & /*buf*/,ostream & /*os*/, + LatexRunParams const & /*runparams*/) const { // FIX: Implement me! return 0; } -int InsetCaption::docbook(Buffer const & buf, ostream & os, bool mixcont) const +int InsetCaption::docbook(Buffer const & buf, ostream & os, + LatexRunParams const & runparams) const { int ret; os << ""; - ret = InsetText::docbook(buf, os, mixcont); + ret = InsetText::docbook(buf, os, runparams); os << "\n"; return ret; } diff --git a/src/insets/insetcaption.h b/src/insets/insetcaption.h index 4c58a3acca..f1d4cea054 100644 --- a/src/insets/insetcaption.h +++ b/src/insets/insetcaption.h @@ -37,9 +37,11 @@ public: virtual int latex(Buffer const & buf, std::ostream & os, LatexRunParams const &) const; /// - int ascii(Buffer const & buf, std::ostream & os, int linelen) const; + int ascii(Buffer const & buf, std::ostream & os, + LatexRunParams const & runparams) const; /// - int docbook(Buffer const & buf, std::ostream & os, bool mixcont) const; + int docbook(Buffer const & buf, std::ostream & os, + LatexRunParams const & runparams) const; }; diff --git a/src/insets/insetcollapsable.C b/src/insets/insetcollapsable.C index c7fc18a6da..c2b317336c 100644 --- a/src/insets/insetcollapsable.C +++ b/src/insets/insetcollapsable.C @@ -248,21 +248,24 @@ int InsetCollapsable::latex(Buffer const & buf, ostream & os, } -int InsetCollapsable::ascii(Buffer const & buf, ostream & os, int ll) const +int InsetCollapsable::ascii(Buffer const & buf, ostream & os, + LatexRunParams const & runparams) const { - return inset.ascii(buf, os, ll); + return inset.ascii(buf, os, runparams); } -int InsetCollapsable::linuxdoc(Buffer const & buf, ostream & os) const +int InsetCollapsable::linuxdoc(Buffer const & buf, ostream & os, + LatexRunParams const & runparams) const { - return inset.linuxdoc(buf, os); + return inset.linuxdoc(buf, os, runparams); } -int InsetCollapsable::docbook(Buffer const & buf, ostream & os, bool mixcont) const +int InsetCollapsable::docbook(Buffer const & buf, ostream & os, + LatexRunParams const & runparams) const { - return inset.docbook(buf, os, mixcont); + return inset.docbook(buf, os, runparams); } diff --git a/src/insets/insetcollapsable.h b/src/insets/insetcollapsable.h index a8e365ffbd..dcfcf7230f 100644 --- a/src/insets/insetcollapsable.h +++ b/src/insets/insetcollapsable.h @@ -71,11 +71,14 @@ public: int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; /// - int ascii(Buffer const &, std::ostream &, int) const; + int ascii(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int linuxdoc(Buffer const &, std::ostream &) const; + int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int docbook(Buffer const &, std::ostream &, bool mixcont) const; + int docbook(Buffer const &, std::ostream &, + LatexRunParams const & runparams) const; /// void validate(LaTeXFeatures & features) const; /// FIXME, document diff --git a/src/insets/insetcommand.C b/src/insets/insetcommand.C index 666f25dd13..78ffc5561e 100644 --- a/src/insets/insetcommand.C +++ b/src/insets/insetcommand.C @@ -67,19 +67,22 @@ int InsetCommand::latex(Buffer const &, ostream & os, } -int InsetCommand::ascii(Buffer const &, ostream &, int) const +int InsetCommand::ascii(Buffer const &, ostream &, + LatexRunParams const &) const { return 0; } -int InsetCommand::linuxdoc(Buffer const &, ostream &) const +int InsetCommand::linuxdoc(Buffer const &, ostream &, + LatexRunParams const &) const { return 0; } -int InsetCommand::docbook(Buffer const &, ostream &, bool) const +int InsetCommand::docbook(Buffer const &, ostream &, + LatexRunParams const &) const { return 0; } diff --git a/src/insets/insetcommand.h b/src/insets/insetcommand.h index 0e4b29e4e4..09778451a6 100644 --- a/src/insets/insetcommand.h +++ b/src/insets/insetcommand.h @@ -48,11 +48,14 @@ public: virtual int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; /// - int ascii(Buffer const &, std::ostream &, int linelen) const; + int ascii(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - virtual int linuxdoc(Buffer const &, std::ostream &) const; + virtual int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - virtual int docbook(Buffer const &, std::ostream &, bool) const; + virtual int docbook(Buffer const &, std::ostream &, + LatexRunParams const & runparams) const; /// InsetOld::Code lyxCode() const { return InsetOld::NO_CODE; } diff --git a/src/insets/insetert.C b/src/insets/insetert.C index dee32b929b..047dd9c9f6 100644 --- a/src/insets/insetert.C +++ b/src/insets/insetert.C @@ -362,13 +362,15 @@ int InsetERT::latex(Buffer const &, ostream & os, } -int InsetERT::ascii(Buffer const &, ostream &, int /*linelen*/) const +int InsetERT::ascii(Buffer const &, ostream &, + LatexRunParams const & /*runparams*/) const { return 0; } -int InsetERT::linuxdoc(Buffer const &, ostream & os) const +int InsetERT::linuxdoc(Buffer const &, ostream & os, + LatexRunParams const &)const { ParagraphList::iterator par = inset.paragraphs.begin(); ParagraphList::iterator end = inset.paragraphs.end(); @@ -395,7 +397,8 @@ int InsetERT::linuxdoc(Buffer const &, ostream & os) const } -int InsetERT::docbook(Buffer const &, ostream & os, bool) const +int InsetERT::docbook(Buffer const &, ostream & os, + LatexRunParams const &) const { ParagraphList::iterator par = inset.paragraphs.begin(); ParagraphList::iterator end = inset.paragraphs.end(); diff --git a/src/insets/insetert.h b/src/insets/insetert.h index 86c9694e5f..5617d6839c 100644 --- a/src/insets/insetert.h +++ b/src/insets/insetert.h @@ -67,12 +67,14 @@ public: int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; /// - int ascii(Buffer const &, - std::ostream &, int linelen = 0) const; + int ascii(Buffer const &, std::ostream &, + LatexRunParams const & runparams) const; /// - int linuxdoc(Buffer const &, std::ostream &) const; + int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int docbook(Buffer const &, std::ostream &, bool mixcont) const; + int docbook(Buffer const &, std::ostream &, + LatexRunParams const & runparams) const; /// void validate(LaTeXFeatures &) const {} /// diff --git a/src/insets/insetexternal.C b/src/insets/insetexternal.C index 31d3376d26..d1fb7c011a 100644 --- a/src/insets/insetexternal.C +++ b/src/insets/insetexternal.C @@ -683,19 +683,22 @@ int InsetExternal::latex(Buffer const & buf, ostream & os, } -int InsetExternal::ascii(Buffer const & buf, ostream & os, int) const +int InsetExternal::ascii(Buffer const & buf, ostream & os, + LatexRunParams const &) const { return external::writeExternal(params_, "Ascii", buf, os); } -int InsetExternal::linuxdoc(Buffer const & buf, ostream & os) const +int InsetExternal::linuxdoc(Buffer const & buf, ostream & os, + LatexRunParams const &) const { return external::writeExternal(params_, "LinuxDoc", buf, os); } -int InsetExternal::docbook(Buffer const & buf, ostream & os, bool) const +int InsetExternal::docbook(Buffer const & buf, ostream & os, + LatexRunParams const &) const { return external::writeExternal(params_, "DocBook", buf, os); } diff --git a/src/insets/insetexternal.h b/src/insets/insetexternal.h index cf5300ee78..ea7e9bc120 100644 --- a/src/insets/insetexternal.h +++ b/src/insets/insetexternal.h @@ -123,12 +123,14 @@ public: virtual int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; /// - virtual int ascii(Buffer const &, std::ostream &, int linelen) const; + virtual int ascii(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - virtual int linuxdoc(Buffer const &, std::ostream &) const; + virtual int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// virtual int docbook(Buffer const &, std::ostream &, - bool mixcont) const; + LatexRunParams const &) const; /// Update needed features for this inset. virtual void validate(LaTeXFeatures & features) const; diff --git a/src/insets/insetfloat.C b/src/insets/insetfloat.C index c3039b0fef..e0f3386700 100644 --- a/src/insets/insetfloat.C +++ b/src/insets/insetfloat.C @@ -24,6 +24,7 @@ #include "gettext.h" #include "iterators.h" #include "LaTeXFeatures.h" +#include "latexrunparams.h" #include "LColor.h" #include "lyxlex.h" #include "paragraph.h" @@ -312,7 +313,8 @@ int InsetFloat::latex(Buffer const & buf, ostream & os, } -int InsetFloat::linuxdoc(Buffer const & buf, ostream & os) const +int InsetFloat::linuxdoc(Buffer const & buf, ostream & os, + LatexRunParams const & runparams) const { FloatList const & floats = buf.params().getLyXTextClass().floats(); string const tmptype = params_.type; @@ -342,17 +344,18 @@ int InsetFloat::linuxdoc(Buffer const & buf, ostream & os) const } os << ">"; - int const i = inset.linuxdoc(buf, os); + int const i = inset.linuxdoc(buf, os, runparams); os << "\n"; return i; } -int InsetFloat::docbook(Buffer const & buf, ostream & os, bool mixcont) const +int InsetFloat::docbook(Buffer const & buf, ostream & os, + LatexRunParams const & runparams) const { os << '<' << params_.type << '>'; - int const i = inset.docbook(buf, os, mixcont); + int const i = inset.docbook(buf, os, runparams); os << "'; return i; diff --git a/src/insets/insetfloat.h b/src/insets/insetfloat.h index 8691c61af5..4420dcf661 100644 --- a/src/insets/insetfloat.h +++ b/src/insets/insetfloat.h @@ -58,9 +58,11 @@ public: int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; /// - int linuxdoc(Buffer const &, std::ostream &) const; + int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int docbook(Buffer const &, std::ostream &, bool mixcont) const; + int docbook(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// std::string const editMessage() const; /// diff --git a/src/insets/insetfloatlist.C b/src/insets/insetfloatlist.C index 2eaa33bfaf..33b182c321 100644 --- a/src/insets/insetfloatlist.C +++ b/src/insets/insetfloatlist.C @@ -169,7 +169,7 @@ int InsetFloatList::latex(Buffer const & buf, ostream & os, } -int InsetFloatList::ascii(Buffer const & buffer, ostream & os, int) const +int InsetFloatList::ascii(Buffer const & buffer, ostream & os, LatexRunParams const &) const { os << getScreenLabel(buffer) << "\n\n"; diff --git a/src/insets/insetfloatlist.h b/src/insets/insetfloatlist.h index 387ae14d9f..f3f0d20c3d 100644 --- a/src/insets/insetfloatlist.h +++ b/src/insets/insetfloatlist.h @@ -49,11 +49,14 @@ public: int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; /// - int linuxdoc(Buffer const &, std::ostream &) const { return 0; } + int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const { return 0; } /// - int docbook(Buffer const &, std::ostream &, bool) const { return 0; } + int docbook(Buffer const &, std::ostream &, + LatexRunParams const &) const { return 0; } /// - int ascii(Buffer const &, std::ostream &, int linelen) const; + int ascii(Buffer const &, std::ostream &, + LatexRunParams const & runparams) const; /// void validate(LaTeXFeatures & features) const; protected: diff --git a/src/insets/insetfoot.C b/src/insets/insetfoot.C index 46a2caa7cf..c3937a0572 100644 --- a/src/insets/insetfoot.C +++ b/src/insets/insetfoot.C @@ -72,10 +72,11 @@ int InsetFoot::latex(Buffer const & buf, ostream & os, } -int InsetFoot::docbook(Buffer const & buf, ostream & os, bool mixcont) const +int InsetFoot::docbook(Buffer const & buf, ostream & os, + LatexRunParams const & runparams) const { os << ""; - int const i = inset.docbook(buf, os, mixcont); + int const i = inset.docbook(buf, os, runparams); os << ""; return i; diff --git a/src/insets/insetfoot.h b/src/insets/insetfoot.h index 821c73016d..4d0331c79c 100644 --- a/src/insets/insetfoot.h +++ b/src/insets/insetfoot.h @@ -32,7 +32,8 @@ public: int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; /// - int docbook(Buffer const &, std::ostream &, bool mixcont) const; + int docbook(Buffer const &, std::ostream &, + LatexRunParams const & runparams) const; /// std::string const editMessage() const; }; diff --git a/src/insets/insetgraphics.C b/src/insets/insetgraphics.C index 4c3774fb52..26d1a3471c 100644 --- a/src/insets/insetgraphics.C +++ b/src/insets/insetgraphics.C @@ -611,7 +611,8 @@ int InsetGraphics::latex(Buffer const & buf, ostream & os, } -int InsetGraphics::ascii(Buffer const &, ostream & os, int) const +int InsetGraphics::ascii(Buffer const &, ostream & os, + LatexRunParams const &) const { // No graphics in ascii output. Possible to use gifscii to convert // images to ascii approximation. @@ -624,7 +625,8 @@ int InsetGraphics::ascii(Buffer const &, ostream & os, int) const } -int InsetGraphics::linuxdoc(Buffer const & buf, ostream & os) const +int InsetGraphics::linuxdoc(Buffer const & buf, ostream & os, + LatexRunParams const &) const { string const file_name = buf.niceFile() ? params().filename.relFilename(buf.filePath()): @@ -640,7 +642,7 @@ int InsetGraphics::linuxdoc(Buffer const & buf, ostream & os) const // http://en.tldp.org/LDP/LDP-Author-Guide/inserting-pictures.html // See also the docbook guide at http://www.docbook.org/ int InsetGraphics::docbook(Buffer const &, ostream & os, - bool /*mixcont*/) const + LatexRunParams const &) const { // In DocBook v5.0, the graphic tag will be eliminated from DocBook, will // need to switch to MediaObject. However, for now this is sufficient and diff --git a/src/insets/insetgraphics.h b/src/insets/insetgraphics.h index 4284291c27..070a096e9a 100644 --- a/src/insets/insetgraphics.h +++ b/src/insets/insetgraphics.h @@ -48,11 +48,14 @@ public: int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; /// - int ascii(Buffer const &, std::ostream &, int linelen) const; + int ascii(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int linuxdoc(Buffer const &, std::ostream &) const; + int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int docbook(Buffer const &, std::ostream &, bool mixcont) const; + int docbook(Buffer const &, std::ostream &, + LatexRunParams const &) const; /** Tell LyX what the latex features you need i.e. what latex packages you need to be included. diff --git a/src/insets/insethfill.C b/src/insets/insethfill.C index 1b5d7b74d3..f2d9ecc8e4 100644 --- a/src/insets/insethfill.C +++ b/src/insets/insethfill.C @@ -51,21 +51,24 @@ int InsetHFill::latex(Buffer const &, ostream & os, } -int InsetHFill::ascii(Buffer const &, ostream & os, int) const +int InsetHFill::ascii(Buffer const &, ostream & os, + LatexRunParams const &) const { os << '\t'; return 0; } -int InsetHFill::linuxdoc(Buffer const &, std::ostream & os) const +int InsetHFill::linuxdoc(Buffer const &, std::ostream & os, + LatexRunParams const &) const { os << '\n'; return 0; } -int InsetHFill::docbook(Buffer const &, std::ostream & os, bool) const +int InsetHFill::docbook(Buffer const &, std::ostream & os, + LatexRunParams const &) const { os << '\n'; return 0; diff --git a/src/insets/insethfill.h b/src/insets/insethfill.h index e13fd29f8a..4b46d91335 100644 --- a/src/insets/insethfill.h +++ b/src/insets/insethfill.h @@ -31,11 +31,14 @@ public: int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; /// - int ascii(Buffer const &, std::ostream &, int linelen) const; + int ascii(Buffer const &, std::ostream &, + LatexRunParams const & runparams) const; /// - int linuxdoc(Buffer const &, std::ostream &) const; + int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int docbook(Buffer const &, std::ostream &, bool) const; + int docbook(Buffer const &, std::ostream &, + LatexRunParams const & runparams) const; /// void write(Buffer const & buf, std::ostream & os) const; /// We don't need \begin_inset and \end_inset diff --git a/src/insets/insetinclude.C b/src/insets/insetinclude.C index c70207fdc6..a766bd0f8c 100644 --- a/src/insets/insetinclude.C +++ b/src/insets/insetinclude.C @@ -364,7 +364,8 @@ int InsetInclude::latex(Buffer const & buffer, ostream & os, } -int InsetInclude::ascii(Buffer const & buffer, ostream & os, int) const +int InsetInclude::ascii(Buffer const & buffer, ostream & os, + LatexRunParams const &) const { if (isVerbatim(params_)) os << GetFileContents(includedFilename(buffer, params_)); @@ -372,7 +373,8 @@ int InsetInclude::ascii(Buffer const & buffer, ostream & os, int) const } -int InsetInclude::linuxdoc(Buffer const & buffer, ostream & os) const +int InsetInclude::linuxdoc(Buffer const & buffer, ostream & os, + LatexRunParams const & runparams) const { string incfile(params_.getContents()); @@ -399,7 +401,9 @@ int InsetInclude::linuxdoc(Buffer const & buffer, ostream & os) const lyxerr[Debug::LATEX] << "incfile:" << incfile << endl; lyxerr[Debug::LATEX] << "writefile:" << writefile << endl; - tmp->makeLinuxDocFile(writefile, buffer.niceFile(), true); + LatexRunParams runp = runparams; + runp.nice = buffer.niceFile(); + tmp->makeLinuxDocFile(writefile, runp, true); } if (isVerbatim(params_)) { @@ -414,7 +418,7 @@ int InsetInclude::linuxdoc(Buffer const & buffer, ostream & os) const int InsetInclude::docbook(Buffer const & buffer, ostream & os, - bool /*mixcont*/) const + LatexRunParams const & runparams) const { string incfile(params_.getContents()); @@ -440,7 +444,9 @@ int InsetInclude::docbook(Buffer const & buffer, ostream & os, lyxerr[Debug::LATEX] << "incfile:" << incfile << endl; lyxerr[Debug::LATEX] << "writefile:" << writefile << endl; - tmp->makeDocBookFile(writefile, buffer.niceFile(), true); + LatexRunParams runp = runparams; + runp.nice = buffer.niceFile(); + tmp->makeDocBookFile(writefile, runp, true); } if (isVerbatim(params_)) { diff --git a/src/insets/insetinclude.h b/src/insets/insetinclude.h index 675811c766..79d52ebd5b 100644 --- a/src/insets/insetinclude.h +++ b/src/insets/insetinclude.h @@ -66,13 +66,17 @@ public: /// void read(Buffer const &, LyXLex &); /// - int latex(Buffer const &, std::ostream &, LatexRunParams const &) const; + int latex(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int ascii(Buffer const &, std::ostream &, int linelen) const; + int ascii(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int linuxdoc(Buffer const &, std::ostream &) const; + int linuxdoc(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// - int docbook(Buffer const &, std::ostream &, bool mixcont) const; + int docbook(Buffer const &, std::ostream &, + LatexRunParams const &) const; /// void validate(LaTeXFeatures &) const; /// diff --git a/src/insets/insetindex.C b/src/insets/insetindex.C index f708f3360c..47a7e56d33 100644 --- a/src/insets/insetindex.C +++ b/src/insets/insetindex.C @@ -76,7 +76,8 @@ InsetIndex::priv_dispatch(FuncRequest const & cmd, } -int InsetIndex::docbook(Buffer const &, ostream & os, bool) const +int InsetIndex::docbook(Buffer const &, ostream & os, + LatexRunParams const &) const { os << "" << getContents() << ""; diff --git a/src/insets/insetindex.h b/src/insets/insetindex.h index d30319586a..01147da850 100644 --- a/src/insets/insetindex.h +++ b/src/insets/insetindex.h @@ -36,7 +36,8 @@ public: /// InsetOld::Code lyxCode() const; /// - int docbook(Buffer const &, std::ostream &, bool mixcont) const; + int docbook(Buffer const &, std::ostream &, + LatexRunParams const &) const; protected: /// virtual diff --git a/src/insets/insetlabel.C b/src/insets/insetlabel.C index 343b241d8e..4907c7075b 100644 --- a/src/insets/insetlabel.C +++ b/src/insets/insetlabel.C @@ -102,21 +102,24 @@ int InsetLabel::latex(Buffer const &, ostream & os, } -int InsetLabel::ascii(Buffer const &, ostream & os, int) const +int InsetLabel::ascii(Buffer const &, ostream & os, + LatexRunParams const &) const { os << '<' << getContents() << '>'; return 0; } -int InsetLabel::linuxdoc(Buffer const &, ostream & os) const +int InsetLabel::linuxdoc(Buffer const &, ostream & os, + LatexRunParams const &) const { os << "