[LyX/master] Properly track switch of direction (#6373)
Juergen Spitzmueller <[email protected]>
| Newsgroups | gmane.editors.lyx.cvs |
|---|---|
| Message-ID | <[email protected]> |
commit 0a6dd54aab97014def7e38c846ebaadba6334d52 Author: Juergen Spitzmueller <[email protected]> Date: Thu Mar 19 11:43:04 2026 +0100 Properly track switch of direction (#6373) Otherwise we might end with unbalanced braces --- src/output_latex.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/output_latex.cpp b/src/output_latex.cpp index adaf16f782..0ee6bd133b 100644 --- a/src/output_latex.cpp +++ b/src/output_latex.cpp @@ -61,7 +61,7 @@ enum OpenEncoding { struct OutputState { OutputState() : prev_env_language_(nullptr), open_encoding_(none), - cjk_inherited_(0), nest_level_(0) + cjk_inherited_(0), nest_level_(0), LR_switch_(0) { } Language const * prev_env_language_; @@ -70,6 +70,7 @@ struct OutputState OpenEncoding open_encoding_; int cjk_inherited_; int nest_level_; + int LR_switch_; }; @@ -1117,6 +1118,7 @@ void TeXOnePar(Buffer const & buf, os << "\\R{"; else os << "\\L{"; + ++state->LR_switch_; } // With CJK, the CJK tag has to be closed first (see below) if ((runparams.encoding->package() != Encoding::CJK @@ -1343,7 +1345,9 @@ void TeXOnePar(Buffer const & buf, // as well as for any InTitleCommand (since these set the language locally); // it is also needed if we're within an \L or \R that we may have opened above // (not necessarily in this paragraph) and are about to close. - bool closing_rtl_ltr_environment = !using_begin_end + bool closing_rtl_ltr_environment = + state->LR_switch_ > 0 + && !using_begin_end // not for ArabTeX && (par_language->lang() != "arabic_arabtex" && outer_language->lang() != "arabic_arabtex") @@ -1435,8 +1439,10 @@ void TeXOnePar(Buffer const & buf, } } } - if (closing_rtl_ltr_environment) + if (closing_rtl_ltr_environment) { os << "}"; + --state->LR_switch_; + } // InTitle commands need to be closed after the language has been closed. if (intitle_command) { -- lyx-cvs mailing list [email protected] https://lists.lyx.org/mailman/listinfo/lyx-cvs