https://github.com/imkiva updated 
https://github.com/llvm/llvm-project/pull/165830

>From a5deb5792e8b9f4b1004addfe6cc326c8cf1eb12 Mon Sep 17 00:00:00 2001
From: imkiva <[email protected]>
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 <[email protected]>
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);

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to