* SOFTWARE.
*/
+#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <pwd.h>
#include <assert.h>
#include <glib.h>
#include <babeltrace/babeltrace-internal.h>
+#include <babeltrace/common-internal.h>
#define SYSTEM_PLUGIN_PATH INSTALL_LIBDIR "/babeltrace/plugins"
#define HOME_ENV_VAR "HOME"
end:
return ret;
}
+
+BT_HIDDEN
+bool bt_common_colors_supported(void)
+{
+ static bool supports_colors = false;
+ static bool supports_colors_set = false;
+ const char *term;
+
+ if (supports_colors_set) {
+ goto end;
+ }
+
+ supports_colors_set = true;
+
+ term = getenv("TERM");
+ if (!term) {
+ goto end;
+ }
+
+ if (strncmp(term, "xterm", 5) != 0 &&
+ strncmp(term, "rxvt", 4) != 0 &&
+ strncmp(term, "konsole", 7) != 0 &&
+ strncmp(term, "gnome", 5) != 0) {
+ goto end;
+ }
+
+ if (!isatty(1)) {
+ goto end;
+ }
+
+ supports_colors = true;
+
+end:
+ return supports_colors;
+}
+
+BT_HIDDEN
+const char *bt_common_color_reset(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_RESET : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_bold(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_BOLD : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_fg_default(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_FG_DEFAULT : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_fg_red(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_FG_RED : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_fg_green(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_FG_GREEN : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_fg_yellow(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_FG_YELLOW : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_fg_blue(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_FG_BLUE : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_fg_magenta(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_FG_MAGENTA : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_fg_cyan(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_FG_CYAN : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_fg_light_gray(void)
+{
+ return bt_common_colors_supported() ?
+ BT_COMMON_COLOR_FG_LIGHT_GRAY : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_bg_default(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_BG_DEFAULT : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_bg_red(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_BG_RED : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_bg_green(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_BG_GREEN : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_bg_yellow(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_BG_YELLOW : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_bg_blue(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_BG_BLUE : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_bg_magenta(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_BG_MAGENTA : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_bg_cyan(void)
+{
+ return bt_common_colors_supported() ? BT_COMMON_COLOR_BG_CYAN : "";
+}
+
+BT_HIDDEN
+const char *bt_common_color_bg_light_gray(void)
+{
+ return bt_common_colors_supported() ?
+ BT_COMMON_COLOR_BG_LIGHT_GRAY : "";
+}