From 7843287d8992989e0235175cd1b4fbdb2bc5d15e Mon Sep 17 00:00:00 2001 From: brapru Date: Thu, 3 Jun 2021 22:50:42 -0400 Subject: [PATCH] LibLine: Actually cancel the search editor on Ctl-C When the search editor calls on really_quit_event_loop to cancel the search, the command loaded in m_buffer would actually execute because really_quit_event_loop sends a new line character and then afterwards clears the buffer. By using end_search prior to exiting the event loop, this patch will appropriately clear the buffer, not execute any commands, and preserve the original loaded buffer after returning from a canceled search. --- Userland/Libraries/LibLine/InternalFunctions.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Userland/Libraries/LibLine/InternalFunctions.cpp b/Userland/Libraries/LibLine/InternalFunctions.cpp index b94f8d4067..834335d46c 100644 --- a/Userland/Libraries/LibLine/InternalFunctions.cpp +++ b/Userland/Libraries/LibLine/InternalFunctions.cpp @@ -264,6 +264,7 @@ void Editor::enter_search() m_search_editor->register_key_input_callback(ctrl('C'), [this](Editor& search_editor) { search_editor.finish(); m_reset_buffer_on_search_end = true; + search_editor.end_search(); search_editor.deferred_invoke([&search_editor](auto&) { search_editor.really_quit_event_loop(); }); return false; });