aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-07-09 18:59:21 +0300
committerVeikka Tuominen <git@vexu.eu>2022-07-15 13:04:21 +0300
commit2b67f56c35d0a61be43f8ca23535096ae3ca4948 (patch)
tree591eea9b6dce8bc4e0a524993da208515b109f92 /src/main.zig
parent577f9fdbae12eabbbf87bd2cc36a1565df3153b2 (diff)
downloadzig-2b67f56c35d0a61be43f8ca23535096ae3ca4948.tar.gz
zig-2b67f56c35d0a61be43f8ca23535096ae3ca4948.zip
std.fs: split `Dir` into `IterableDir`
Also adds safety check for attempting to iterate directory not opened with `iterate = true`.
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/main.zig b/src/main.zig
index 3d77fc242a..8e34c8ee56 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -4206,13 +4206,13 @@ fn fmtPathDir(
parent_dir: fs.Dir,
parent_sub_path: []const u8,
) FmtError!void {
- var dir = try parent_dir.openDir(parent_sub_path, .{ .iterate = true });
- defer dir.close();
+ var iterable_dir = try parent_dir.openIterableDir(parent_sub_path, .{});
+ defer iterable_dir.close();
- const stat = try dir.stat();
+ const stat = try iterable_dir.dir.stat();
if (try fmt.seen.fetchPut(stat.inode, {})) |_| return;
- var dir_it = dir.iterate();
+ var dir_it = iterable_dir.iterate();
while (try dir_it.next()) |entry| {
const is_dir = entry.kind == .Directory;
@@ -4223,9 +4223,9 @@ fn fmtPathDir(
defer fmt.gpa.free(full_path);
if (is_dir) {
- try fmtPathDir(fmt, full_path, check_mode, dir, entry.name);
+ try fmtPathDir(fmt, full_path, check_mode, iterable_dir.dir, entry.name);
} else {
- fmtPathFile(fmt, full_path, check_mode, dir, entry.name) catch |err| {
+ fmtPathFile(fmt, full_path, check_mode, iterable_dir.dir, entry.name) catch |err| {
warn("unable to format '{s}': {s}", .{ full_path, @errorName(err) });
fmt.any_error = true;
return;