diff options
| author | Chris Boesch <chrboesch@noreply.codeberg.org> | 2026-02-08 21:41:30 +0100 |
|---|---|---|
| committer | Chris Boesch <chrboesch@noreply.codeberg.org> | 2026-02-08 21:41:30 +0100 |
| commit | 3ecaa34271da0c0c41926ff604f9419e0b492bb3 (patch) | |
| tree | afea80c45aba449151bbd137776102b754b703dd /build.zig | |
| parent | 7d4162e3881ef558b2c65db9e55d4c25073f9928 (diff) | |
| parent | df3f2df50b2ec703fefe2a712312a7096859b669 (diff) | |
Merge pull request 'use Io interface for enabling ansi escape codes' (#361) from sno2/exercises:main into main
Reviewed-on: https://codeberg.org/ziglings/exercises/pulls/361
Diffstat (limited to 'build.zig')
| -rw-r--r-- | build.zig | 20 |
1 files changed, 5 insertions, 15 deletions
@@ -128,23 +128,13 @@ pub fn build(b: *Build) !void { if (!validate_exercises()) std.process.exit(2); use_color_escapes = false; - if (try std.Io.File.stderr().supportsAnsiEscapeCodes(io)) { + const stderr = std.Io.File.stderr(); + if (try stderr.supportsAnsiEscapeCodes(io)) { use_color_escapes = true; } else if (builtin.os.tag == .windows) { - const w32 = struct { - const DWORD = std.os.windows.DWORD; - const ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004; - const STD_ERROR_HANDLE: DWORD = @bitCast(@as(i32, -12)); - const GetStdHandle = std.os.windows.kernel32.GetStdHandle; - const GetConsoleMode = std.os.windows.kernel32.GetConsoleMode; - const SetConsoleMode = std.os.windows.kernel32.SetConsoleMode; - }; - const handle = w32.GetStdHandle(w32.STD_ERROR_HANDLE).?; - var mode: w32.DWORD = 0; - if (w32.GetConsoleMode(handle, &mode) != 0) { - mode |= w32.ENABLE_VIRTUAL_TERMINAL_PROCESSING; - use_color_escapes = w32.SetConsoleMode(handle, mode) != 0; - } + if (stderr.enableAnsiEscapeCodes(io)) { + use_color_escapes = true; + } else |_| {} } if (use_color_escapes) { |
