commit 8ff49966bc9d6d7438640fa475e95f9a24a4b931 (tree)
parent 0686954802d17e87114542878615fd0a9a245e49
Author: Ryan Liptak <squeek502@hotmail.com>
Date: Fri, 13 Aug 2021 16:20:51 -0700
fs.Walker: Fix basename missing its first character for direct children of the initial directory
Closes #9557
Diffstat:
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/std/fs.zig b/lib/std/fs.zig
@@ -763,11 +763,12 @@ pub const Dir = struct {
while (self.stack.items.len != 0) {
// `top` becomes invalid after appending to `self.stack`
var top = &self.stack.items[self.stack.items.len - 1];
- const dirname_len = top.dirname_len;
+ var dirname_len = top.dirname_len;
if (try top.iter.next()) |base| {
self.name_buffer.shrinkRetainingCapacity(dirname_len);
if (self.name_buffer.items.len != 0) {
try self.name_buffer.append(path.sep);
+ dirname_len += 1;
}
try self.name_buffer.appendSlice(base.name);
if (base.kind == .Directory) {
@@ -786,7 +787,7 @@ pub const Dir = struct {
}
return WalkerEntry{
.dir = top.iter.dir,
- .basename = self.name_buffer.items[dirname_len + 1 ..],
+ .basename = self.name_buffer.items[dirname_len..],
.path = self.name_buffer.items,
.kind = base.kind,
};