Mercurial > irccd
changeset 122:2aecbd638b1c
Irccd: add an upstream patch to fix jansson on VS, #425
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 04 May 2016 13:38:02 +0200 |
parents | 12d8f2d20c77 |
children | c7fee63ccf92 |
files | extern/jansson/cmake/jansson_private_config.h.cmake extern/jansson/snprintf.patch extern/jansson/src/jansson_private.h |
diffstat | 3 files changed, 80 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/extern/jansson/cmake/jansson_private_config.h.cmake Tue May 03 21:28:34 2016 +0200 +++ b/extern/jansson/cmake/jansson_private_config.h.cmake Wed May 04 13:38:02 2016 +0200 @@ -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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extern/jansson/snprintf.patch Wed May 04 13:38:02 2016 +0200 @@ -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
--- a/extern/jansson/src/jansson_private.h Tue May 03 21:28:34 2016 +0200 +++ b/extern/jansson/src/jansson_private.h Wed May 04 13:38:02 2016 +0200 @@ -90,10 +90,20 @@ 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