diff options
author | Sadie Powell <sadie@witchery.services> | 2021-03-03 01:52:27 +0000 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2021-03-03 01:52:27 +0000 |
commit | d55581a1107de1e548b67d29a9ca0fcb7f1a0572 (patch) | |
tree | 7e84901a544935455efd5ade99222960a3a7c9ea /win | |
parent | dbaa0f6be119a1e74e6139d240d77efcba43b504 (diff) |
Fix not being able to colour format output to stderr on Windows.
Diffstat (limited to 'win')
-rw-r--r-- | win/inspircd_win32wrapper.cpp | 13 | ||||
-rw-r--r-- | win/inspircd_win32wrapper.h | 8 |
2 files changed, 21 insertions, 0 deletions
diff --git a/win/inspircd_win32wrapper.cpp b/win/inspircd_win32wrapper.cpp index c6f5d8232..169741ba5 100644 --- a/win/inspircd_win32wrapper.cpp +++ b/win/inspircd_win32wrapper.cpp @@ -55,3 +55,16 @@ DWORD CWin32Exception::GetErrorCode() { return dwErrorCode; } + +WindowsStream::WindowsStream(DWORD handle) + : BackgroundColor(0) + , ForegroundColor(FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN) +{ + this->Handle = GetStdHandle(handle); + CONSOLE_SCREEN_BUFFER_INFO bufinf; + if (GetConsoleScreenBufferInfo(this->Handle, &bufinf)) + { + this->BackgroundColor = bufinf.wAttributes & 0x00F0; + this->ForegroundColor = bufinf.wAttributes & 0x00FF; + } +} diff --git a/win/inspircd_win32wrapper.h b/win/inspircd_win32wrapper.h index 49fc1c665..0f492c924 100644 --- a/win/inspircd_win32wrapper.h +++ b/win/inspircd_win32wrapper.h @@ -196,3 +196,11 @@ struct sockaddr_un ADDRESS_FAMILY sun_family; char sun_path[6]; }; + +struct WindowsStream +{ + WORD BackgroundColor; + WORD ForegroundColor; + HANDLE Handle; + WindowsStream(DWORD handle); +};
\ No newline at end of file |