my ziglings
0

Configure Feed

Select the types of activity you want to include in your feed.

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

Chris Boesch (Feb 8, 2026, 9:41 PM +0100) 3ecaa342 7d4162e3

+5 -15
+5 -15
build.zig
··· 128 128 if (!validate_exercises()) std.process.exit(2); 129 129 130 130 use_color_escapes = false; 131 - if (try std.Io.File.stderr().supportsAnsiEscapeCodes(io)) { 131 + const stderr = std.Io.File.stderr(); 132 + if (try stderr.supportsAnsiEscapeCodes(io)) { 132 133 use_color_escapes = true; 133 134 } else if (builtin.os.tag == .windows) { 134 - const w32 = struct { 135 - const DWORD = std.os.windows.DWORD; 136 - const ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004; 137 - const STD_ERROR_HANDLE: DWORD = @bitCast(@as(i32, -12)); 138 - const GetStdHandle = std.os.windows.kernel32.GetStdHandle; 139 - const GetConsoleMode = std.os.windows.kernel32.GetConsoleMode; 140 - const SetConsoleMode = std.os.windows.kernel32.SetConsoleMode; 141 - }; 142 - const handle = w32.GetStdHandle(w32.STD_ERROR_HANDLE).?; 143 - var mode: w32.DWORD = 0; 144 - if (w32.GetConsoleMode(handle, &mode) != 0) { 145 - mode |= w32.ENABLE_VIRTUAL_TERMINAL_PROCESSING; 146 - use_color_escapes = w32.SetConsoleMode(handle, mode) != 0; 147 - } 135 + if (stderr.enableAnsiEscapeCodes(io)) { 136 + use_color_escapes = true; 137 + } else |_| {} 148 138 } 149 139 150 140 if (use_color_escapes) {