[Lldb-commits] [lldb] [LLDB][Editline] empty current line before `el_wgets` (PR #165830)
via lldb-commits
lldb-commits at lists.llvm.org
Sun Nov 2 19:57:39 PST 2025
https://github.com/imkiva updated https://github.com/llvm/llvm-project/pull/165830
>From a5deb5792e8b9f4b1004addfe6cc326c8cf1eb12 Mon Sep 17 00:00:00 2001
From: imkiva <zengtao at iscas.ac.cn>
Date: Fri, 31 Oct 2025 13:41:12 +0800
Subject: [PATCH 1/2] [LLDB][Editline] clear right characters before getLine
---
lldb/source/Host/common/Editline.cpp | 6 ++++++
lldb/test/API/terminal/TestEditline.py | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/lldb/source/Host/common/Editline.cpp b/lldb/source/Host/common/Editline.cpp
index 1b1922e710764..03b442cce973e 100644
--- a/lldb/source/Host/common/Editline.cpp
+++ b/lldb/source/Host/common/Editline.cpp
@@ -1626,6 +1626,12 @@ bool Editline::GetLine(std::string &line, bool &interrupted) {
m_editor_status = EditorStatus::Editing;
m_revert_cursor_index = -1;
+ if (m_locked_output && m_output_stream_sp) {
+ FILE *f = m_locked_output->GetFile().GetStream();
+ fprintf(f, "\r" ANSI_CLEAR_RIGHT);
+ fflush(f);
+ }
+
int count;
auto input = el_wgets(m_editline, &count);
diff --git a/lldb/test/API/terminal/TestEditline.py b/lldb/test/API/terminal/TestEditline.py
index 38f4f34ed740b..4696b1e1b112e 100644
--- a/lldb/test/API/terminal/TestEditline.py
+++ b/lldb/test/API/terminal/TestEditline.py
@@ -94,7 +94,7 @@ def test_prompt_no_color(self):
# after the prompt.
self.child.send("foo")
# Check that there are no escape codes.
- self.child.expect(re.escape("\n(lldb) foo"))
+ self.child.expect(re.escape("\n\r\x1b[K(lldb) foo"))
@skipIfAsan
@skipIfEditlineSupportMissing
>From bf2ef8ed5c3044078645b9c94b482d083f6b5816 Mon Sep 17 00:00:00 2001
From: imkiva <zengtao at iscas.ac.cn>
Date: Mon, 3 Nov 2025 11:57:23 +0800
Subject: [PATCH 2/2] [LLDB][Editline] reviews
---
lldb/source/Host/common/Editline.cpp | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/lldb/source/Host/common/Editline.cpp b/lldb/source/Host/common/Editline.cpp
index 03b442cce973e..e2995b37429fd 100644
--- a/lldb/source/Host/common/Editline.cpp
+++ b/lldb/source/Host/common/Editline.cpp
@@ -1626,11 +1626,8 @@ bool Editline::GetLine(std::string &line, bool &interrupted) {
m_editor_status = EditorStatus::Editing;
m_revert_cursor_index = -1;
- if (m_locked_output && m_output_stream_sp) {
- FILE *f = m_locked_output->GetFile().GetStream();
- fprintf(f, "\r" ANSI_CLEAR_RIGHT);
- fflush(f);
- }
+ lldbassert(m_output_stream_sp);
+ fprintf(m_locked_output->GetFile().GetStream(), "\r" ANSI_CLEAR_RIGHT);
int count;
auto input = el_wgets(m_editline, &count);
More information about the lldb-commits
mailing list