Merge pull request #2746 from Romain-Geissler-1A:master
PiperOrigin-RevId: 302045808
This commit is contained in:
		@@ -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_()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user