| Index: third_party/libxslt/win32/config.h | 
| diff --git a/third_party/libxslt/win32/config.h b/third_party/libxslt/win32/config.h | 
| index 9f60e55ca42b12a7e5c4a64884e6d6badd4300a8..8fe704275a35c5329c062aca515a8be2b4b02750 100644 | 
| --- a/third_party/libxslt/win32/config.h | 
| +++ b/third_party/libxslt/win32/config.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 | 
|  |