| ... | @@ -424,6 +424,17 @@ const PrintNode = struct { | ... | @@ -424,6 +424,17 @@ const PrintNode = struct { |
| 424 | last: bool = false, | 424 | last: bool = false, |
| 425 | }; | 425 | }; |
| 426 | | 426 | |
| | 427 | fn 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 | |
| 427 | fn printTreeStep( | 438 | fn printTreeStep( |
| 428 | b: *std.Build, | 439 | b: *std.Build, |
| 429 | s: *Step, | 440 | s: *Step, |
| ... | @@ -431,15 +442,7 @@ fn printTreeStep( | ... | @@ -431,15 +442,7 @@ fn printTreeStep( |
| 431 | ttyconf: std.debug.TTY.Config, | 442 | ttyconf: std.debug.TTY.Config, |
| 432 | parent_node: *PrintNode, | 443 | parent_node: *PrintNode, |
| 433 | ) !void { | 444 | ) !void { |
| 434 | var opt_node: ?*PrintNode = parent_node.parent; | 445 | try printPrefix(parent_node, stderr); |
| 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 | } | | |
| 443 | | 446 | |
| 444 | if (parent_node.parent != null) { | 447 | if (parent_node.parent != null) { |
| 445 | if (parent_node.last) { | 448 | if (parent_node.last) { |