From 9bf250c8d1bc8c2869fb107e4a3fdabc8cc9deb3 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Tue, 22 Jul 2025 15:38:27 +0200 Subject: [PATCH] LibLine: Correctly handle consumed code points in Editor We should not compare code point offsets to byte offsets, but compare the consumed code points to the input's length expressed in code points instead. Relates to #5547. --- Libraries/LibLine/Editor.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Libraries/LibLine/Editor.cpp b/Libraries/LibLine/Editor.cpp index 1b2beb9139f..500a8010169 100644 --- a/Libraries/LibLine/Editor.cpp +++ b/Libraries/LibLine/Editor.cpp @@ -1269,12 +1269,11 @@ ErrorOr Editor::handle_read_event() insert(code_point); } - if (consumed_code_points == valid_bytes) { + if (consumed_code_points == input_view.length()) { m_incomplete_data.clear(); } else { auto bytes_to_drop = input_view.byte_offset_of(consumed_code_points + 1); - for (size_t i = 0; i < bytes_to_drop; ++i) - m_incomplete_data.take_first(); + m_incomplete_data.remove(0, bytes_to_drop); } if (!m_incomplete_data.is_empty() && !m_finish)