From: Enrico Forestieri Date: Wed, 16 Sep 2009 20:50:40 +0000 (+0000) Subject: Properly reset the stream encoding after an environment. Fixes bug #6216. X-Git-Tag: 2.0.0~5497 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=2245f82f96ef236724fdda53511274ae5250f085;p=lyx.git Properly reset the stream encoding after an environment. Fixes bug #6216. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31392 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp index decef1348d..6ad82dce59 100644 --- a/src/Paragraph.cpp +++ b/src/Paragraph.cpp @@ -2187,8 +2187,12 @@ bool Paragraph::latex(BufferParams const & bparams, return_value = false; } - if (allowcust && d->endTeXParParams(bparams, os, texrow, runparams)) + if (allowcust && d->endTeXParParams(bparams, os, texrow, runparams) + && runparams.encoding != prev_encoding) { runparams.encoding = prev_encoding; + if (!bparams.useXetex) + os << setEncoding(prev_encoding->iconvName()); + } LYXERR(Debug::LATEX, "Paragraph::latex... done " << this); return return_value; diff --git a/src/output_latex.cpp b/src/output_latex.cpp index 2f4e765eba..d40874e041 100644 --- a/src/output_latex.cpp +++ b/src/output_latex.cpp @@ -252,14 +252,22 @@ TeXEnvironment(Buffer const & buf, os << "\\end{" << from_ascii(style.latexname()) << "}\n"; texrow.newline(); prev_env_language_ = par_language; - runparams.encoding = prev_encoding; + if (runparams.encoding != prev_encoding) { + runparams.encoding = prev_encoding; + if (!bparams.useXetex) + os << setEncoding(prev_encoding->iconvName()); + } } if (leftindent_open) { os << "\\end{LyXParagraphLeftIndent}\n"; texrow.newline(); prev_env_language_ = par_language; - runparams.encoding = prev_encoding; + if (runparams.encoding != prev_encoding) { + runparams.encoding = prev_encoding; + if (!bparams.useXetex) + os << setEncoding(prev_encoding->iconvName()); + } } if (par != paragraphs.end()) @@ -589,7 +597,11 @@ ParagraphList::const_iterator TeXOnePar(Buffer const & buf, os << "\\par}"; } else if (is_command) { os << '}'; - runparams.encoding = prev_encoding; + if (runparams.encoding != prev_encoding) { + runparams.encoding = prev_encoding; + if (!bparams.useXetex) + os << setEncoding(prev_encoding->iconvName()); + } } bool pending_newline = false;