in troubleshooting/resources/vscode/scripts/acutest.h [530:589]
static int TEST_ATTRIBUTE_(format (printf, 2, 3))
test_print_in_color_(int color, const char* fmt, ...)
{
va_list args;
char buffer[256];
int n;
va_start(args, fmt);
vsnprintf(buffer, sizeof(buffer), fmt, args);
va_end(args);
buffer[sizeof(buffer)-1] = '\0';
if(!test_colorize_) {
return printf("%s", buffer);
}
#if defined ACUTEST_UNIX_
{
const char* col_str;
switch(color) {
case TEST_COLOR_GREEN_: col_str = "\033[0;32m"; break;
case TEST_COLOR_RED_: col_str = "\033[0;31m"; break;
case TEST_COLOR_GREEN_INTENSIVE_: col_str = "\033[1;32m"; break;
case TEST_COLOR_RED_INTENSIVE_: col_str = "\033[1;31m"; break;
case TEST_COLOR_DEFAULT_INTENSIVE_: col_str = "\033[1m"; break;
default: col_str = "\033[0m"; break;
}
printf("%s", col_str);
n = printf("%s", buffer);
printf("\033[0m");
return n;
}
#elif defined ACUTEST_WIN_
{
HANDLE h;
CONSOLE_SCREEN_BUFFER_INFO info;
WORD attr;
h = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(h, &info);
switch(color) {
case TEST_COLOR_GREEN_: attr = FOREGROUND_GREEN; break;
case TEST_COLOR_RED_: attr = FOREGROUND_RED; break;
case TEST_COLOR_GREEN_INTENSIVE_: attr = FOREGROUND_GREEN | FOREGROUND_INTENSITY; break;
case TEST_COLOR_RED_INTENSIVE_: attr = FOREGROUND_RED | FOREGROUND_INTENSITY; break;
case TEST_COLOR_DEFAULT_INTENSIVE_: attr = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY; break;
default: attr = 0; break;
}
if(attr != 0)
SetConsoleTextAttribute(h, attr);
n = printf("%s", buffer);
SetConsoleTextAttribute(h, info.wAttributes);
return n;
}
#else
n = printf("%s", buffer);
return n;
#endif
}