Adds a new macro simplifying use of snprinf on MS platforms.
This commit is contained in:
		
							parent
							
								
									1b2e509958
								
							
						
					
					
						commit
						f7d58e81c3
					
				| @ -1682,6 +1682,23 @@ inline void Abort() { abort(); } | ||||
| 
 | ||||
| }  // namespace posix
 | ||||
| 
 | ||||
| // MSVC "deprecates" snprintf and issues warnings wherever it is used.  In
 | ||||
| // order to avoid these warnings, we need to use _snprintf or _snprintf_s on
 | ||||
| // MSVC-based platforms.  We map the GTEST_SNPRINTF_ macro to the appropriate
 | ||||
| // function in order to achieve that.  We use macro definition here because
 | ||||
| // snprintf is a variadic function.
 | ||||
| #if _MSC_VER >= 1400 && !GTEST_OS_WINDOWS_MOBILE | ||||
| // MSVC 2005 and above support variadic macros.
 | ||||
| # define GTEST_SNPRINTF_(buffer, size, format, ...) \ | ||||
|      _snprintf_s(buffer, size, size, format, __VA_ARGS__) | ||||
| #elif defined(_MSC_VER) | ||||
| // Windows CE does not define _snprintf_s and MSVC prior to 2005 doesn't
 | ||||
| // complain about _snprintf.
 | ||||
| # define GTEST_SNPRINTF_ _snprintf | ||||
| #else | ||||
| # define GTEST_SNPRINTF_ snprintf | ||||
| #endif | ||||
| 
 | ||||
| // The maximum number a BiggestInt can represent.  This definition
 | ||||
| // works no matter BiggestInt is represented in one's complement or
 | ||||
| // two's complement.
 | ||||
|  | ||||
| @ -55,14 +55,6 @@ namespace { | ||||
| 
 | ||||
| using ::std::ostream; | ||||
| 
 | ||||
| #if GTEST_OS_WINDOWS_MOBILE  // Windows CE does not define _snprintf_s.
 | ||||
| # define snprintf _snprintf | ||||
| #elif _MSC_VER >= 1400  // VC 8.0 and later deprecate snprintf and _snprintf.
 | ||||
| # define snprintf _snprintf_s | ||||
| #elif _MSC_VER | ||||
| # define snprintf _snprintf | ||||
| #endif  // GTEST_OS_WINDOWS_MOBILE
 | ||||
| 
 | ||||
| // Prints a segment of bytes in the given object.
 | ||||
| void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start, | ||||
|                                 size_t count, ostream* os) { | ||||
| @ -77,7 +69,7 @@ void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start, | ||||
|       else | ||||
|         *os << '-'; | ||||
|     } | ||||
|     snprintf(text, sizeof(text), "%02X", obj_bytes[j]); | ||||
|     GTEST_SNPRINTF_(text, sizeof(text), "%02X", obj_bytes[j]); | ||||
|     *os << text; | ||||
|   } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user