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
);