[LyX/master] Fix too general application of \cprotect

Juergen Spitzmueller spitz at lyx.org
Wed Aug 12 15:13:41 UTC 2020


commit e3a72156f9eb670006e1e7fb64172d586dfedf32
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Wed Aug 12 17:38:20 2020 +0200

    Fix too general application of \cprotect
---
 src/Paragraph.cpp |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index 3a9b034..8edf2ea 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -1042,10 +1042,15 @@ void Paragraph::Private::latexInset(BufferParams const & bparams,
 	if (open_font && (!inset->inheritFont() || inset->allowMultiPar())) {
 		bool closeLanguage = arabtex
 			|| basefont.isRightToLeft() == running_font.isRightToLeft();
+		InsetText const * textinset = inset->asInsetText();
+		bool const cprotect = textinset
+			? textinset->hasCProtectContent(runparams.moving_arg)
+			  && !textinset->text().isMainText()
+			: false;
 		unsigned int count = running_font.latexWriteStartChanges(os, bparams,
 						      runparams, basefont,
 						      running_font, true,
-						      owner_->needsCProtection(runparams.moving_arg));
+						      cprotect);
 		column += count;
 		// if any font properties were closed, update the running_font,
 		// making sure, however, to leave the language as it was
@@ -2659,9 +2664,14 @@ void Paragraph::latex(BufferParams const & bparams,
 			}
 			otexstringstream ots;
 			if (!multipar_inset) {
+				InsetText const * textinset = inInset().asInsetText();
+				bool const cprotect = textinset
+					? textinset->hasCProtectContent(runparams.moving_arg)
+					  && !textinset->text().isMainText()
+					: false;
 				column += current_font.latexWriteStartChanges(ots, bparams,
 									      runparams, basefont, last_font, false,
-									      needsCProtection(runparams.moving_arg));
+									      cprotect);
 			}
 			// Check again for display math in ulem commands as a
 			// font change may also occur just before a math inset.


More information about the lyx-cvs mailing list