Fix crash with polyglossia and intitle commands when lang_auto_end is false

(cherry picked from commit ed44bc9b12)
This commit is contained in:
Juergen Spitzmueller 2019-11-21 08:38:21 +01:00
parent bf82c51f25
commit 631e42f68b
2 changed files with 14 additions and 1 deletions

View File

@ -749,6 +749,10 @@ void TeXOnePar(Buffer const & buf,
? 0 : &paragraphs.at(pit + 1);
bool const intitle_command = style.intitle && style.latextype == LATEX_COMMAND;
// 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);
@ -1367,6 +1371,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);
@ -1556,7 +1564,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();
}

View File

@ -61,6 +61,9 @@ What's new
- Prevent crash due to unencodable path (bug 11688).
- Fix crash with polyglossia when the "Auto End" language preference setting
is off and titles are used.
- (Re-)fix problems with activated equal sign and graphic options in Turkish
and Latin documents (bug 2005).