File tree Expand file tree Collapse file tree 1 file changed +26
-5
lines changed Expand file tree Collapse file tree 1 file changed +26
-5
lines changed Original file line number Diff line number Diff line change @@ -178,17 +178,38 @@ public static function register($mode = false)
178
178
}
179
179
}
180
180
181
+ /**
182
+ * Returns true if STDOUT is defined and supports colorization.
183
+ *
184
+ * Reference: Composer\XdebugHandler\Process::supportsColor
185
+ * https://github.com/composer/xdebug-handler
186
+ *
187
+ * @return bool
188
+ */
181
189
private static function hasColorSupport ()
182
190
{
183
- if ('\\' === DIRECTORY_SEPARATOR ) {
184
- return
185
- defined ('STDOUT ' ) && function_exists ('sapi_windows_vt100_support ' ) && sapi_windows_vt100_support (STDOUT )
186
- || '10.0.10586 ' === PHP_WINDOWS_VERSION_MAJOR .'. ' .PHP_WINDOWS_VERSION_MINOR .'. ' .PHP_WINDOWS_VERSION_BUILD
191
+ if (!defined ('STDOUT ' )) {
192
+ return false ;
193
+ }
194
+
195
+ if (DIRECTORY_SEPARATOR === '\\' ) {
196
+ return (function_exists ('sapi_windows_vt100_support ' )
197
+ && sapi_windows_vt100_support (STDOUT ))
187
198
|| false !== getenv ('ANSICON ' )
188
199
|| 'ON ' === getenv ('ConEmuANSI ' )
189
200
|| 'xterm ' === getenv ('TERM ' );
190
201
}
191
202
192
- return defined ('STDOUT ' ) && function_exists ('posix_isatty ' ) && @posix_isatty (STDOUT );
203
+ if (function_exists ('stream_isatty ' )) {
204
+ return stream_isatty (STDOUT );
205
+ }
206
+
207
+ if (function_exists ('posix_isatty ' )) {
208
+ return posix_isatty (STDOUT );
209
+ }
210
+
211
+ $ stat = fstat (STDOUT );
212
+ // Check if formatted mode is S_IFCHR
213
+ return $ stat ? 0020000 === ($ stat ['mode ' ] & 0170000 ) : false ;
193
214
}
194
215
}
You can’t perform that action at this time.
0 commit comments