authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-03-01 13:00:04-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-03-15 10:48:13-07:00
log01299864e2fc87aa597815743a4d8552e8a0129e
tree32a5bf9389cc53b875e57a972c76db5ad8808e0b
parent8b2d872020bf8139404d0655e5ab70792cc67873

build runner: fix unicode tree printing


1 files changed, 12 insertions(+), 9 deletions(-)

lib/build_runner.zig+12-9
......@@ -424,6 +424,17 @@ const PrintNode = struct {
424424 last: bool = false,
425425};
426426
427fn printPrefix(node: *PrintNode, stderr: std.fs.File) !void {
428 const parent = node.parent orelse return;
429 if (parent.parent == null) return;
430 try printPrefix(parent, stderr);
431 if (parent.last) {
432 try stderr.writeAll(" ");
433 } else {
434 try stderr.writeAll("│ ");
435 }
436}
437
427438fn printTreeStep(
428439 b: *std.Build,
429440 s: *Step,
......@@ -431,15 +442,7 @@ fn printTreeStep(
431442 ttyconf: std.debug.TTY.Config,
432443 parent_node: *PrintNode,
433444) !void {
434 var opt_node: ?*PrintNode = parent_node.parent;
435 while (opt_node) |n| : (opt_node = n.parent) {
436 if (n.parent == null) break;
437 if (n.last) {
438 try stderr.writeAll(" ");
439 } else {
440 try stderr.writeAll("│ ");
441 }
442 }
445 try printPrefix(parent_node, stderr);
443446
444447 if (parent_node.parent != null) {
445448 if (parent_node.last) {