aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-12-05 16:27:20 -0700
committerVeikka Tuominen <git@vexu.eu>2023-01-03 13:46:47 +0200
commita31ff072d18a170d427d97a1e7fa1a5afe3b27bf (patch)
tree6b4f56393bdc77370d59d608a8ae504a16a509c8 /src/Compilation.zig
parent5bd69c655d9e04102c8a64ced1215c9d69f4f03f (diff)
downloadzig-a31ff072d18a170d427d97a1e7fa1a5afe3b27bf.tar.gz
zig-a31ff072d18a170d427d97a1e7fa1a5afe3b27bf.zip
stage2: make --color on affect progress bar too
Before, --color on would affect colored compile error printing but not affect terminal progress bar printing. It was intended for this option to affect both; now it does. This causes a failure when building the language reference, which contains code for parsing terminal output and rendering HTML. Now it must be expanded to handle 'K' and 'D' codes to simulate a terminal cursor moving, and the CI will fail until that capability is added in a later commit of this branch. I extracted this change from #13560 so that the idea is not lost but we can solve this issue separately.
Diffstat (limited to 'src/Compilation.zig')
-rw-r--r--src/Compilation.zig11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 4c7489c0c8..b1fdf0755b 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -2356,7 +2356,16 @@ pub fn update(comp: *Compilation) !void {
var progress: std.Progress = .{ .dont_print_on_dumb = true };
const main_progress_node = progress.start("", 0);
defer main_progress_node.end();
- if (comp.color == .off) progress.terminal = null;
+ switch (comp.color) {
+ .off => {
+ progress.terminal = null;
+ },
+ .on => {
+ progress.terminal = std.io.getStdErr();
+ progress.supports_ansi_escape_codes = true;
+ },
+ .auto => {},
+ }
try comp.performAllTheWork(main_progress_node);