| Index: third_party/libxslt/libxslt/win32config.h
|
| diff --git a/third_party/libxslt/libxslt/win32config.h b/third_party/libxslt/libxslt/win32config.h
|
| index 9f60e55ca42b12a7e5c4a64884e6d6badd4300a8..8fe704275a35c5329c062aca515a8be2b4b02750 100644
|
| --- a/third_party/libxslt/libxslt/win32config.h
|
| +++ b/third_party/libxslt/libxslt/win32config.h
|
| @@ -77,13 +77,41 @@ static int isnan (double d) {
|
| #endif /* _MSC_VER */
|
|
|
| #include <direct.h>
|
| -#if defined(_MSC_VER) || defined(__MINGW32__)
|
| -#define mkdir(p,m) _mkdir(p)
|
| -#define snprintf _snprintf
|
| -#if _MSC_VER < 1500
|
| -#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
|
| -#endif
|
| -#endif
|
| +
|
| +/* snprintf emulation taken from http://stackoverflow.com/a/8712996/1956010 */
|
| +#if defined(_MSC_VER) && _MSC_VER < 1900
|
| +
|
| +#include <stdarg.h>
|
| +#include <stdio.h>
|
| +
|
| +#define snprintf c99_snprintf
|
| +#define vsnprintf c99_vsnprintf
|
| +
|
| +__inline int c99_vsnprintf(char *outBuf, size_t size, const char *format, va_list ap)
|
| +{
|
| + int count = -1;
|
| +
|
| + if (size != 0)
|
| + count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap);
|
| + if (count == -1)
|
| + count = _vscprintf(format, ap);
|
| +
|
| + return count;
|
| +}
|
| +
|
| +__inline int c99_snprintf(char *outBuf, size_t size, const char *format, ...)
|
| +{
|
| + int count;
|
| + va_list ap;
|
| +
|
| + va_start(ap, format);
|
| + count = c99_vsnprintf(outBuf, size, format, ap);
|
| + va_end(ap);
|
| +
|
| + return count;
|
| +}
|
| +
|
| +#endif /* defined(_MSC_VER) && _MSC_VER < 1900 */
|
|
|
| #define HAVE_SYS_STAT_H
|
| #define HAVE__STAT
|
|
|