From 00e8ec8f029d3fb248139bae366220d5b01e8cd8 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Sat, 17 Jan 2026 17:17:09 +0100 Subject: fix for zig 0.15 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit writergate Signed-off-by: Robert Günzler --- src/exe.zig | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/exe.zig') diff --git a/src/exe.zig b/src/exe.zig index 8624193..4d55c72 100644 --- a/src/exe.zig +++ b/src/exe.zig @@ -82,8 +82,11 @@ fn pandocWorker(ctx: *Context, page: []const u8) !void { const f = try fs.FileSwapper.createAt(ctx.allocator(), target_path); defer f.close(); + var buffer: [1024]u8 = undefined; + var w = f.writer(&buffer); + // open new scope to close the file swapper when we're done writing - try f.writer().print( + try w.interface.print( \\ \\ , @@ -107,7 +110,7 @@ fn pandocWorker(ctx: *Context, page: []const u8) !void { "--strip-comments", "--output=-", source_path, - }, &env_map, f.writer().any()); + }, &env_map, &w.interface); // swap now, we want to edit mtime try f.swap(); @@ -118,7 +121,7 @@ fn pandocWorker(ctx: *Context, page: []const u8) !void { try fs.setMtime(target_path, mtime); } -pub fn captureStdout(ctx: *Context, argv: []const []const u8, env_map: ?*std.process.EnvMap, buf: std.io.AnyWriter) !void { +pub fn captureStdout(ctx: *Context, argv: []const []const u8, env_map: ?*std.process.EnvMap, w: *std.Io.Writer) !void { const command = try std.mem.join(ctx.allocator(), " ", argv); defer ctx.allocator().free(command); const label = try std.fmt.allocPrint(ctx.allocator(), "running {s}", .{command}); @@ -127,14 +130,22 @@ pub fn captureStdout(ctx: *Context, argv: []const []const u8, env_map: ?*std.pro ctx.progress_start(label); defer ctx.progress_end(); + log.debug("running {s}", .{command}); + var p = std.process.Child.init(argv, std.heap.page_allocator); + p.stdin_behavior = .Ignore; p.stdout_behavior = .Pipe; + p.stderr_behavior = .Ignore; p.progress_node = ctx.progress_nodes.getLast(); p.env_map = env_map; try p.spawn(); - try buf.writeFile(p.stdout.?); + var buffer: [1024]u8 = undefined; + var r = p.stdout.?.readerStreaming(&buffer); + + _ = try w.sendFileAll(&r, .unlimited); + try w.flush(); const result = try p.wait(); _ = result; -- cgit 1.4.1