X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Foutput_plaintext.C;h=3a99a8eb2aba293206d330b3ababc7ac43bdddf7;hb=37d42d45f3f4a5d3e916a080af50b37ae4a9d118;hp=835ef66d80bfa995b96abbed166e61c6f89205f0;hpb=cd424d78530c9e38502ee7f989ef5c426c97ad61;p=lyx.git diff --git a/src/output_plaintext.C b/src/output_plaintext.C index 835ef66d80..3a99a8eb2a 100644 --- a/src/output_plaintext.C +++ b/src/output_plaintext.C @@ -19,13 +19,12 @@ #include "output.h" #include "outputparams.h" #include "paragraph.h" +#include "ParagraphList_fwd.h" #include "ParagraphParameters.h" -#include "support/gzstream.h" #include "support/lstrings.h" -#ifdef HAVE_LOCALE -#endif +#include using lyx::support::ascii_lowercase; using lyx::support::compare_ascii_no_case; @@ -51,17 +50,16 @@ void writeFileAscii(Buffer const & buf, } -void writeFileAscii(Buffer const & buf, - ostream & os, - OutputParams const & runparams) +void writeFileAscii(Buffer const & buf, ostream & os, + OutputParams const & runparams) { - Buffer & tmp = const_cast(buf); - ParagraphList par = const_cast(tmp.paragraphs()); - ParagraphList::iterator beg = par.begin(); - ParagraphList::iterator end = par.end(); - ParagraphList::iterator it = beg; + bool ref_printed = false; + ParagraphList const par = buf.paragraphs(); + ParagraphList::const_iterator beg = par.begin(); + ParagraphList::const_iterator end = par.end(); + ParagraphList::const_iterator it = beg; for (; it != end; ++it) { - asciiParagraph(buf, *it, os, runparams, it == beg); + asciiParagraph(buf, *it, os, runparams, ref_printed); } os << "\n"; } @@ -84,11 +82,10 @@ void asciiParagraph(Buffer const & buf, Paragraph const & par, ostream & os, OutputParams const & runparams, - bool noparbreak) + bool & ref_printed) { int ltype = 0; Paragraph::depth_type ltype_depth = 0; - bool ref_printed = false; Paragraph::depth_type depth = par.params().depth(); // First write the layout @@ -135,56 +132,55 @@ void asciiParagraph(Buffer const & buf, string::size_type currlinelen = 0; - if (!noparbreak) { - if (runparams.linelen > 0) - os << "\n\n"; - - os << 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 (runparams.linelen > 0) + os << "\n\n"; + + os << string(depth * 2, ' '); + currlinelen += depth * 2; + + //-- + // we should probably change to the paragraph language in the + // gettext here (if possible) so that strings are output in + // the correct language! (20012712 Jug) + //-- + switch (ltype) { + case 0: // Standard + case 4: // (Sub)Paragraph + case 5: // Description + break; + + case 6: // Abstract + if (runparams.linelen > 0) { + os << _("Abstract") << "\n\n"; + currlinelen = 0; + } else { + string const abst = _("Abstract: "); + os << abst; + currlinelen += abst.length(); + } + break; + + case 7: // Bibliography + if (!ref_printed) { if (runparams.linelen > 0) { - os << _("Abstract") << "\n\n"; + os << _("References") << "\n\n"; currlinelen = 0; } else { - string const abst = _("Abstract: "); - os << abst; - currlinelen += abst.length(); - } - break; - case 7: // Bibliography - if (!ref_printed) { - if (runparams.linelen > 0) { - os << _("References") << "\n\n"; - currlinelen = 0; - } else { - string const refs = _("References: "); - os << refs; - currlinelen += refs.length(); - } - - ref_printed = true; + string const refs = _("References: "); + os << refs; + currlinelen += refs.length(); } - break; - default: - { - string const parlab = par.params().labelString(); - os << parlab << ' '; - currlinelen += parlab.length() + 1; + ref_printed = true; } break; - } + default: { + string const label = par.params().labelString(); + os << label << ' '; + currlinelen += label.length() + 1; + break; + } + } if (!currlinelen) { @@ -202,59 +198,52 @@ void asciiParagraph(Buffer const & buf, for (pos_type i = 0; i < par.size(); ++i) { char c = par.getUChar(buf.params(), i); switch (c) { - case Paragraph::META_INSET: - { - InsetOld const * inset = par.getInset(i); - if (inset) { - if (runparams.linelen > 0) { - os << word; - currlinelen += word.length(); - word.erase(); - } - if (inset->plaintext(buf, os, runparams)) { - // to be sure it breaks paragraph - currlinelen += runparams.linelen; - } + case Paragraph::META_INSET: { + InsetBase const * inset = par.getInset(i); + if (runparams.linelen > 0) { + os << word; + currlinelen += word.length(); + word.erase(); + } + OutputParams rp = runparams; + rp.depth = par.params().depth(); + if (inset->plaintext(buf, os, rp)) { + // to be sure it breaks paragraph + currlinelen += runparams.linelen; } + break; } - break; - default: - if (c == ' ') { - if (runparams.linelen > 0 && - currlinelen + word.length() > runparams.linelen - 10) { - os << "\n"; - pair p = addDepth(depth, ltype_depth); - os << p.second; - currlinelen = p.first; - } - - os << word << ' '; - currlinelen += word.length() + 1; - word.erase(); + case ' ': + if (runparams.linelen > 0 && + currlinelen + word.length() > runparams.linelen - 10) { + os << "\n"; + pair p = addDepth(depth, ltype_depth); + os << p.second; + currlinelen = p.first; + } + os << word << ' '; + currlinelen += word.length() + 1; + word.erase(); + break; - } else { - if (c != '\0') { - word += c; - } else { - lyxerr[Debug::INFO] << - "writeAsciiFile: NULL char in structure." << endl; - } - if ((runparams.linelen > 0) && - (currlinelen + word.length()) > runparams.linelen) - { - os << "\n"; - - pair p = - addDepth(depth, ltype_depth); - os << p.second; - currlinelen = p.first; - } + case '\0': + lyxerr[Debug::INFO] << + "writeAsciiFile: NULL char in structure." << endl; + break; + + default: + word += c; + if (runparams.linelen > 0 && + currlinelen + word.length() > runparams.linelen) + { + os << "\n"; + pair p = addDepth(depth, ltype_depth); + os << p.second; + currlinelen = p.first; } break; } } os << word; } - -