aboutsummaryrefslogtreecommitdiff
path: root/src/env_loader.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/env_loader.zig')
-rw-r--r--src/env_loader.zig25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/env_loader.zig b/src/env_loader.zig
index 0da985793..7c2c38a99 100644
--- a/src/env_loader.zig
+++ b/src/env_loader.zig
@@ -516,13 +516,26 @@ pub const Loader = struct {
};
defer file.close();
- const stat = try file.stat();
- const end = stat.size;
+ const end = brk: {
+ if (comptime Environment.isWindows) {
+ const pos = try file.getEndPos();
+ if (pos == 0) {
+ @field(this, base) = logger.Source.initPathString(base, "");
+ return;
+ }
- if (end == 0 or stat.kind != .file) {
- @field(this, base) = logger.Source.initPathString(base, "");
- return;
- }
+ break :brk pos;
+ }
+
+ const stat = try file.stat();
+
+ if (stat.size == 0 or stat.kind != .file) {
+ @field(this, base) = logger.Source.initPathString(base, "");
+ return;
+ }
+
+ break :brk stat.size;
+ };
var buf = try this.allocator.alloc(u8, end + 1);
errdefer this.allocator.free(buf);