Update the contributed code to the used coding conventions

This commit is contained in:
Victor Zverovich 2015-02-08 19:54:39 -08:00
parent d5ab6ba728
commit 7004d1edf6

View File

@ -120,19 +120,18 @@ struct IntChecker<true> {
};
#ifdef _WIN32
uint8_t win32_colors[] =
{
0,
FOREGROUND_RED | FOREGROUND_INTENSITY,
FOREGROUND_GREEN | FOREGROUND_INTENSITY,
FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY,
FOREGROUND_BLUE | FOREGROUND_INTENSITY,
FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY,
FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE,
FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY
};
const uint8_t WIN32_COLORS[] = {
0,
FOREGROUND_RED | FOREGROUND_INTENSITY,
FOREGROUND_GREEN | FOREGROUND_INTENSITY,
FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY,
FOREGROUND_BLUE | FOREGROUND_INTENSITY,
FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY,
FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY,
FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY
};
#else
const char RESET_COLOR[] = "\x1b[0m";
const char RESET_COLOR[] = "\x1b[0m";
#endif
typedef void (*FormatFunc)(fmt::Writer &, int, fmt::StringRef);
@ -1114,25 +1113,23 @@ FMT_FUNC void fmt::print(std::ostream &os, StringRef format_str, ArgList args) {
FMT_FUNC void fmt::print_colored(Color c, StringRef format, ArgList args) {
#ifdef _WIN32
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
if(handle == INVALID_HANDLE_VALUE)
if (handle == INVALID_HANDLE_VALUE)
FMT_THROW(GetLastError(), "cannot get output handle");
CONSOLE_SCREEN_BUFFER_INFO infoCon;
if(!GetConsoleScreenBufferInfo(handle, &infoCon))
FMT_THROW(GetLastError(), "cannot get console informations");
WORD reset_color = infoCon.wAttributes;
WORD color = static_cast<int>(c) >= ARRAYSIZE(win32_colors) ? reset_color : win32_colors[c];
if(!SetConsoleTextAttribute(handle, color))
CONSOLE_SCREEN_BUFFER_INFO info_con;
if (!GetConsoleScreenBufferInfo(handle, &info_con))
FMT_THROW(GetLastError(), "cannot get console information");
WORD reset_color = info_con.wAttributes;
WORD color = static_cast<int>(c) >= ARRAYSIZE(WIN32_COLORS) ? reset_color : WIN32_COLORS[c];
if (!SetConsoleTextAttribute(handle, color))
FMT_THROW(GetLastError(), "cannot set console color");
print(format, args);
if (!SetConsoleTextAttribute(handle, reset_color))
FMT_THROW(GetLastError(), "cannot set console color");
#else
char escape[] = "\x1b[30m";
escape[3] = '0' + static_cast<char>(c);
std::fputs(escape, stdout);
#endif
print(format, args);
#ifdef _WIN32
if(!SetConsoleTextAttribute(handle, reset_color))
FMT_THROW(GetLastError(), "cannot set console color");
#else
std::fputs(RESET_COLOR, stdout);
#endif
}