aboutsummaryrefslogtreecommitdiff
path: root/lib/build_runner.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-03-01 13:00:04 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-03-15 10:48:13 -0700
commit01299864e2fc87aa597815743a4d8552e8a0129e (patch)
tree32a5bf9389cc53b875e57a972c76db5ad8808e0b /lib/build_runner.zig
parent8b2d872020bf8139404d0655e5ab70792cc67873 (diff)
downloadzig-01299864e2fc87aa597815743a4d8552e8a0129e.tar.gz
zig-01299864e2fc87aa597815743a4d8552e8a0129e.zip
build runner: fix unicode tree printing
Diffstat (limited to 'lib/build_runner.zig')
-rw-r--r--lib/build_runner.zig21
1 files 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) {