Skip to content

Commit a181b0f

Browse files
jankratochvilmemfrob
authored andcommitted
[lldb] Fix editline unicode on Linux
Based on: [lldb-dev] proposed change to remove conditional WCHAR support in libedit wrapper https://lists.llvm.org/pipermail/lldb-dev/2021-July/016961.html There is already setlocale in lldb/source/Core/IOHandlerCursesGUI.cpp but that does not apply for Editline GUI editing. Unaware how to make automated test for this, it requires pty. Reviewed By: teemperor Differential Revision: https://reviews.llvm.org/D105779
1 parent 85f843b commit a181b0f

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

lldb/source/Core/IOHandlerCursesGUI.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@
6767
#include <cassert>
6868
#include <cctype>
6969
#include <cerrno>
70-
#include <clocale>
7170
#include <cstdint>
7271
#include <cstdio>
7372
#include <cstring>
@@ -2627,8 +2626,6 @@ class Application {
26272626
}
26282627

26292628
void Initialize() {
2630-
::setlocale(LC_ALL, "");
2631-
::setlocale(LC_CTYPE, "");
26322629
m_screen = ::newterm(nullptr, m_out, m_in);
26332630
::start_color();
26342631
::curs_set(0);

lldb/tools/driver/Driver.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include <algorithm>
3232
#include <atomic>
3333
#include <bitset>
34+
#include <clocale>
3435
#include <csignal>
3536
#include <string>
3637
#include <thread>
@@ -867,6 +868,10 @@ static llvm::Optional<int> InitializeReproducer(llvm::StringRef argv0,
867868
}
868869

869870
int main(int argc, char const *argv[]) {
871+
// Editline uses for example iswprint which is dependent on LC_CTYPE.
872+
std::setlocale(LC_ALL, "");
873+
std::setlocale(LC_CTYPE, "");
874+
870875
// Setup LLVM signal handlers and make sure we call llvm_shutdown() on
871876
// destruction.
872877
llvm::InitLLVM IL(argc, argv, /*InstallPipeSignalExitHandler=*/false);

0 commit comments

Comments
 (0)