From 5db5962339dbd619a8f779961548fb667d3c9376 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 4 Feb 2019 14:14:37 +0100 Subject: lib/colors: force to "never" mode on non-terminal output Signed-off-by: Karel Zak --- lib/colors.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/colors.c b/lib/colors.c index f636ecc4f..bea7bd1d7 100644 --- a/lib/colors.c +++ b/lib/colors.c @@ -653,9 +653,6 @@ static int colors_terminal_is_ready(void) { int ncolors = -1; - if (isatty(STDOUT_FILENO) != 1) - goto none; - #if defined(HAVE_LIBNCURSES) || defined(HAVE_LIBNCURSESW) { int ret; @@ -692,11 +689,16 @@ int colors_init(int mode, const char *name) struct ul_color_ctl *cc = &ul_colors; cc->utilname = name; - cc->mode = mode; termcolors_init_debug(); - if (mode == UL_COLORMODE_UNDEF && (ready = colors_terminal_is_ready())) { + if (mode != UL_COLORMODE_ALWAYS && !isatty(STDOUT_FILENO)) + cc->mode = UL_COLORMODE_NEVER; + else + cc->mode = mode; + + if (cc->mode == UL_COLORMODE_UNDEF + && (ready = colors_terminal_is_ready())) { int rc = colors_read_configuration(cc); if (rc) cc->mode = UL_COLORMODE_DEFAULT; @@ -754,6 +756,14 @@ int colors_wanted(void) return ul_colors.has_colors; } +/* + * Returns mode + */ +int colors_mode(void) +{ + return ul_colors.mode; +} + /* * Enable @seq color */ -- cgit v1.2.3-55-g7522