From ad899b179fbdb3e1ac1e80be2c09b612c031def5 Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Sat, 3 Jun 2023 00:56:45 +0200 Subject: [PATCH] LibLine: Ignore ENOENT errors when loading old history A missing history file is just an empty history, so ignore that error and replace it with an empty array. This regressed in f93ee3142d2ca4329d989dd917fc27c912b60806. --- Userland/Libraries/LibLine/Editor.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibLine/Editor.cpp b/Userland/Libraries/LibLine/Editor.cpp index 841c41269f..6b37a30ac9 100644 --- a/Userland/Libraries/LibLine/Editor.cpp +++ b/Userland/Libraries/LibLine/Editor.cpp @@ -250,7 +250,13 @@ void Editor::add_to_history(DeprecatedString const& line) ErrorOr> Editor::try_load_history(StringView path) { - auto history_file = TRY(Core::File::open(path, Core::File::OpenMode::Read)); + auto history_file_or_error = Core::File::open(path, Core::File::OpenMode::Read); + + // We ignore "No such file or directory" errors, as that is just equivalent to an empty history. + if (history_file_or_error.is_error() && history_file_or_error.error().is_errno() && history_file_or_error.error().code() == ENOENT) + return Vector {}; + + auto history_file = history_file_or_error.release_value(); auto data = TRY(history_file->read_until_eof()); auto hist = StringView { data }; Vector history;