only SetConsoleTextAttribute to do console colors on windows
This commit is contained in:
parent
6fe1c3186f
commit
3c19883493
19
src/os.cpp
19
src/os.cpp
@ -964,13 +964,6 @@ void os_stderr_set_color(TermColor color) {
|
|||||||
if (stderr_handle == INVALID_HANDLE_VALUE)
|
if (stderr_handle == INVALID_HANDLE_VALUE)
|
||||||
zig_panic("unable to get stderr handle");
|
zig_panic("unable to get stderr handle");
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
DWORD ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004;
|
|
||||||
if (color != TermColorReset) {
|
|
||||||
DWORD mode_flags = 0;
|
|
||||||
GetConsoleMode(stderr_handle, &mode_flags);
|
|
||||||
mode_flags |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
|
|
||||||
SetConsoleMode(stderr_handle, mode_flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!got_orig_console_attrs) {
|
if (!got_orig_console_attrs) {
|
||||||
got_orig_console_attrs = true;
|
got_orig_console_attrs = true;
|
||||||
@ -984,33 +977,21 @@ void os_stderr_set_color(TermColor color) {
|
|||||||
switch (color) {
|
switch (color) {
|
||||||
case TermColorRed:
|
case TermColorRed:
|
||||||
SetConsoleTextAttribute(stderr_handle, FOREGROUND_RED|FOREGROUND_INTENSITY);
|
SetConsoleTextAttribute(stderr_handle, FOREGROUND_RED|FOREGROUND_INTENSITY);
|
||||||
WriteConsole(stderr_handle, VT_RED, strlen(VT_RED), &chars_written, NULL);
|
|
||||||
break;
|
break;
|
||||||
case TermColorGreen:
|
case TermColorGreen:
|
||||||
SetConsoleTextAttribute(stderr_handle, FOREGROUND_GREEN|FOREGROUND_INTENSITY);
|
SetConsoleTextAttribute(stderr_handle, FOREGROUND_GREEN|FOREGROUND_INTENSITY);
|
||||||
WriteConsole(stderr_handle, VT_GREEN, strlen(VT_GREEN), &chars_written, NULL);
|
|
||||||
break;
|
break;
|
||||||
case TermColorCyan:
|
case TermColorCyan:
|
||||||
SetConsoleTextAttribute(stderr_handle, FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY);
|
SetConsoleTextAttribute(stderr_handle, FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY);
|
||||||
WriteConsole(stderr_handle, VT_CYAN, strlen(VT_CYAN), &chars_written, NULL);
|
|
||||||
break;
|
break;
|
||||||
case TermColorWhite:
|
case TermColorWhite:
|
||||||
SetConsoleTextAttribute(stderr_handle,
|
SetConsoleTextAttribute(stderr_handle,
|
||||||
FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY);
|
FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY);
|
||||||
WriteConsole(stderr_handle, VT_WHITE, strlen(VT_WHITE), &chars_written, NULL);
|
|
||||||
break;
|
break;
|
||||||
case TermColorReset:
|
case TermColorReset:
|
||||||
{
|
|
||||||
SetConsoleTextAttribute(stderr_handle, original_console_attributes);
|
SetConsoleTextAttribute(stderr_handle, original_console_attributes);
|
||||||
WriteConsole(stderr_handle, VT_RESET, strlen(VT_RESET), &chars_written, NULL);
|
|
||||||
|
|
||||||
DWORD mode_flags = 0;
|
|
||||||
GetConsoleMode(stderr_handle, &mode_flags);
|
|
||||||
mode_flags &= ~ENABLE_VIRTUAL_TERMINAL_PROCESSING;
|
|
||||||
SetConsoleMode(stderr_handle, mode_flags);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
set_color_posix(color);
|
set_color_posix(color);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user