diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2010-04-23 21:27:26 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2010-04-23 21:27:26 +0000 |
commit | 6204402409a009901b6d3e5a4091cef82bef7f52 (patch) | |
tree | 752ef44bbfa99fdc20d33ce9018d102d0b4b8652 | |
parent | 0bb848016a213210e3861a7c0388990e479d2d39 (diff) | |
download | ffmpeg-6204402409a009901b6d3e5a4091cef82bef7f52.tar.gz |
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.
Originally committed as revision 22957 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavutil/log.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/libavutil/log.c b/libavutil/log.c index f37e40cb75..9a8b66ee4d 100644 --- a/libavutil/log.c +++ b/libavutil/log.c @@ -25,6 +25,7 @@ */ #include <unistd.h> +#include <stdlib.h> #include "avutil.h" #include "log.h" @@ -33,17 +34,23 @@ static #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"); } } |