[LyX/master] Protect \inputencoding in i18npreamble

Juergen Spitzmueller spitz at lyx.org
Sun Oct 6 14:24:11 UTC 2024


commit a16e4b206a429ad2ef562446b2e535779e4905e5
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Sun Oct 6 16:23:05 2024 +0200

    Protect \inputencoding in i18npreamble
    
    as it might end up in a moving argument (\lstlistlistingname in book
    classes).
    
    See https://marc.info/?l=lyx-devel&m=172812937932740
---
 src/LaTeXFeatures.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp
index 7ce7966bba..dc939f0921 100644
--- a/src/LaTeXFeatures.cpp
+++ b/src/LaTeXFeatures.cpp
@@ -2040,7 +2040,9 @@ docstring const i18npreamble(docstring const & templ, Language const * lang,
 		else if (ascii_fallback)
 			translated = to_ascii(testenc->latexString(name).first);
 		else
-			translated = "\\inputencoding{" + texenc + "}"
+			// We need to \protect this as it can end up in a moving argument
+			// (\lstlistlistingname in book classes goes to \@mkboth via \contentsname)
+			translated = "\\protect\\inputencoding{" + texenc + "}"
 				+ s1 + langenc + s2 + to_utf8(name)
 				+ s1 + bufenc + s2;
 		preamble = subst(preamble, sub.str(), translated);


More information about the lyx-cvs mailing list