X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=include%2Fconsolecolors.h;h=8d154f7ee5eead60d71fcda19038b9c1a01b4fb4;hb=9aadc251e9910998fbbe5438b461958a261eae1d;hp=953beb34658c5ea3cf09dc76507ec7bed639ab33;hpb=78a6d62732f2f0c2752d9de8729a745413ebe64a;p=user%2Fhenk%2Fcode%2Finspircd.git
diff --git a/include/consolecolors.h b/include/consolecolors.h
index 953beb346..8d154f7ee 100644
--- a/include/consolecolors.h
+++ b/include/consolecolors.h
@@ -14,10 +14,31 @@
* along with this program. If not, see .
*/
-#ifndef CONSOLECOLORS_H
-#define CONSOLECOLORS_H
+
+#pragma once
#include
+#include
+
+#ifdef _WIN32
+# include
+# define isatty(x) _isatty((x))
+# define fileno(x) _fileno((x))
+#else
+# include
+#endif
+
+namespace
+{
+ inline bool CanUseColors()
+ {
+#ifdef INSPIRCD_DISABLE_COLORS
+ return false;
+#else
+ return isatty(fileno(stdout));
+#endif
+ }
+}
#ifdef _WIN32
@@ -29,72 +50,88 @@ extern HANDLE g_hStdout;
inline std::ostream& con_green(std::ostream &s)
{
- SetConsoleTextAttribute(g_hStdout, FOREGROUND_GREEN|FOREGROUND_INTENSITY|g_wBackgroundColor);
- return s;
+ if (CanUseColors())
+ SetConsoleTextAttribute(g_hStdout, FOREGROUND_GREEN|FOREGROUND_INTENSITY|g_wBackgroundColor);
+ return s;
}
inline std::ostream& con_red(std::ostream &s)
{
- SetConsoleTextAttribute(g_hStdout, FOREGROUND_RED|FOREGROUND_INTENSITY|g_wBackgroundColor);
- return s;
+ if (CanUseColors())
+ SetConsoleTextAttribute(g_hStdout, FOREGROUND_RED|FOREGROUND_INTENSITY|g_wBackgroundColor);
+ return s;
}
inline std::ostream& con_white(std::ostream &s)
{
- SetConsoleTextAttribute(g_hStdout, FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN|g_wBackgroundColor);
- return s;
+ if (CanUseColors())
+ SetConsoleTextAttribute(g_hStdout, FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN|g_wBackgroundColor);
+ return s;
}
inline std::ostream& con_white_bright(std::ostream &s)
{
- SetConsoleTextAttribute(g_hStdout, FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_INTENSITY|g_wBackgroundColor);
- return s;
+ if (CanUseColors())
+ SetConsoleTextAttribute(g_hStdout, FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_INTENSITY|g_wBackgroundColor);
+ return s;
}
inline std::ostream& con_bright(std::ostream &s)
{
- SetConsoleTextAttribute(g_hStdout, FOREGROUND_INTENSITY|g_wBackgroundColor);
- return s;
+ if (CanUseColors())
+ SetConsoleTextAttribute(g_hStdout, FOREGROUND_INTENSITY|g_wBackgroundColor);
+ return s;
}
inline std::ostream& con_reset(std::ostream &s)
{
- SetConsoleTextAttribute(g_hStdout, g_wOriginalColors);
- return s;
+ if (CanUseColors())
+ SetConsoleTextAttribute(g_hStdout, g_wOriginalColors);
+ return s;
}
#else
inline std::ostream& con_green(std::ostream &s)
{
- return s << "\033[1;32m";
+ if (!CanUseColors())
+ return s;
+ return s << "\033[1;32m";
}
inline std::ostream& con_red(std::ostream &s)
{
- return s << "\033[1;31m";
+ if (!CanUseColors())
+ return s;
+ return s << "\033[1;31m";
}
inline std::ostream& con_white(std::ostream &s)
{
- return s << "\033[0m";
+ if (!CanUseColors())
+ return s;
+ return s << "\033[0m";
}
inline std::ostream& con_white_bright(std::ostream &s)
{
- return s << "\033[1m";
+ if (!CanUseColors())
+ return s;
+ return s << "\033[1m";
}
inline std::ostream& con_bright(std::ostream &s)
{
- return s << "\033[1m";
+ if (!CanUseColors())
+ return s;
+ return s << "\033[1m";
}
inline std::ostream& con_reset(std::ostream &s)
{
- return s << "\033[0m";
+ if (!CanUseColors())
+ return s;
+ return s << "\033[0m";
}
#endif
-
-#endif
\ No newline at end of file