commit ed44bc9b12c0385eccf9323159365ae96b1b4f19
Author: Juergen Spitzmueller <[email protected]>
Date:   Thu Nov 21 08:38:21 2019 +0100

    Fix crash with polyglossia and intitle commands when lang_auto_end is false
---
 src/output_latex.cpp |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/src/output_latex.cpp b/src/output_latex.cpp
index a349cbd..db56ff6 100644
--- a/src/output_latex.cpp
+++ b/src/output_latex.cpp
@@ -781,6 +781,10 @@ void TeXOnePar(Buffer const & buf,
                ? nullptr : &paragraphs.at(pit + 1);
 
        bool const intitle_command = style.intitle && style.isCommand();
+       // Intitle commands switch languages locally, thus increase
+       // language nesting level
+       if (intitle_command)
+               state->nest_level_ += 1;
 
        if (style.pass_thru) {
                Font const outerfont = text.outerFont(pit);
@@ -1454,6 +1458,10 @@ void TeXOnePar(Buffer const & buf,
                }
        }
 
+       // Reset language nesting level after intitle command
+       if (intitle_command)
+               state->nest_level_ -= 1;
+
        LYXERR(Debug::LATEX, "TeXOnePar for paragraph " << pit << " done; ptr "
                << &par << " next " << nextpar);
 
@@ -1645,7 +1653,9 @@ void latexParagraphs(Buffer const & buf,
                                        "$$lang",
                                        mainlang))
                        << '\n';
-               if (using_begin_end)
+               // If we have language_auto_begin, the stack will
+               // already be empty, nothing to pop()
+               if (using_begin_end && !lyxrc.language_auto_begin)
                        popLanguageName();
        }
 
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to