LibLine: Quit event loop when an error occurs on update

Previously we were crashing, which was excessive, if we can't read
anymore, we should just return with an error.
This commit is contained in:
Ali Mohammad Pur 2023-01-31 22:02:06 +03:30 committed by Ali Mohammad Pur
parent ce6636e78e
commit c045d09840
Notes: sideshowbarker 2024-07-17 00:57:58 +09:00

View file

@ -749,9 +749,17 @@ auto Editor::get_line(DeprecatedString const& prompt) -> Result<DeprecatedString
m_notifier = Core::Notifier::construct(STDIN_FILENO, Core::Notifier::Read);
m_notifier->on_ready_to_read = [&] { try_update_once().release_value_but_fixme_should_propagate_errors(); };
if (!m_incomplete_data.is_empty())
deferred_invoke([&] { try_update_once().release_value_but_fixme_should_propagate_errors(); });
m_notifier->on_ready_to_read = [&] {
if (try_update_once().is_error())
loop.quit(Exit);
};
if (!m_incomplete_data.is_empty()) {
deferred_invoke([&] {
if (try_update_once().is_error())
loop.quit(Exit);
});
}
if (loop.exec() == Retry)
return get_line(prompt);