From 35ec98bcb2f478608926143617260745e4c0dc39 Mon Sep 17 00:00:00 2001 From: Georg Baum Date: Mon, 19 May 2014 21:40:11 +0200 Subject: [PATCH] Ugly fix for bug #9102 The real problem is the encoding of latex_language: It is hardcoded to latin1, but InsetListig uses the currently active encoding. Therefore, we cannot tell whether any given character wil be encodable or not, and we should not prevent non-ACII characters. In the future, we need to make the encoding of latex_language dynamic, so that it always represents the currently active encoding. Then, we could do the correct check both for listings and ERT. For now, I simply disabled the encoding check for listings, which also means that bug 9012 might occur in other cases for listings, but this is less important than bug 9102. --- src/Text.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Text.cpp b/src/Text.cpp index 99d9cfb607..bd4e23db0a 100644 --- a/src/Text.cpp +++ b/src/Text.cpp @@ -1008,7 +1008,10 @@ void Text::insertChar(Cursor & cur, char_type c) // Prevent to insert uncodable characters in verbatim and ERT // (workaround for bug 9012) - if (cur.paragraph().isPassThru() && cur.current_font.language()) { + // Don't do it for listings inset, since InsetListings::latex() tries + // to switch to a usable encoding which works in many cases (bug 9102). + if (cur.paragraph().isPassThru() && owner_->lyxCode() != LISTINGS_CODE && + cur.current_font.language()) { Encoding const * e = cur.current_font.language()->encoding(); if (!e->encodable(c)) { cur.message(_("Character is uncodable in verbatim paragraphs.")); -- 2.39.2