From ed44bc9b12c0385eccf9323159365ae96b1b4f19 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Thu, 21 Nov 2019 08:38:21 +0100 Subject: [PATCH] Fix crash with polyglossia and intitle commands when lang_auto_end is false --- src/output_latex.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/output_latex.cpp b/src/output_latex.cpp index a349cbdccb..db56ff608b 100644 --- a/src/output_latex.cpp +++ b/src/output_latex.cpp @@ -781,6 +781,10 @@ void TeXOnePar(Buffer const & buf, ? nullptr : ¶graphs.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(); } -- 2.39.5