diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2024-05-27 10:47:53 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2024-05-27 20:56:48 -0700 |
| commit | 64c6a5092cc8910eb597e52b52e744de5e54ba7f (patch) | |
| tree | a10787a545910c88c8eb274cc86280be51d170b4 /lib/std | |
| parent | dc3a192ae841706bb965218c68b0085bbec2b35e (diff) | |
| download | zig-64c6a5092cc8910eb597e52b52e744de5e54ba7f.tar.gz zig-64c6a5092cc8910eb597e52b52e744de5e54ba7f.zip | |
std.Progress: elide root node if empty
when the root progress node has a zero length name, the sub-tree is
flattened one layer, reducing visual noise, as well as bytes written to
the terminal.
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/Progress.zig | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/std/Progress.zig b/lib/std/Progress.zig index 412245d3e6..12874125e2 100644 --- a/lib/std/Progress.zig +++ b/lib/std/Progress.zig @@ -879,6 +879,11 @@ fn computePrefix( var i = start_i; const parent_index = serialized.parents[@intFromEnum(node_index)].unwrap() orelse return i; if (serialized.parents[@intFromEnum(parent_index)] == .none) return i; + if (@intFromEnum(serialized.parents[@intFromEnum(parent_index)]) == 0 and + serialized.storage[0].name[0] == 0) + { + return i; + } i = computePrefix(buf, i, serialized, children, parent_index); if (children[@intFromEnum(parent_index)].sibling == .none) { const prefix = " "; @@ -917,7 +922,10 @@ fn computeNode( const name = if (std.mem.indexOfScalar(u8, &storage.name, 0)) |end| storage.name[0..end] else &storage.name; const parent = serialized.parents[@intFromEnum(node_index)]; - if (parent != .none) { + if (parent != .none) p: { + if (@intFromEnum(parent) == 0 and serialized.storage[0].name[0] == 0) { + break :p; + } if (children[@intFromEnum(node_index)].sibling == .none) { buf[i..][0..tree_langle.len].* = tree_langle.*; i += tree_langle.len; |
