X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Foutput_plaintext.cpp;h=2dfc836f1aceb4906cbc596e532cb63bcbdc65dd;hb=75ffcc8e866de04b076c81d78003a86efca98e4e;hp=d58c44a7964f42fdc5e75e5cb75451c1e0aa609c;hpb=58550435998be842c6aa996c1abdd318bd95cdba;p=lyx.git diff --git a/src/output_plaintext.cpp b/src/output_plaintext.cpp index d58c44a796..2dfc836f1a 100644 --- a/src/output_plaintext.cpp +++ b/src/output_plaintext.cpp @@ -41,6 +41,7 @@ void writePlaintextFile(Buffer const & buf, FileName const & fname, // make sure we are ready to export buf.updateBuffer(); buf.updateMacroInstances(OutputUpdate); + buf.makeCitationLabels(); writePlaintextFile(buf, ofs, runparams); } @@ -71,11 +72,12 @@ static pair addDepth(int depth, int ldepth) return make_pair(d, docstring(d, ' ')); } + void writePlaintextParagraph(Buffer const & buf, Paragraph const & par, - odocstream & os, + odocstream & ods, OutputParams const & runparams, - bool & ref_printed) + bool & ref_printed, size_t max_length) { int ltype = 0; depth_type ltype_depth = 0; @@ -119,6 +121,7 @@ void writePlaintextParagraph(Buffer const & buf, string::size_type currlinelen = 0; + odocstringstream os; os << docstring(depth * 2, ' '); currlinelen += depth * 2; @@ -182,6 +185,9 @@ void writePlaintextParagraph(Buffer const & buf, if (par.isDeleted(i)) continue; + if (os.str().size() > max_length) + break; + char_type c = par.getUChar(buf.params(), i); if (par.isInset(i) || c == ' ') { @@ -200,7 +206,7 @@ void writePlaintextParagraph(Buffer const & buf, if (par.isInset(i)) { OutputParams rp = runparams; rp.depth = par.params().depth(); - int len = par.getInset(i)->plaintext(os, rp); + int len = par.getInset(i)->plaintext(os, rp, max_length); if (len >= Inset::PLAINTEXT_NEWLINE) currlinelen = len - Inset::PLAINTEXT_NEWLINE; else @@ -236,6 +242,7 @@ void writePlaintextParagraph(Buffer const & buf, } os << word; } + ods << os.str(); }