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.
This commit is contained in:
Georg Baum 2014-05-19 21:50:34 +02:00
parent 1379c381c3
commit c9fdf37678
2 changed files with 6 additions and 1 deletions

View File

@ -1007,7 +1007,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."));

View File

@ -128,6 +128,8 @@ What's new
- Fix wrong on-screen indentation of a paragraph occurring in some cases.
- Fix keyborad input of cyrillic characters in program listings (bug 9102).
* INTERNALS