[FFmpeg-cvslog] log: Factorize check_color_terminal() out
Luca Barbato
git at videolan.org
Thu Apr 3 20:52:59 CEST 2014
ffmpeg | branch: master | Luca Barbato <lu_zero at gentoo.org> | Fri Apr 26 15:12:05 2013 +0200| [061e340c05bde91ac988677e47bc562b04be5c20] | committer: Michael Niedermayer
log: Factorize check_color_terminal() out
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=061e340c05bde91ac988677e47bc562b04be5c20
---
libavutil/log.c | 47 +++++++++++++++++++++++++----------------------
1 file changed, 25 insertions(+), 22 deletions(-)
diff --git a/libavutil/log.c b/libavutil/log.c
index a0bb5e4..af293e7 100644
--- a/libavutil/log.c
+++ b/libavutil/log.c
@@ -113,33 +113,36 @@ static const uint32_t color[16 + AV_CLASS_CATEGORY_NB] = {
#endif
static int use_color = -1;
-static void colored_fputs(int level, const char *str)
+static void check_color_terminal(void)
{
- if (!*str)
- return;
-
- if (use_color < 0) {
#if HAVE_SETCONSOLETEXTATTRIBUTE
- CONSOLE_SCREEN_BUFFER_INFO con_info;
- con = GetStdHandle(STD_ERROR_HANDLE);
- use_color = (con != INVALID_HANDLE_VALUE) && !getenv("NO_COLOR") &&
- !getenv("AV_LOG_FORCE_NOCOLOR");
- if (use_color) {
- GetConsoleScreenBufferInfo(con, &con_info);
- attr_orig = con_info.wAttributes;
- background = attr_orig & 0xF0;
- }
+ CONSOLE_SCREEN_BUFFER_INFO con_info;
+ con = GetStdHandle(STD_ERROR_HANDLE);
+ use_color = (con != INVALID_HANDLE_VALUE) && !getenv("NO_COLOR") &&
+ !getenv("AV_LOG_FORCE_NOCOLOR");
+ if (use_color) {
+ GetConsoleScreenBufferInfo(con, &con_info);
+ attr_orig = con_info.wAttributes;
+ background = attr_orig & 0xF0;
+ }
#elif HAVE_ISATTY
- use_color = !getenv("NO_COLOR") && !getenv("AV_LOG_FORCE_NOCOLOR") &&
- (getenv("TERM") && isatty(2) ||
- getenv("AV_LOG_FORCE_COLOR"));
- if (getenv("AV_LOG_FORCE_256COLOR"))
- use_color *= 256;
+ use_color = !getenv("NO_COLOR") && !getenv("AV_LOG_FORCE_NOCOLOR") &&
+ (getenv("TERM") && isatty(2) || getenv("AV_LOG_FORCE_COLOR"));
+ if (getenv("AV_LOG_FORCE_256COLOR"))
+ use_color *= 256;
#else
- use_color = getenv("AV_LOG_FORCE_COLOR") && !getenv("NO_COLOR") &&
- !getenv("AV_LOG_FORCE_NOCOLOR");
+ use_color = getenv("AV_LOG_FORCE_COLOR") && !getenv("NO_COLOR") &&
+ !getenv("AV_LOG_FORCE_NOCOLOR");
#endif
- }
+}
+
+static void colored_fputs(int level, const char *str)
+{
+ if (!*str)
+ return;
+
+ if (use_color < 0)
+ check_color_terminal();
#if HAVE_SETCONSOLETEXTATTRIBUTE
if (use_color && level != AV_LOG_INFO/8)
More information about the ffmpeg-cvslog
mailing list