Fix check of color support on Windows
If the stream is redirected, the script should behave the same on Windows and on POSIX systems.
This commit is contained in:
parent
a1be12e290
commit
f7f81892a0
@ -81,17 +81,26 @@ class StreamOutput extends Output
|
||||
*
|
||||
* 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');
|
||||
|
Reference in New Issue
Block a user