node: provide snprintf implementation on windows

_snprintf() doesn't zero-terminate the buffer on overflow.
pull/24503/head
Ben Noordhuis 2012-04-01 01:15:17 +02:00
parent dee8c51547
commit a4a04f932e
1 changed files with 11 additions and 1 deletions

View File

@ -27,7 +27,17 @@
namespace node {
#ifdef _WIN32
# define snprintf _snprintf
// emulate snprintf() on windows, _snprintf() doesn't zero-terminate the buffer
// on overflow...
#include <stdarg.h>
inline static int snprintf(char* buf, unsigned int len, const char* fmt, ...) {
va_list ap;
va_start(ap, fmt);
int n = _vsprintf_p(buf, len, fmt, ap);
if (len) buf[len - 1] = '\0';
va_end(ap);
return n;
}
#endif
#ifndef offset_of