1 #include "../git-compat-util.h"
4 * The size parameter specifies the available space, i.e. includes
5 * the trailing NUL byte; but Windows's vsnprintf expects the
6 * number of characters to write, and does not necessarily write the
9 #ifndef SNPRINTF_SIZE_CORR
10 #if defined(__MINGW32__) && defined(__GNUC__) && __GNUC__ < 4
11 #define SNPRINTF_SIZE_CORR 1
13 #define SNPRINTF_SIZE_CORR 0
18 int git_vsnprintf(char *str, size_t maxsize, const char *format, va_list ap)
24 ret = vsnprintf(str, maxsize-SNPRINTF_SIZE_CORR, format, ap);
27 /* Windows does not NUL-terminate if result fills buffer */
39 str = realloc(s, maxsize);
43 ret = vsnprintf(str, maxsize-SNPRINTF_SIZE_CORR, format, ap);
51 int git_snprintf(char *str, size_t maxsize, const char *format, ...)
57 ret = git_vsnprintf(str, maxsize, format, ap);