16 HANDLE Terminal::_stdout;
17 HANDLE Terminal::_stderr;
19 std::map<Terminal::color, DWORD> Terminal::colormap = {
20 {Terminal::color::BLACK, 0},
21 {Terminal::color::BLUE, 1},
22 {Terminal::color::GREEN, 2},
23 {Terminal::color::CYAN, 3},
24 {Terminal::color::RED, 4},
25 {Terminal::color::MAGENTA, 5},
26 {Terminal::color::BROWN, 6},
27 {Terminal::color::LIGHTGRAY, 7},
28 {Terminal::color::DARKGRAY, 8},
29 {Terminal::color::YELLOW, 14},
30 {Terminal::color::WHITE, 15},
31 {Terminal::color::RESET, 15},
35 Terminal::Terminal() {
36 Terminal::_stdout = GetStdHandle(STD_OUTPUT_HANDLE);
37 Terminal::_stderr = GetStdHandle(STD_ERROR_HANDLE);
40 std::ostream& operator<<(std::ostream& os,
const Terminal::color& c) {
41 SetConsoleTextAttribute(Terminal::_stdout, Terminal::colormap.find(c)->second);
69 os <<
"\e[1;" << buf <<
"m";