Mercurial > embed
diff jansson/patch/snprintf.patch @ 5:9870264521f7
jansson: fix MSVC 2015 compilation
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 25 Feb 2016 09:01:37 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jansson/patch/snprintf.patch Thu Feb 25 09:01:37 2016 +0100 @@ -0,0 +1,53 @@ +diff --git a/cmake/jansson_private_config.h.cmake b/cmake/jansson_private_config.h.cmake +index ee1078f..ac7318f 100644 +--- a/cmake/jansson_private_config.h.cmake ++++ b/cmake/jansson_private_config.h.cmake +@@ -49,6 +49,20 @@ + + #cmakedefine HAVE_SNPRINTF 1 + ++/* snprintf should not be defined as macro with MSC_VER >= 1900 */ ++#if defined(_WIN32) || defined(WIN32) ++# if defined(_MSC_VER) /* MS compiller */ ++# if (_MSC_VER < 1900) /* snprintf not introduced */ ++# if !defined(snprintf) ++# define snprintf _snprintf ++# define HAVE_SNPRINTF 1 /* snprintf defined manually */ ++# endif ++# else ++# define HAVE_SNPRINTF 1 /* snprintf available via sdk */ ++# endif ++# endif ++#endif ++ + #ifndef HAVE_SNPRINTF + # define snprintf @JSON_SNPRINTF@ + #endif +diff --git a/src/jansson_private.h b/src/jansson_private.h +index e100726..ccb3a57 100644 +--- a/src/jansson_private.h ++++ b/src/jansson_private.h +@@ -90,10 +90,20 @@ char *jsonp_strndup(const char *str, size_t length); + char *jsonp_strdup(const char *str); + char *jsonp_strndup(const char *str, size_t len); + ++ + /* Windows compatibility */ +-#ifdef _WIN32 +-#define snprintf _snprintf +-#define vsnprintf _vsnprintf ++#if defined(_WIN32) || defined(WIN32) ++# if defined(_MSC_VER) /* MS compiller */ ++# if (_MSC_VER < 1900) && !defined(snprintf) /* snprintf not defined yet & not introduced */ ++# define snprintf _snprintf ++# endif ++# if (_MSC_VER < 1500) && !defined(vsnprintf) /* vsnprintf not defined yet & not introduced */ ++# define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a) ++# endif ++# else /* Other Windows compiller, old definition */ ++# define snprintf _snprintf ++# define vsnprintf _vsnprintf ++# endif + #endif + + #endif