#include "../git-compat-util.h" #undef vsnprintf int git_vsnprintf(char *str, size_t maxsize, const char *format, va_list ap) { char *s; int ret; ret = vsnprintf(str, maxsize, format, ap); if (ret != -1) return ret; s = NULL; if (maxsize < 128) maxsize = 128; while (ret == -1) { maxsize *= 4; str = realloc(s, maxsize); if (! str) break; s = str; ret = vsnprintf(str, maxsize, format, ap); } free(s); return ret; } int git_snprintf(char *str, size_t maxsize, const char *format, ...) { va_list ap; int ret; va_start(ap, format); ret = git_vsnprintf(str, maxsize, format, ap); va_end(ap); return ret; }