Skip to content

Commit

Permalink
simplify and generalize crossplatform parts
Browse files Browse the repository at this point in the history
  • Loading branch information
weltling committed Apr 13, 2017
1 parent 858ad8a commit df3e1a1
Showing 1 changed file with 7 additions and 20 deletions.
27 changes: 7 additions & 20 deletions ext/standard/streamsfuncs.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down

0 comments on commit df3e1a1

Please sign in to comment.