X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBuffer.cpp;h=445503993eae7ad536bd105b1649645d89c93ed8;hb=d9082639080b9de993742bd352f92e5183058cf5;hp=5ef7c91c9d09d42345c1fdd2e571bc37150a4bee;hpb=fc80eba3701c10d2fe14d10969d5e0db020886bf;p=lyx.git diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 5ef7c91c9d..445503993e 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -4056,18 +4056,29 @@ unique_ptr Buffer::getSourceCode(odocstream & os, string const & format, // Some macros rely on font encoding runparams.main_fontenc = params().main_font_encoding(); + // Use the right wrapping for the comment at the beginning of the generated + // snippet, so that it is either valid LaTeX or valid XML (including HTML and DocBook). + docstring comment_start = from_ascii("% "); + docstring comment_end = from_ascii(""); + if (runparams.flavor == Flavor::Html || runparams.flavor == Flavor::DocBook5) { + comment_start = from_ascii(""); + } + if (output == CurrentParagraph) { runparams.par_begin = par_begin; runparams.par_end = par_end; if (par_begin + 1 == par_end) { - os << "% " + os << comment_start << bformat(_("Preview source code for paragraph %1$d"), par_begin) + << comment_end << "\n\n"; } else { - os << "% " + os << comment_start << bformat(_("Preview source code from paragraph %1$s to %2$s"), convert(par_begin), convert(par_end - 1)) + << comment_end << "\n\n"; } // output paragraphs @@ -4117,13 +4128,14 @@ unique_ptr Buffer::getSourceCode(odocstream & os, string const & format, d->ignore_parent = false; } } else { - os << "% "; + os << comment_start; if (output == FullSource) os << _("Preview source code"); else if (output == OnlyPreamble) os << _("Preview preamble"); else if (output == OnlyBody) os << _("Preview body"); + os << comment_end; os << "\n\n"; if (runparams.flavor == Flavor::LyX) { ostringstream ods; @@ -4137,9 +4149,9 @@ unique_ptr Buffer::getSourceCode(odocstream & os, string const & format, } else if (runparams.flavor == Flavor::Html) { writeLyXHTMLSource(os, runparams, output); } else if (runparams.flavor == Flavor::Text) { - if (output == OnlyPreamble) { + if (output == OnlyPreamble) os << "% "<< _("Plain text does not have a preamble."); - } else + else writePlaintextFile(*this, os, runparams); } else if (runparams.flavor == Flavor::DocBook5) { writeDocBookSource(os, runparams, output);