Forráskód Böngészése

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.
Ali Mohammad Pur 2 éve
szülő
commit
c045d09840
1 módosított fájl, 11 hozzáadás és 3 törlés
  1. 11 3
      Userland/Libraries/LibLine/Editor.cpp

+ 11 - 3
Userland/Libraries/LibLine/Editor.cpp

@@ -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);