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 without the trailing NUL.
8 #ifndef SNPRINTF_SIZE_CORR
9 #if defined(__MINGW32__) && defined(__GNUC__) && __GNUC__ < 4
10 #define SNPRINTF_SIZE_CORR 1
12 #define SNPRINTF_SIZE_CORR 0
17 int git_vsnprintf(char *str
, size_t maxsize
, const char *format
, va_list ap
)
23 ret
= vsnprintf(str
, maxsize
-SNPRINTF_SIZE_CORR
, format
, ap
);
26 /* Windows does not NUL-terminate if result fills buffer */
38 str
= realloc(s
, maxsize
);
42 ret
= vsnprintf(str
, maxsize
-SNPRINTF_SIZE_CORR
, format
, ap
);
50 int git_snprintf(char *str
, size_t maxsize
, const char *format
, ...)
56 ret
= git_vsnprintf(str
, maxsize
, format
, ap
);