From 01299864e2fc87aa597815743a4d8552e8a0129e Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 1 Mar 2023 13:00:04 -0700 Subject: [PATCH] build runner: fix unicode tree printing --- lib/build_runner.zig | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/build_runner.zig b/lib/build_runner.zig index ea4703bfbb..c2509d0d22 100644 --- a/lib/build_runner.zig +++ b/lib/build_runner.zig @@ -424,6 +424,17 @@ const PrintNode = struct { last: bool = false, }; +fn printPrefix(node: *PrintNode, stderr: std.fs.File) !void { + const parent = node.parent orelse return; + if (parent.parent == null) return; + try printPrefix(parent, stderr); + if (parent.last) { + try stderr.writeAll(" "); + } else { + try stderr.writeAll("│ "); + } +} + fn printTreeStep( b: *std.Build, s: *Step, @@ -431,15 +442,7 @@ fn printTreeStep( ttyconf: std.debug.TTY.Config, parent_node: *PrintNode, ) !void { - var opt_node: ?*PrintNode = parent_node.parent; - while (opt_node) |n| : (opt_node = n.parent) { - if (n.parent == null) break; - if (n.last) { - try stderr.writeAll(" "); - } else { - try stderr.writeAll("│ "); - } - } + try printPrefix(parent_node, stderr); if (parent_node.parent != null) { if (parent_node.last) {