aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordaurnimator <quae@daurnimator.com>2020-09-27 15:06:44 +1000
committerdaurnimator <quae@daurnimator.com>2020-09-27 15:06:44 +1000
commit4786eaedda76a3fc43510be67f9c04915b5fd703 (patch)
tree784ab8a92824cea345bb5b5573b53799208558fd
parentcffab89730eb6f4183e2628d8b0d007df809436a (diff)
downloadzig-4786eaedda76a3fc43510be67f9c04915b5fd703.tar.gz
zig-4786eaedda76a3fc43510be67f9c04915b5fd703.zip
test/standalone/cat: use fifo.pump()
-rw-r--r--test/standalone/cat/main.zig21
1 files changed, 5 insertions, 16 deletions
diff --git a/test/standalone/cat/main.zig b/test/standalone/cat/main.zig
index 58b87f76f3..65cd2b1e7e 100644
--- a/test/standalone/cat/main.zig
+++ b/test/standalone/cat/main.zig
@@ -50,23 +50,12 @@ fn usage(exe: []const u8) !void {
// TODO use copy_file_range
fn cat_file(stdout: fs.File, file: fs.File) !void {
- var buf: [1024 * 4]u8 = undefined;
+ var fifo = std.fifo.LinearFifo(u8, .{ .Static = 1024 * 4 }).init();
- while (true) {
- const bytes_read = file.read(buf[0..]) catch |err| {
- warn("Unable to read from stream: {}\n", .{@errorName(err)});
- return err;
- };
-
- if (bytes_read == 0) {
- break;
- }
-
- stdout.writeAll(buf[0..bytes_read]) catch |err| {
- warn("Unable to write to stdout: {}\n", .{@errorName(err)});
- return err;
- };
- }
+ fifo.pump(file.reader(), stdout.writer()) catch |err| {
+ warn("Unable to read from stream or write to stdout: {}\n", .{@errorName(err)});
+ return err;
+ };
}
fn unwrapArg(arg: anyerror![]u8) ![]u8 {