Commit Diff


commit - 09207408944007a2a81689e5867f31d10cdd3a1f
commit + cc2c19f0f1d1aef0dad9f16c15bbd7be0033a7d7
blob - 6245796cd9c80ce1087f093ac83a7edf902fc8c1
blob + 79b404665f097572beb2a588a1274f55a2b80f46
--- src/build.zig
+++ src/build.zig
@@ -6,14 +6,14 @@ fn cFiles(name: []const u8) ![][]const u8 {
     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
@@ -28,7 +28,7 @@
 
     // 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
@@ -47,22 +47,17 @@ export fn quote_depth(line: [*:0]const u8) c_int {
 }
 
 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;
 }