Skip to content

Commit 5fbfcb0

Browse files
bug symfony#18385 Detect CLI color support for Windows 10 build 10586 (mlocati)
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes symfony#18385). Discussion ---------- Detect CLI color support for Windows 10 build 10586 Newer Windows 10 versions (builds starting from 10586) offer VT100 color support. See http://www.nivot.org/blog/post/2016/02/04/Windows-10-TH2-(v1511)-Console-Host-Enhancements | Q | A | ------------- | --- | Branch? | master - Maybe it could be backported to other branches too | Bug fix? | maybe 😉 - Do you you consider a bug not having colors on Windows? | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | | License | MIT | Doc PR | Commits ------- 472a7bf Detect CLI color support for Windows 10 build 10586
2 parents 18ddc88 + 472a7bf commit 5fbfcb0

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/Symfony/Component/Console/Output/StreamOutput.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ protected function doWrite($message, $newline)
8585
*
8686
* Colorization is disabled if not supported by the stream:
8787
*
88-
* - Windows without Ansicon, ConEmu or Mintty
88+
* - Windows before 10.0.10586 without Ansicon, ConEmu or Mintty
8989
* - non tty consoles
9090
*
9191
* @return bool true if the stream supports colorization, false otherwise
@@ -94,7 +94,11 @@ protected function hasColorSupport()
9494
{
9595
// @codeCoverageIgnoreStart
9696
if (DIRECTORY_SEPARATOR === '\\') {
97-
return false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI') || 'xterm' === getenv('TERM');
97+
return
98+
0 >= version_compare('10.0.10586', PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD)
99+
|| false !== getenv('ANSICON')
100+
|| 'ON' === getenv('ConEmuANSI')
101+
|| 'xterm' === getenv('TERM');
98102
}
99103

100104
return function_exists('posix_isatty') && @posix_isatty($this->stream);

0 commit comments

Comments
 (0)