commit 480937a103708a6510ae24c2ee91cd1459d67104
Author: Günter Milde <[email protected]>
Date:   Mon Nov 9 11:45:01 2015 +0100

    Reset encoding after insets and environments also for LuaTeX with TeX fonts.
    
    With inputenc == "auto" or "default", the encoding changes with
    the language and must be reset after an eventual language switch in insets
    or environments (see #6216).
    
    However, whether we need to do this does not depend on 8-bit TeX vs. LuaTeX
    but on the possible use of more than one encoding for the document.
    With "nonTeXFonts", the encoding is utf8,
    LuaTeX with TeX fonts requires encoding handling similar to 8-bit TeX.
    
    (Additionally, the value of "params.inputenc" could be tested: if it is
    not "auto" or "default", we have just one common encoding and could skip
    the reset as well.) Not sure how much time this saves, though.

diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index 6066812..c259121 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -2567,7 +2567,7 @@ void Paragraph::latex(BufferParams const & bparams,
        if (allowcust && d->endTeXParParams(bparams, os, runparams)
            && runparams.encoding != prev_encoding) {
                runparams.encoding = prev_encoding;
-               if (!runparams.isFullUnicode()) // FIXME: test for UseTeXFonts
+               if (!bparams.useNonTeXFonts)
                        os << setEncoding(prev_encoding->iconvName());
        }
 
diff --git a/src/output_latex.cpp b/src/output_latex.cpp
index 3145025..6b66ad8 100644
--- a/src/output_latex.cpp
+++ b/src/output_latex.cpp
@@ -235,6 +235,7 @@ static void finishEnvironment(otexstream & os, OutputParams 
const & runparams,
                              TeXEnvironmentData const & data)
 {
        OutputState * state = getOutputState();
+       // BufferParams const & bparams = buf.params(); // FIXME: for speedup 
shortcut below, would require passing of "buf" as argument
        if (state->open_encoding_ == CJK && data.cjk_nested) {
                // We need to close the encoding even if it does not change
                // to do correct environment nesting
@@ -248,7 +249,7 @@ static void finishEnvironment(otexstream & os, OutputParams 
const & runparams,
                state->prev_env_language_ = data.par_language;
                if (runparams.encoding != data.prev_encoding) {
                        runparams.encoding = data.prev_encoding;
-                       if (!runparams.isFullUnicode()) // FIXME: test for 
UseTeXFonts
+                       //if (!bparams.useNonTeXFonts) // FIXME just for 
speedup, would require passing of "buf" as argument
                                os << 
setEncoding(data.prev_encoding->iconvName());
                }
        }
@@ -258,7 +259,7 @@ static void finishEnvironment(otexstream & os, OutputParams 
const & runparams,
                state->prev_env_language_ = data.par_language;
                if (runparams.encoding != data.prev_encoding) {
                        runparams.encoding = data.prev_encoding;
-                       if (!runparams.isFullUnicode()) // FIXME: test for 
UseTeXFonts
+                       //if (!bparams.useNonTeXFonts) //FIXME just for speedup
                                os << 
setEncoding(data.prev_encoding->iconvName());
                }
        }
@@ -883,7 +884,7 @@ void TeXOnePar(Buffer const & buf,
                        latexArgInsets(par, os, runparams, 
style.postcommandargs(), "post:");
                if (runparams.encoding != prev_encoding) {
                        runparams.encoding = prev_encoding;
-                       if (!runparams.isFullUnicode()) // FIXME: test for 
UseTeXFonts
+                       if (!bparams.useNonTeXFonts)
                                os << setEncoding(prev_encoding->iconvName());
                }
        }
@@ -1048,7 +1049,7 @@ void TeXOnePar(Buffer const & buf,
        if (runparams.isLastPar && runparams_in.local_font != 0
            && runparams_in.encoding != 
runparams_in.local_font->language()->encoding()
            && (bparams.inputenc == "auto" || bparams.inputenc == "default")
-           && (!runparams.isFullUnicode())) { // FIXME: test for UseTeXFonts
+           && !bparams.useNonTeXFonts) {
                runparams_in.encoding = 
runparams_in.local_font->language()->encoding();
                os << setEncoding(runparams_in.encoding->iconvName());
        }

Reply via email to