diff options
author | Tim Schumacher <timschumi@gmx.de> | 2023-01-20 00:19:34 +0100 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2023-01-20 20:50:42 +0000 |
commit | 29cdd124d13f21862140d437ce97fd18ecca72a8 (patch) | |
tree | e7001aab818405fdd8fdbe5155895dfef96e5b67 | |
parent | debde54928bd8ae3e79a4945595f56ddf7dfa948 (diff) | |
download | serenity-29cdd124d13f21862140d437ce97fd18ecca72a8.zip |
gunzip: Use `Core::Stream` to write the decompression output
-rw-r--r-- | Userland/Utilities/gunzip.cpp | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/Userland/Utilities/gunzip.cpp b/Userland/Utilities/gunzip.cpp index 6948f3ae6a..7eb8dbc607 100644 --- a/Userland/Utilities/gunzip.cpp +++ b/Userland/Utilities/gunzip.cpp @@ -6,19 +6,18 @@ #include <LibCompress/Gzip.h> #include <LibCore/ArgsParser.h> -#include <LibCore/FileStream.h> #include <LibCore/System.h> #include <LibMain/Main.h> #include <unistd.h> -static ErrorOr<void> decompress_file(NonnullOwnPtr<Core::Stream::File> input_stream, Buffered<Core::OutputFileStream>& output_stream) +static ErrorOr<void> decompress_file(NonnullOwnPtr<Core::Stream::File> input_stream, Core::Stream::Stream& output_stream) { auto gzip_stream = Compress::GzipDecompressor { move(input_stream) }; auto buffer = TRY(ByteBuffer::create_uninitialized(4096)); while (!gzip_stream.is_eof()) { auto span = TRY(gzip_stream.read(buffer)); - output_stream.write_or_error(span); + TRY(output_stream.write_entire_buffer(span)); } return {}; @@ -52,15 +51,9 @@ ErrorOr<int> serenity_main(Main::Arguments args) } auto input_stream_result = TRY(Core::Stream::File::open(input_filename, Core::Stream::OpenMode::Read)); + auto output_stream = write_to_stdout ? TRY(Core::Stream::File::standard_output()) : TRY(Core::Stream::File::open(output_filename, Core::Stream::OpenMode::Write)); - if (write_to_stdout) { - auto stdout = Core::OutputFileStream::stdout_buffered(); - TRY(decompress_file(move(input_stream_result), stdout)); - } else { - auto output_stream_result = TRY(Core::OutputFileStream::open_buffered(output_filename)); - - TRY(decompress_file(move(input_stream_result), output_stream_result)); - } + TRY(decompress_file(move(input_stream_result), *output_stream)); if (!keep_input_files) TRY(Core::System::unlink(input_filename)); |