From 0ddadad7333a999ab3289fd6d47433e4984d182e Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 29 May 2015 20:47:36 +0200 Subject: Cope with broken snprintf on Windows On Windows, snprintf returns -1 if the output was truncated. Fall back to Windows-specific _scprintf. --- src/CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/CMakeLists.txt') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f27186e..19a5258 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -128,6 +128,7 @@ install(FILES # Feature tests include(CheckIncludeFile) include(CheckCSourceCompiles) +include(CheckCSourceRuns) include(CheckSymbolExists) CHECK_INCLUDE_FILE(stdbool.h HAVE_STDBOOL_H) CHECK_C_SOURCE_COMPILES( @@ -137,6 +138,10 @@ CHECK_C_SOURCE_COMPILES(" int f(void) __attribute__ (()); int main() { return 0; } " HAVE___ATTRIBUTE__) +CHECK_C_SOURCE_RUNS(" + #include + int main() { return snprintf(NULL, 0, \"123\") == 3 ? 0 : 1; } +" HAVE_C99_SNPRINTF) CHECK_SYMBOL_EXISTS(va_copy stdarg.h HAVE_VA_COPY) CONFIGURE_FILE( @@ -167,4 +172,4 @@ endif($ENV{TIMER}) if(CMAKE_BUILD_TYPE STREQUAL "Ubsan") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined") -endif() \ No newline at end of file +endif() -- cgit v1.2.3