summaryrefslogtreecommitdiff
path: root/libavutil
diff options
context:
space:
mode:
authorJames Darnley <james.darnley@gmail.com>2014-04-04 00:45:29 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-04-04 04:20:14 +0200
commit16509d3a286c55f9149c0a98e3d7200ed6d2ee16 (patch)
tree9344ff9dc8cfb070729155a35e888ffc6d5ef3bf /libavutil
parent634636eb5aeb970fa4119ca3a259bc7e3a1029f8 (diff)
log: allow color highlighting in Cygwin's mintty
Configure will detect the availability of the Windows' console functions and set HAVE_SETCONSOLETEXTATTRIBUTE. Meaning av_log will use those functions to control colours. When ffmpeg is run in Cygwin's mintty terminal emulator it will not use colour highlighting in this case. Mintty responds to the usual escape code colours (it even supports 256 colours). Windows' cmd.exe does not. Fortunately it seems that Cygwin's emulation layer now translates the basic 16 colours into Windows' Console command functions. That means that we can have av_log use the standard colour commands and let ffmpeg print colours in both mintty and cmd. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/log.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libavutil/log.c b/libavutil/log.c
index 4cceffc5a6..32e1ba74c4 100644
--- a/libavutil/log.c
+++ b/libavutil/log.c
@@ -50,7 +50,7 @@ static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static int av_log_level = AV_LOG_INFO;
static int flags;
-#if HAVE_SETCONSOLETEXTATTRIBUTE
+#if defined(_WIN32) && !defined(__MINGW32CE__) && HAVE_SETCONSOLETEXTATTRIBUTE
#include <windows.h>
static const uint8_t color[16 + AV_CLASS_CATEGORY_NB] = {
[AV_LOG_PANIC /8] = 12,
@@ -115,7 +115,7 @@ static int use_color = -1;
static void check_color_terminal(void)
{
-#if HAVE_SETCONSOLETEXTATTRIBUTE
+#if defined(_WIN32) && !defined(__MINGW32CE__) && HAVE_SETCONSOLETEXTATTRIBUTE
CONSOLE_SCREEN_BUFFER_INFO con_info;
con = GetStdHandle(STD_ERROR_HANDLE);
use_color = (con != INVALID_HANDLE_VALUE) && !getenv("NO_COLOR") &&
@@ -146,7 +146,7 @@ static void colored_fputs(int level, int tint, const char *str)
if (use_color < 0)
check_color_terminal();
-#if HAVE_SETCONSOLETEXTATTRIBUTE
+#if defined(_WIN32) && !defined(__MINGW32CE__) && HAVE_SETCONSOLETEXTATTRIBUTE
if (use_color && level != AV_LOG_INFO/8)
SetConsoleTextAttribute(con, background | color[level]);
fputs(str, stderr);