MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / color_to_stream

Function color_to_stream

tests/framework/src/doctest.cpp:1303–1375  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1301
1302 DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations")
1303 void color_to_stream(std::ostream& s, Color::Enum code) {
1304 static_cast<void>(s); // for DOCTEST_CONFIG_COLORS_NONE or DOCTEST_CONFIG_COLORS_WINDOWS
1305 static_cast<void>(code); // for DOCTEST_CONFIG_COLORS_NONE
1306#ifdef DOCTEST_CONFIG_COLORS_ANSI
1307 if(g_no_colors ||
1308 (isatty(STDOUT_FILENO) == false && getContextOptions()->force_colors == false))
1309 return;
1310
1311 auto col = "";
1312 // clang-format off
1313 switch(code) { //!OCLINT missing break in switch statement / unnecessary default statement in covered switch statement
1314 case Color::Red: col = "[0;31m"; break;
1315 case Color::Green: col = "[0;32m"; break;
1316 case Color::Blue: col = "[0;34m"; break;
1317 case Color::Cyan: col = "[0;36m"; break;
1318 case Color::Yellow: col = "[0;33m"; break;
1319 case Color::Grey: col = "[1;30m"; break;
1320 case Color::LightGrey: col = "[0;37m"; break;
1321 case Color::BrightRed: col = "[1;31m"; break;
1322 case Color::BrightGreen: col = "[1;32m"; break;
1323 case Color::BrightWhite: col = "[1;37m"; break;
1324 case Color::Bright: // invalid
1325 case Color::None:
1326 case Color::White:
1327 default: col = "[0m";
1328 }
1329 // clang-format on
1330 s << "\033" << col;
1331#endif // DOCTEST_CONFIG_COLORS_ANSI
1332
1333#ifdef DOCTEST_CONFIG_COLORS_WINDOWS
1334 if(g_no_colors ||
1335 (_isatty(_fileno(stdout)) == false && getContextOptions()->force_colors == false))
1336 return;
1337
1338 static struct ConsoleHelper {
1339 HANDLE stdoutHandle;
1340 WORD origFgAttrs;
1341 WORD origBgAttrs;
1342
1343 ConsoleHelper() {
1344 stdoutHandle = GetStdHandle(STD_OUTPUT_HANDLE);
1345 CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
1346 GetConsoleScreenBufferInfo(stdoutHandle, &csbiInfo);
1347 origFgAttrs = csbiInfo.wAttributes & ~(BACKGROUND_GREEN | BACKGROUND_RED |
1348 BACKGROUND_BLUE | BACKGROUND_INTENSITY);
1349 origBgAttrs = csbiInfo.wAttributes & ~(FOREGROUND_GREEN | FOREGROUND_RED |
1350 FOREGROUND_BLUE | FOREGROUND_INTENSITY);
1351 }
1352 } ch;
1353
1354#define DOCTEST_SET_ATTR(x) SetConsoleTextAttribute(ch.stdoutHandle, x | ch.origBgAttrs)
1355
1356 // clang-format off
1357 switch (code) {
1358 case Color::White: DOCTEST_SET_ATTR(FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE); break;
1359 case Color::Red: DOCTEST_SET_ATTR(FOREGROUND_RED); break;
1360 case Color::Green: DOCTEST_SET_ATTR(FOREGROUND_GREEN); break;

Callers 1

doctest.cppFile · 0.85

Calls 1

getContextOptionsFunction · 0.85

Tested by

no test coverage detected