diff --git a/src/Symfony/Component/Console/Output/StreamOutput.php b/src/Symfony/Component/Console/Output/StreamOutput.php index d36e6f956015..182622a29a5c 100644 --- a/src/Symfony/Component/Console/Output/StreamOutput.php +++ b/src/Symfony/Component/Console/Output/StreamOutput.php @@ -81,17 +81,26 @@ protected function doWrite($message, $newline) * * Colorization is disabled if not supported by the stream: * - * - Windows != 10.0.10586 without Ansicon, ConEmu or Mintty + * - the stream is redirected (eg php file.php >log) + * - Windows without VT100 support, Ansicon, ConEmu, Mintty * - non tty consoles * * @return bool true if the stream supports colorization, false otherwise */ protected function hasColorSupport() { + if (function_exists('stream_isatty') && !@stream_isatty($this->stream)) { + return false; + } if (DIRECTORY_SEPARATOR === '\\') { + if (function_exists('sapi_windows_vt100_support')) { + $vt100Enabled = @sapi_windows_vt100_support($this->stream); + } else { + $vt100Enabled = '10.0.10586' === PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD; + } + return - function_exists('sapi_windows_vt100_support') && @sapi_windows_vt100_support($this->stream) - || '10.0.10586' === PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD + $vt100Enabled || false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI') || 'xterm' === getenv('TERM');