diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-03-01 13:00:04 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-03-15 10:48:13 -0700 |
| commit | 01299864e2fc87aa597815743a4d8552e8a0129e (patch) | |
| tree | 32a5bf9389cc53b875e57a972c76db5ad8808e0b /lib/build_runner.zig | |
| parent | 8b2d872020bf8139404d0655e5ab70792cc67873 (diff) | |
| download | zig-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.zig | 21 |
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) { |
