diff options
Diffstat (limited to 'src/app')
-rw-r--r-- | src/app/shared/logging/coloredoutput.cpp | 12 | ||||
-rw-r--r-- | src/app/shared/logging/coloredoutput.h | 1 | ||||
-rw-r--r-- | src/app/shared/logging/consolelogger.cpp | 2 |
3 files changed, 13 insertions, 2 deletions
diff --git a/src/app/shared/logging/coloredoutput.cpp b/src/app/shared/logging/coloredoutput.cpp index 33e647d36..0f1bb26da 100644 --- a/src/app/shared/logging/coloredoutput.cpp +++ b/src/app/shared/logging/coloredoutput.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "coloredoutput.h" -#include <QtCore/qglobal.h> +#include <QtCore/qbytearray.h> #ifdef Q_OS_WIN32 # include <QtCore/qt_windows.h> #endif @@ -99,3 +99,13 @@ void fprintfColored(TextColor color, FILE *file, const char *str, ...) fprintfColored(color, file, str, vl); va_end(vl); } + +bool terminalSupportsColor() +{ +#if defined(Q_OS_UNIX) + const QByteArray &term = qgetenv("TERM"); + return !term.isEmpty() && term != "dumb"; +#else + return true; +#endif +} diff --git a/src/app/shared/logging/coloredoutput.h b/src/app/shared/logging/coloredoutput.h index 182d96bbe..a7b145ba5 100644 --- a/src/app/shared/logging/coloredoutput.h +++ b/src/app/shared/logging/coloredoutput.h @@ -68,5 +68,6 @@ void printfColored(TextColor color, const char *str, va_list vl); void printfColored(TextColor color, const char *str, ...); void fprintfColored(TextColor color, FILE *file, const char *str, va_list vl); void fprintfColored(TextColor color, FILE *file, const char *str, ...); +bool terminalSupportsColor(); #endif // QBS_COLOREDOUTPUT_H diff --git a/src/app/shared/logging/consolelogger.cpp b/src/app/shared/logging/consolelogger.cpp index ca270759c..7639fb111 100644 --- a/src/app/shared/logging/consolelogger.cpp +++ b/src/app/shared/logging/consolelogger.cpp @@ -91,7 +91,7 @@ void ConsoleLogSink::fprintfWrapper(TextColor color, FILE *file, const char *str { va_list vl; va_start(vl, str); - if (m_coloredOutputEnabled) + if (m_coloredOutputEnabled && terminalSupportsColor()) fprintfColored(color, file, str, vl); else vfprintf(file, str, vl); |