diff --git a/Userland/Libraries/LibCore/ConfigFile.cpp b/Userland/Libraries/LibCore/ConfigFile.cpp index 5df2fce419..e56b1a23cb 100644 --- a/Userland/Libraries/LibCore/ConfigFile.cpp +++ b/Userland/Libraries/LibCore/ConfigFile.cpp @@ -60,6 +60,11 @@ ErrorOr> ConfigFile::open(String const& filename, Allo ErrorOr> ConfigFile::open(String const& filename, int fd) { auto file = TRY(Stream::File::adopt_fd(fd, Stream::OpenMode::ReadWrite)); + return open(filename, move(file)); +} + +ErrorOr> ConfigFile::open(String const& filename, NonnullOwnPtr file) +{ auto buffered_file = TRY(Stream::BufferedFile::create(move(file))); auto config_file = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) ConfigFile(filename, move(buffered_file)))); diff --git a/Userland/Libraries/LibCore/ConfigFile.h b/Userland/Libraries/LibCore/ConfigFile.h index 044acd050b..842fd4724f 100644 --- a/Userland/Libraries/LibCore/ConfigFile.h +++ b/Userland/Libraries/LibCore/ConfigFile.h @@ -30,6 +30,7 @@ public: static ErrorOr> open_for_system(String const& app_name, AllowWriting = AllowWriting::No); static ErrorOr> open(String const& filename, AllowWriting = AllowWriting::No); static ErrorOr> open(String const& filename, int fd); + static ErrorOr> open(String const& filename, NonnullOwnPtr); ~ConfigFile(); bool has_group(String const&) const;