commit - 09207408944007a2a81689e5867f31d10cdd3a1f
commit + cc2c19f0f1d1aef0dad9f16c15bbd7be0033a7d7
blob - 6245796cd9c80ce1087f093ac83a7edf902fc8c1
blob + 79b404665f097572beb2a588a1274f55a2b80f46
--- src/build.zig
+++ src/build.zig
var dir = try std.fs.cwd().openDir(name, .{.iterate = true});
defer dir.close();
const dba = alloc.allocator();
- var files = std.ArrayList([]const u8).init(dba);
+ var files = std.ArrayList([]const u8).empty;
var iter = dir.iterate();
while (try iter.next()) |dent| {
if (std.mem.endsWith(u8, dent.name, ".c")) {
- try files.append(try std.fs.path.join(dba, &.{name, dent.name}));
+ try files.append(dba, try std.fs.path.join(dba, &.{name, dent.name}));
}
}
- return files.toOwnedSlice();
+ return files.toOwnedSlice(dba);
}
// Although this function looks imperative, note that its job is to
blob - b6c74d01101c214d2769b34f25ee5c3ffda49a98
blob + 1f4b9624c8320a2cb1e3200c6fc4e19d5466f327
--- src/build.zig.zon
+++ src/build.zig.zon
// Tracks the earliest Zig version that the package considers to be a
// supported use case.
- .minimum_zig_version = "0.14.0+5ad91a646",
+ .minimum_zig_version = "0.15.1+3db960767",
// This field is optional.
// Each dependency must either provide a `url` and `hash`, or a `path`.
blob - 3db3c90ce76ac72f363922645c8e805460932a7c
blob + b42b530053c52a76fa9cf58c10331402db36db04
--- src/fence/root.zig
+++ src/fence/root.zig
}
fn copyAfterLine(dst: std.fs.File, src: std.fs.File, key: []const u8) !usize {
- var buf: [8192]u8 = undefined;
- var rd = std.io.bufferedReader(src.reader());
- var r = rd.reader();
- var wr = std.io.bufferedWriter(dst.writer());
- var w = wr.writer();
- var found = false;
- var n: usize = 0;
- while (try r.readUntilDelimiterOrEof(buf[0..], '\n')) |line| {
+ var rbuf: [8192]u8 = undefined;
+ var rd = std.fs.File.reader(src, &rbuf).interface;
+ var wbuf: [8192]u8 = undefined;
+ var wr = std.fs.File.writer(dst, &wbuf).interface;
+ while (true) {
+ const line = try rd.takeDelimiterInclusive('\n');
if (std.mem.startsWith(u8, line, key)) {
- found = true;
- continue;
+ break;
}
- if (!found) continue;
- try w.print("{s}\n", .{line});
- n += (line.len + 1); // + 1 for newline
}
+ const n = try rd.streamRemaining(&wr);
try wr.flush();
return n;
}