This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG698e2106362a: [LLDB][GUI] Fix text field incorrect key
handling (authored by OmarEmaraDev, committed by clayborg).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D108327/new/
https://reviews.llvm.org/D108327
Files:
lldb/source/Core/IOHandlerCursesGUI.cpp
Index: lldb/source/Core/IOHandlerCursesGUI.cpp
===================================================================
--- lldb/source/Core/IOHandlerCursesGUI.cpp
+++ lldb/source/Core/IOHandlerCursesGUI.cpp
@@ -1208,7 +1208,13 @@
// True if the key represents a char that can be inserted in the field
// content, false otherwise.
- virtual bool IsAcceptableChar(int key) { return isprint(key); }
+ virtual bool IsAcceptableChar(int key) {
+ // The behavior of isprint is undefined when the value is not representable
+ // as an unsigned char. So explicitly check for non-ascii key codes.
+ if (key > 127)
+ return false;
+ return isprint(key);
+ }
HandleCharResult FieldDelegateHandleChar(int key) override {
if (IsAcceptableChar(key)) {
Index: lldb/source/Core/IOHandlerCursesGUI.cpp
===================================================================
--- lldb/source/Core/IOHandlerCursesGUI.cpp
+++ lldb/source/Core/IOHandlerCursesGUI.cpp
@@ -1208,7 +1208,13 @@
// True if the key represents a char that can be inserted in the field
// content, false otherwise.
- virtual bool IsAcceptableChar(int key) { return isprint(key); }
+ virtual bool IsAcceptableChar(int key) {
+ // The behavior of isprint is undefined when the value is not representable
+ // as an unsigned char. So explicitly check for non-ascii key codes.
+ if (key > 127)
+ return false;
+ return isprint(key);
+ }
HandleCharResult FieldDelegateHandleChar(int key) override {
if (IsAcceptableChar(key)) {
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits