|
|
|
@@ -252,6 +252,8 @@
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include <cerrno>
|
|
|
|
#include <cstdint>
|
|
|
|
#include <cstdint>
|
|
|
|
#include <limits>
|
|
|
|
#include <limits>
|
|
|
|
#include <type_traits>
|
|
|
|
#include <type_traits>
|
|
|
|
@@ -1960,16 +1962,16 @@ namespace posix {
|
|
|
|
typedef struct _stat StatStruct;
|
|
|
|
typedef struct _stat StatStruct;
|
|
|
|
|
|
|
|
|
|
|
|
# ifdef __BORLANDC__
|
|
|
|
# ifdef __BORLANDC__
|
|
|
|
inline int IsATTY(int fd) { return isatty(fd); }
|
|
|
|
inline int DoIsATTY(int fd) { return isatty(fd); }
|
|
|
|
inline int StrCaseCmp(const char* s1, const char* s2) {
|
|
|
|
inline int StrCaseCmp(const char* s1, const char* s2) {
|
|
|
|
return stricmp(s1, s2);
|
|
|
|
return stricmp(s1, s2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
inline char* StrDup(const char* src) { return strdup(src); }
|
|
|
|
inline char* StrDup(const char* src) { return strdup(src); }
|
|
|
|
# else // !__BORLANDC__
|
|
|
|
# else // !__BORLANDC__
|
|
|
|
# if GTEST_OS_WINDOWS_MOBILE
|
|
|
|
# if GTEST_OS_WINDOWS_MOBILE
|
|
|
|
inline int IsATTY(int /* fd */) { return 0; }
|
|
|
|
inline int DoIsATTY(int /* fd */) { return 0; }
|
|
|
|
# else
|
|
|
|
# else
|
|
|
|
inline int IsATTY(int fd) { return _isatty(fd); }
|
|
|
|
inline int DoIsATTY(int fd) { return _isatty(fd); }
|
|
|
|
# endif // GTEST_OS_WINDOWS_MOBILE
|
|
|
|
# endif // GTEST_OS_WINDOWS_MOBILE
|
|
|
|
inline int StrCaseCmp(const char* s1, const char* s2) {
|
|
|
|
inline int StrCaseCmp(const char* s1, const char* s2) {
|
|
|
|
return _stricmp(s1, s2);
|
|
|
|
return _stricmp(s1, s2);
|
|
|
|
@@ -1994,7 +1996,7 @@ inline bool IsDir(const StatStruct& st) {
|
|
|
|
typedef struct stat StatStruct;
|
|
|
|
typedef struct stat StatStruct;
|
|
|
|
|
|
|
|
|
|
|
|
inline int FileNo(FILE* file) { return fileno(file); }
|
|
|
|
inline int FileNo(FILE* file) { return fileno(file); }
|
|
|
|
inline int IsATTY(int fd) { return isatty(fd); }
|
|
|
|
inline int DoIsATTY(int fd) { return isatty(fd); }
|
|
|
|
inline int Stat(const char* path, StatStruct* buf) {
|
|
|
|
inline int Stat(const char* path, StatStruct* buf) {
|
|
|
|
// stat function not implemented on ESP8266
|
|
|
|
// stat function not implemented on ESP8266
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
@@ -2011,7 +2013,7 @@ inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); }
|
|
|
|
typedef struct stat StatStruct;
|
|
|
|
typedef struct stat StatStruct;
|
|
|
|
|
|
|
|
|
|
|
|
inline int FileNo(FILE* file) { return fileno(file); }
|
|
|
|
inline int FileNo(FILE* file) { return fileno(file); }
|
|
|
|
inline int IsATTY(int fd) { return isatty(fd); }
|
|
|
|
inline int DoIsATTY(int fd) { return isatty(fd); }
|
|
|
|
inline int Stat(const char* path, StatStruct* buf) { return stat(path, buf); }
|
|
|
|
inline int Stat(const char* path, StatStruct* buf) { return stat(path, buf); }
|
|
|
|
inline int StrCaseCmp(const char* s1, const char* s2) {
|
|
|
|
inline int StrCaseCmp(const char* s1, const char* s2) {
|
|
|
|
return strcasecmp(s1, s2);
|
|
|
|
return strcasecmp(s1, s2);
|
|
|
|
@@ -2022,6 +2024,17 @@ inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); }
|
|
|
|
|
|
|
|
|
|
|
|
#endif // GTEST_OS_WINDOWS
|
|
|
|
#endif // GTEST_OS_WINDOWS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline int IsATTY(int fd) {
|
|
|
|
|
|
|
|
// DoIsATTY might change errno (for example ENOTTY in case you redirect stdout
|
|
|
|
|
|
|
|
// to a file on Linux), which is unexpected, so save the previous value, and
|
|
|
|
|
|
|
|
// restore it after the call.
|
|
|
|
|
|
|
|
int savedErrno = errno;
|
|
|
|
|
|
|
|
int isAttyValue = DoIsATTY(fd);
|
|
|
|
|
|
|
|
errno = savedErrno;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return isAttyValue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Functions deprecated by MSVC 8.0.
|
|
|
|
// Functions deprecated by MSVC 8.0.
|
|
|
|
|
|
|
|
|
|
|
|
GTEST_DISABLE_MSC_DEPRECATED_PUSH_()
|
|
|
|
GTEST_DISABLE_MSC_DEPRECATED_PUSH_()
|
|
|
|
|