From 70db2c02537d0ccde65368a69a2e038fcf5c111d Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Thu, 31 Mar 2016 17:27:25 +0200 Subject: [PATCH 1/5] Detect CLI color support for Windows 10 build 10586 Newer Windows 10 versions (builds older than 10586) offer VT100 color support. See http://www.nivot.org/blog/post/2016/02/04/Windows-10-TH2-(v1511)-Console-Host-Enhancements --- .../Component/Console/Output/StreamOutput.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Console/Output/StreamOutput.php b/src/Symfony/Component/Console/Output/StreamOutput.php index 62d04c0e0d966..ee0486b9101f3 100644 --- a/src/Symfony/Component/Console/Output/StreamOutput.php +++ b/src/Symfony/Component/Console/Output/StreamOutput.php @@ -85,7 +85,7 @@ protected function doWrite($message, $newline) * * Colorization is disabled if not supported by the stream: * - * - Windows without Ansicon, ConEmu or Mintty + * - Windows before 10.0.10586 without Ansicon, ConEmu or Mintty * - non tty consoles * * @return bool true if the stream supports colorization, false otherwise @@ -93,7 +93,16 @@ protected function doWrite($message, $newline) protected function hasColorSupport() { if (DIRECTORY_SEPARATOR === '\\') { - return false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI') || 'xterm' === getenv('TERM'); + return + defined('PHP_WINDOWS_VERSION_MAJOR') + && + version_compare( + PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, + '10.0.10586' + ) >= 0 + || false !== getenv('ANSICON') + || 'ON' === getenv('ConEmuANSI') + || 'xterm' === getenv('TERM'); } return function_exists('posix_isatty') && @posix_isatty($this->stream); From 1ab5544835d0c3a83e7b179c1757ccf444109374 Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Fri, 1 Apr 2016 16:59:50 +0200 Subject: [PATCH 2/5] Detect CLI color support for Windows 10 build 10586 Newer Windows 10 versions (builds older than 10586) offer VT100 color support. See http://www.nivot.org/blog/post/2016/02/04/Windows-10-TH2-(v1511)-Console-Host-Enhancements --- .../Bridge/PhpUnit/DeprecationErrorHandler.php | 11 ++++++++++- src/Symfony/Component/VarDumper/Dumper/CliDumper.php | 12 +++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php index 390c4909dcc02..b76b2c489f282 100644 --- a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php +++ b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php @@ -194,7 +194,16 @@ public static function register($mode = 0) private static function hasColorSupport() { if ('\\' === DIRECTORY_SEPARATOR) { - return false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI') || 'xterm' === getenv('TERM'); + return + defined('PHP_WINDOWS_VERSION_MAJOR') + && + version_compare( + PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, + '10.0.10586' + ) >= 0 + || false !== getenv('ANSICON') + || 'ON' === getenv('ConEmuANSI') + || 'xterm' === getenv('TERM'); } return defined('STDOUT') && function_exists('posix_isatty') && @posix_isatty(STDOUT); diff --git a/src/Symfony/Component/VarDumper/Dumper/CliDumper.php b/src/Symfony/Component/VarDumper/Dumper/CliDumper.php index 83e79c184be32..caef9f0547e2e 100644 --- a/src/Symfony/Component/VarDumper/Dumper/CliDumper.php +++ b/src/Symfony/Component/VarDumper/Dumper/CliDumper.php @@ -452,7 +452,17 @@ protected function supportsColors() } if ('\\' === DIRECTORY_SEPARATOR) { - static::$defaultColors = @(false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI') || 'xterm' === getenv('TERM')); + static::$defaultColors = @( + defined('PHP_WINDOWS_VERSION_MAJOR') + && + version_compare( + PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, + '10.0.10586' + ) >= 0 + || false !== getenv('ANSICON') + || 'ON' === getenv('ConEmuANSI') + || 'xterm' === getenv('TERM') + ); } elseif (function_exists('posix_isatty')) { $h = stream_get_meta_data($this->outputStream) + array('wrapper_type' => null); $h = 'Output' === $h['stream_type'] && 'PHP' === $h['wrapper_type'] ? fopen('php://stdout', 'wb') : $this->outputStream; From 5530fac25135a3a393ee2a774172274cb367ebb6 Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Fri, 1 Apr 2016 17:27:49 +0200 Subject: [PATCH 3/5] Use only 16 colors when using standard Windows 10 VT100 commands --- src/Symfony/Component/VarDumper/Dumper/CliDumper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/VarDumper/Dumper/CliDumper.php b/src/Symfony/Component/VarDumper/Dumper/CliDumper.php index caef9f0547e2e..5c219a01f3200 100644 --- a/src/Symfony/Component/VarDumper/Dumper/CliDumper.php +++ b/src/Symfony/Component/VarDumper/Dumper/CliDumper.php @@ -58,8 +58,8 @@ public function __construct($output = null, $charset = null, $flags = 0) { parent::__construct($output, $charset, $flags); - if ('\\' === DIRECTORY_SEPARATOR && false !== @getenv('ANSICON')) { - // Use only the base 16 xterm colors when using ANSICON + if ('\\' === DIRECTORY_SEPARATOR && 'ON' !== @getenv('ConEmuANSI') && 'xterm' !== @getenv('TERM')) { + // Use only the base 16 xterm colors when using ANSICON or standard Windows 10 CLI $this->setStyles(array( 'default' => '31', 'num' => '1;34', From 6e676c4baf7f22d6ea71d6745685ac0d21659f92 Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Fri, 1 Apr 2016 19:36:33 +0200 Subject: [PATCH 4/5] Don't check if PHP_WINDOWS_VERSION_MAJOR is defined if directory separator is \ --- src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php | 2 -- src/Symfony/Component/Console/Output/StreamOutput.php | 2 -- src/Symfony/Component/VarDumper/Dumper/CliDumper.php | 2 -- 3 files changed, 6 deletions(-) diff --git a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php index b76b2c489f282..0233c3b409731 100644 --- a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php +++ b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php @@ -195,8 +195,6 @@ private static function hasColorSupport() { if ('\\' === DIRECTORY_SEPARATOR) { return - defined('PHP_WINDOWS_VERSION_MAJOR') - && version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, '10.0.10586' diff --git a/src/Symfony/Component/Console/Output/StreamOutput.php b/src/Symfony/Component/Console/Output/StreamOutput.php index ee0486b9101f3..31b00bb11efaf 100644 --- a/src/Symfony/Component/Console/Output/StreamOutput.php +++ b/src/Symfony/Component/Console/Output/StreamOutput.php @@ -94,8 +94,6 @@ protected function hasColorSupport() { if (DIRECTORY_SEPARATOR === '\\') { return - defined('PHP_WINDOWS_VERSION_MAJOR') - && version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, '10.0.10586' diff --git a/src/Symfony/Component/VarDumper/Dumper/CliDumper.php b/src/Symfony/Component/VarDumper/Dumper/CliDumper.php index 5c219a01f3200..d0a1ea9dddd1f 100644 --- a/src/Symfony/Component/VarDumper/Dumper/CliDumper.php +++ b/src/Symfony/Component/VarDumper/Dumper/CliDumper.php @@ -453,8 +453,6 @@ protected function supportsColors() if ('\\' === DIRECTORY_SEPARATOR) { static::$defaultColors = @( - defined('PHP_WINDOWS_VERSION_MAJOR') - && version_compare( PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, '10.0.10586' From a226d77b22e01d0edd031aee7906173516206bc1 Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Fri, 1 Apr 2016 19:41:59 +0200 Subject: [PATCH 5/5] Windows 10 version check in just one line --- src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php | 5 +---- src/Symfony/Component/Console/Output/StreamOutput.php | 5 +---- src/Symfony/Component/VarDumper/Dumper/CliDumper.php | 5 +---- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php index 0233c3b409731..15a2787992953 100644 --- a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php +++ b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php @@ -195,10 +195,7 @@ private static function hasColorSupport() { if ('\\' === DIRECTORY_SEPARATOR) { return - version_compare( - PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, - '10.0.10586' - ) >= 0 + 0 >= version_compare('10.0.10586', PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD) || false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI') || 'xterm' === getenv('TERM'); diff --git a/src/Symfony/Component/Console/Output/StreamOutput.php b/src/Symfony/Component/Console/Output/StreamOutput.php index 31b00bb11efaf..098966286eeb5 100644 --- a/src/Symfony/Component/Console/Output/StreamOutput.php +++ b/src/Symfony/Component/Console/Output/StreamOutput.php @@ -94,10 +94,7 @@ protected function hasColorSupport() { if (DIRECTORY_SEPARATOR === '\\') { return - version_compare( - PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, - '10.0.10586' - ) >= 0 + 0 >= version_compare('10.0.10586', PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD) || false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI') || 'xterm' === getenv('TERM'); diff --git a/src/Symfony/Component/VarDumper/Dumper/CliDumper.php b/src/Symfony/Component/VarDumper/Dumper/CliDumper.php index d0a1ea9dddd1f..ca18eca2121fb 100644 --- a/src/Symfony/Component/VarDumper/Dumper/CliDumper.php +++ b/src/Symfony/Component/VarDumper/Dumper/CliDumper.php @@ -453,10 +453,7 @@ protected function supportsColors() if ('\\' === DIRECTORY_SEPARATOR) { static::$defaultColors = @( - version_compare( - PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD, - '10.0.10586' - ) >= 0 + 0 >= version_compare('10.0.10586', PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD) || false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI') || 'xterm' === getenv('TERM') pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy