From 085920205b71a0a5a9bf710de5794cc136051b2d Mon Sep 17 00:00:00 2001 From: Jack Andersen Date: Wed, 22 Jul 2015 09:06:24 -1000 Subject: [PATCH] MSVC noexcept fix --- include/LogVisor/LogVisor.hpp | 4 ++++ lib/LogVisor.cpp | 15 ++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/include/LogVisor/LogVisor.hpp b/include/LogVisor/LogVisor.hpp index 74aa8c5..dc812ce 100644 --- a/include/LogVisor/LogVisor.hpp +++ b/include/LogVisor/LogVisor.hpp @@ -36,7 +36,11 @@ public: std::wstring_convert> conv; m_what.assign(conv.to_bytes(buf)); } +#if _MSC_VER + inline const char* what() const {return m_what.c_str();} +#else inline const char* what() const noexcept {return m_what.c_str();} +#endif }; /** diff --git a/lib/LogVisor.cpp b/lib/LogVisor.cpp index 95fda95..1c00bb3 100644 --- a/lib/LogVisor.cpp +++ b/lib/LogVisor.cpp @@ -1,6 +1,7 @@ #if _WIN32 #define _WIN32_LEAN_AND_MEAN 1 #include +#define snprintf _snprintf #endif #include @@ -19,6 +20,10 @@ #define BOLD "\x1b[1m" #define NORMAL "\x1b[0m" +#if _WIN32 +#define FOREGROUND_WHITE FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE +#endif + namespace LogVisor { @@ -94,7 +99,7 @@ struct ConsoleLogger : public ILogger thrName = ThreadMap[thrId]; #if _WIN32 - SetConsoleTextAttribute(Term, FOREGROUND_INTENSITY); + SetConsoleTextAttribute(Term, FOREGROUND_INTENSITY | FOREGROUND_WHITE); fprintf(stderr, "["); SetConsoleTextAttribute(Term, FOREGROUND_INTENSITY | FOREGROUND_GREEN); fprintf(stderr, "%5.4f ", tmd); @@ -103,7 +108,7 @@ struct ConsoleLogger : public ILogger switch (severity) { case Info: - SetConsoleTextAttribute(Term, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE); + SetConsoleTextAttribute(Term, FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(stderr, "INFO"); break; case Warning: @@ -121,7 +126,7 @@ struct ConsoleLogger : public ILogger default: break; }; - SetConsoleTextAttribute(Term, FOREGROUND_INTENSITY); + SetConsoleTextAttribute(Term, FOREGROUND_INTENSITY | FOREGROUND_WHITE); fprintf(stderr, " %s", modName); SetConsoleTextAttribute(Term, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN); if (sourceInfo) @@ -129,9 +134,9 @@ struct ConsoleLogger : public ILogger SetConsoleTextAttribute(Term, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE); if (thrName) fprintf(stderr, " (%s)", thrName); - SetConsoleTextAttribute(Term, FOREGROUND_INTENSITY); + SetConsoleTextAttribute(Term, FOREGROUND_INTENSITY | FOREGROUND_WHITE); fprintf(stderr, "] "); - SetConsoleTextAttribute(Term, 0); + SetConsoleTextAttribute(Term, FOREGROUND_WHITE); #else if (XtermColor) {