mirror of
https://github.com/php/php-src.git
synced 2026-04-27 18:23:26 +02:00
simplify and generalize crossplatform parts
This commit is contained in:
@@ -1632,36 +1632,23 @@ PHP_FUNCTION(stream_isatty)
|
||||
|
||||
if (php_stream_can_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT) == SUCCESS) {
|
||||
php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT, (void*)&fileno, 0);
|
||||
}
|
||||
else if (php_stream_can_cast(stream, PHP_STREAM_AS_FD) == SUCCESS) {
|
||||
} else if (php_stream_can_cast(stream, PHP_STREAM_AS_FD) == SUCCESS) {
|
||||
php_stream_cast(stream, PHP_STREAM_AS_FD, (void*)&fileno, 0);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
#ifdef PHP_WIN32
|
||||
/* Check if the Windows standard handle is redirected to file */
|
||||
if (php_win32_console_fileno_is_console(fileno)) {
|
||||
RETURN_TRUE;
|
||||
}
|
||||
else {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
RETVAL_BOOL(php_win32_console_fileno_is_console(fileno));
|
||||
#elif HAVE_UNISTD_H
|
||||
/* Check if the file descriptor identifier is a terminal */
|
||||
if (isatty(fileno)) {
|
||||
RETURN_TRUE;
|
||||
}
|
||||
else {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
RETVAL_BOOL(isatty(fileno));
|
||||
#else
|
||||
zend_stat_t stat = {0};
|
||||
if (zend_fstat(fileno, &stat) == 0 && (stat.st_mode & /*S_IFMT*/0170000) == /*S_IFCHR*/0020000) {
|
||||
RETURN_TRUE;
|
||||
{
|
||||
zend_stat_t stat = {0};
|
||||
RETVAL_BOOL(zend_fstat(fileno, &stat) == 0 && (stat.st_mode & /*S_IFMT*/0170000) == /*S_IFCHR*/0020000);
|
||||
}
|
||||
RETURN_FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user