| ... | @@ -763,11 +763,12 @@ pub const Dir = struct { | ... | @@ -763,11 +763,12 @@ pub const Dir = struct { |
| 763 | while (self.stack.items.len != 0) { | 763 | while (self.stack.items.len != 0) { |
| 764 | // `top` becomes invalid after appending to `self.stack` | 764 | // `top` becomes invalid after appending to `self.stack` |
| 765 | var top = &self.stack.items[self.stack.items.len - 1]; | 765 | var top = &self.stack.items[self.stack.items.len - 1]; |
| 766 | const dirname_len = top.dirname_len; | 766 | var dirname_len = top.dirname_len; |
| 767 | if (try top.iter.next()) |base| { | 767 | if (try top.iter.next()) |base| { |
| 768 | self.name_buffer.shrinkRetainingCapacity(dirname_len); | 768 | self.name_buffer.shrinkRetainingCapacity(dirname_len); |
| 769 | if (self.name_buffer.items.len != 0) { | 769 | if (self.name_buffer.items.len != 0) { |
| 770 | try self.name_buffer.append(path.sep); | 770 | try self.name_buffer.append(path.sep); |
| | 771 | dirname_len += 1; |
| 771 | } | 772 | } |
| 772 | try self.name_buffer.appendSlice(base.name); | 773 | try self.name_buffer.appendSlice(base.name); |
| 773 | if (base.kind == .Directory) { | 774 | if (base.kind == .Directory) { |
| ... | @@ -786,7 +787,7 @@ pub const Dir = struct { | ... | @@ -786,7 +787,7 @@ pub const Dir = struct { |
| 786 | } | 787 | } |
| 787 | return WalkerEntry{ | 788 | return WalkerEntry{ |
| 788 | .dir = top.iter.dir, | 789 | .dir = top.iter.dir, |
| 789 | .basename = self.name_buffer.items[dirname_len + 1 ..], | 790 | .basename = self.name_buffer.items[dirname_len..], |
| 790 | .path = self.name_buffer.items, | 791 | .path = self.name_buffer.items, |
| 791 | .kind = base.kind, | 792 | .kind = base.kind, |
| 792 | }; | 793 | }; |