aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/app/shared/logging/coloredoutput.cpp12
-rw-r--r--src/app/shared/logging/coloredoutput.h1
-rw-r--r--src/app/shared/logging/consolelogger.cpp2
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);