85fee25653
Use _MSC_VER (instead of _WIN32) for things that are specific for Visual Studio. Also remove #include <winsock2.h> from hiredis.h, as it leaks too many symbols and defines into the global namespace, which is undesirable for a public interface header. Anyone who uses the the affected parts of the hiredis API needs to include the appropriate headers anyway in order to declare struct timeval variables.
57 lines
1.0 KiB
C
57 lines
1.0 KiB
C
#ifndef _WIN32_HELPER_INCLUDE
|
|
#define _WIN32_HELPER_INCLUDE
|
|
#ifdef _MSC_VER
|
|
|
|
#include <winsock2.h> /* for struct timeval */
|
|
|
|
#ifndef inline
|
|
#define inline __inline
|
|
#endif
|
|
|
|
#ifndef strcasecmp
|
|
#define strcasecmp stricmp
|
|
#endif
|
|
|
|
#ifndef strncasecmp
|
|
#define strncasecmp strnicmp
|
|
#endif
|
|
|
|
#ifndef va_copy
|
|
#define va_copy(d,s) ((d) = (s))
|
|
#endif
|
|
|
|
#ifndef snprintf
|
|
#define snprintf c99_snprintf
|
|
|
|
__inline int c99_vsnprintf(char* str, size_t size, const char* format, va_list ap)
|
|
{
|
|
int count = -1;
|
|
|
|
if (size != 0)
|
|
count = _vsnprintf_s(str, size, _TRUNCATE, format, ap);
|
|
if (count == -1)
|
|
count = _vscprintf(format, ap);
|
|
|
|
return count;
|
|
}
|
|
|
|
__inline int c99_snprintf(char* str, size_t size, const char* format, ...)
|
|
{
|
|
int count;
|
|
va_list ap;
|
|
|
|
va_start(ap, format);
|
|
count = c99_vsnprintf(str, size, format, ap);
|
|
va_end(ap);
|
|
|
|
return count;
|
|
}
|
|
#endif
|
|
#endif /* _MSC_VER */
|
|
|
|
#ifdef _WIN32
|
|
#define strerror_r(errno,buf,len) strerror_s(buf,len,errno)
|
|
#endif /* _WIN32 */
|
|
|
|
#endif /* _WIN32_HELPER_INCLUDE */
|