aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2010-04-23 21:27:26 +0000
committerMichael Niedermayer <michaelni@gmx.at>2010-04-23 21:27:26 +0000
commit6204402409a009901b6d3e5a4091cef82bef7f52 (patch)
tree752ef44bbfa99fdc20d33ce9018d102d0b4b8652
parent0bb848016a213210e3861a7c0388990e479d2d39 (diff)
downloadffmpeg-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.c17
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");
}
}