lib/colors: force to "never" mode on non-terminal output
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
167a2b520a
commit
5db5962339
|
@ -38,6 +38,9 @@ extern int colors_init(int mode, const char *util_name);
|
|||
/* Returns 1 or 0 */
|
||||
extern int colors_wanted(void);
|
||||
|
||||
/* Returns UL_COLORMODE_* */
|
||||
extern int colors_mode(void);
|
||||
|
||||
/* temporary enable/disable colors */
|
||||
extern void colors_off(void);
|
||||
extern void colors_on(void);
|
||||
|
|
20
lib/colors.c
20
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
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue