aboutsummaryrefslogtreecommitdiff
path: root/lib/std/fs
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-07-20 20:46:07 -0700
committerAndrew Kelley <andrew@ziglang.org>2025-07-21 12:32:37 -0700
commitfe10c66d664ae7b1acb2bcf01600eeacc2958fc7 (patch)
tree0419f39533d6564c5b2737f1d5c55e5bb3d49f4f /lib/std/fs
parent38559e282b137ea365ab074e3d78cf3312dd5702 (diff)
downloadzig-fe10c66d664ae7b1acb2bcf01600eeacc2958fc7.tar.gz
zig-fe10c66d664ae7b1acb2bcf01600eeacc2958fc7.zip
std.fs.File.Reader: only fcopyfile if size available
Diffstat (limited to 'lib/std/fs')
-rw-r--r--lib/std/fs/File.zig8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/std/fs/File.zig b/lib/std/fs/File.zig
index 85264dd4db..04b2f1dd94 100644
--- a/lib/std/fs/File.zig
+++ b/lib/std/fs/File.zig
@@ -1825,6 +1825,7 @@ pub const Writer = struct {
if (file_reader.pos != 0) break :fcf;
if (w.pos != 0) break :fcf;
if (limit != .unlimited) break :fcf;
+ const size = file_reader.getSize() catch break :fcf;
const rc = std.c.fcopyfile(in_fd, out_fd, null, .{ .DATA = true });
switch (posix.errno(rc)) {
.SUCCESS => {},
@@ -1845,10 +1846,9 @@ pub const Writer = struct {
return 0;
},
}
- const n = if (file_reader.size) |size| size else @panic("TODO figure out how much copied");
- file_reader.pos = n;
- w.pos = n;
- return n;
+ file_reader.pos = size;
+ w.pos = size;
+ return size;
}
return error.Unimplemented;