commit 4ba17c90a03fc5b50612a20604eba426f7dedcf6
Author: Juergen Spitzmueller <[email protected]>
Date: Tue May 5 14:23:24 2015 +0200
Do not insert non-rpintable characters (such as ASCII control characters)
Fixes: #5704.
diff --git a/src/frontends/qt4/GuiApplication.cpp
b/src/frontends/qt4/GuiApplication.cpp
index 4822e59..160df4a 100644
--- a/src/frontends/qt4/GuiApplication.cpp
+++ b/src/frontends/qt4/GuiApplication.cpp
@@ -69,6 +69,7 @@
#include "support/lassert.h"
#include "support/lstrings.h"
#include "support/lyxalgo.h" // sorted
+#include "support/textutils.h"
#include "support/Messages.h"
#include "support/os.h"
#include "support/Package.h"
@@ -2131,6 +2132,12 @@ void GuiApplication::processKeySym(KeySymbol const &
keysym, KeyModifier state)
// if it's normal insertable text not already covered
// by a binding
if (keysym.isText() && d->keyseq.length() == 1) {
+ // Non-printable characters (such as ASCII control
characters)
+ // must not be inserted (#5704)
+ if (!isPrintable(encoded_last_key)) {
+ LYXERR(Debug::KEY, "Non-printable character!
Omitting.");
+ return;
+ }
LYXERR(Debug::KEY, "isText() is true, inserting.");
func = FuncRequest(LFUN_SELF_INSERT,
FuncRequest::KEYBOARD);