zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 2f30b0f44d5dbdb80362f181f35504965db733f9 (tree)
parent 406950f7566f7f220847ab2faa2c26914dcda257
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Fri, 19 Dec 2025 09:59:05 -0800

std.Progress.start: handle cancelation from isTty

It's important not to swallow error.Canceled. We don't have recancel()
yet but that will be a way to "rearm" cancelation after handling it so
that it is not ignored.

Diffstat:
Mlib/std/Progress.zig | 15+++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/lib/std/Progress.zig b/lib/std/Progress.zig @@ -497,10 +497,17 @@ pub fn start(io: Io, options: Options) Node { global_progress.terminal = stderr; if (stderr.enableAnsiEscapeCodes(io)) |_| { global_progress.terminal_mode = .ansi_escape_codes; - } else |_| if (is_windows and stderr.isTty(io)) { - global_progress.terminal_mode = TerminalMode{ .windows_api = .{ - .code_page = windows.kernel32.GetConsoleOutputCP(), - } }; + } else |_| if (is_windows) { + if (stderr.isTty(io)) { + global_progress.terminal_mode = TerminalMode{ .windows_api = .{ + .code_page = windows.kernel32.GetConsoleOutputCP(), + } }; + } else |err| switch (err) { + error.Canceled => { + // TODO: recancel here, or block cancelation for this function + return Node.none; + }, + } } if (global_progress.terminal_mode == .off) {