# HG changeset patch # User michael # Date 1272058046 0 # Node ID 3f0ed02fff47d0990050a12e8d80a7bb9dded6bb # Parent 4ce17228fc5eb0db235e54c850e1ea7483b8057e 4th try at getting ansi colors working with a default of color=yes_please. Colors will only be used if the TERM env var is set and NO_COLOR is not set. diff -r 4ce17228fc5e -r 3f0ed02fff47 log.c --- a/log.c Fri Apr 23 16:28:10 2010 +0000 +++ b/log.c Fri Apr 23 21:27:26 2010 +0000 @@ -25,6 +25,7 @@ */ #include +#include #include "avutil.h" #include "log.h" @@ -33,17 +34,23 @@ #endif int av_log_level = AV_LOG_INFO; -#if (!HAVE_ISATTY) || defined(_WIN32) -#define isatty(s) 0 -#endif +static int use_ansi_color=-1; #undef fprintf static void colored_fputs(int color, const char *str){ - if(isatty(2)){ + if(use_ansi_color<0){ +#if HAVE_ISATTY && !defined(_WIN32) + use_ansi_color= getenv("TERM") && !getenv("NO_COLOR") && isatty(2); +#else + use_ansi_color= 0; +#endif + } + + if(use_ansi_color){ fprintf(stderr, "\033[%d;3%dm", color>>4, color&15); } fputs(str, stderr); - if(isatty(2)){ + if(use_ansi_color){ fprintf(stderr, "\033[0m"); } }