(svn r19148) -Fix [FS#3627]: [v]seprintf should return the number of added characters excluding '\0' on truncation (adf88)

This commit is contained in:
rubidium
2010-02-17 13:55:08 +00:00
parent 8461258998
commit 28cc56d11d

View File

@@ -32,9 +32,9 @@
*/
static int CDECL vseprintf(char *str, const char *last, const char *format, va_list ap)
{
if (str >= last) return 0;
size_t size = last - str + 1;
return min((int)size, vsnprintf(str, size, format, ap));
ptrdiff_t diff = last - str;
if (diff < 0) return 0;
return min((int)diff, vsnprintf(str, diff + 1, format, ap));
}
void ttd_strlcat(char *dst, const char *src, size_t size)