This commit is contained in:
Nicholas Marriott
2008-09-26 06:45:28 +00:00
parent df2b3bcf44
commit 62457bce0b
33 changed files with 224 additions and 224 deletions

View File

@ -1,4 +1,4 @@
/* $Id: asprintf.c,v 1.3 2008-06-23 21:54:48 nicm Exp $ */
/* $Id: asprintf.c,v 1.4 2008-09-26 06:45:28 nicm Exp $ */
/*
* Copyright (c) 2006 Nicholas Marriott <nicm@users.sourceforge.net>
@ -58,32 +58,32 @@ error:
return (-1);
}
#else
int
vasprintf(char **ret, const char *fmt, va_list ap)
{
va_list aq;
size_t len;
char *buf;
int n;
len = 64;
buf = xmalloc(len);
for (;;) {
va_copy(aq, ap);
n = vsnprintf(buf, len, fmt, aq);
va_end(aq);
if (n != -1) {
*ret = buf;
return (n);
}
if (len > SIZE_MAX / 2) {
xfree(buf);
return (-1);
}
len *= 2;
}
}
int
vasprintf(char **ret, const char *fmt, va_list ap)
{
va_list aq;
size_t len;
char *buf;
int n;
len = 64;
buf = xmalloc(len);
for (;;) {
va_copy(aq, ap);
n = vsnprintf(buf, len, fmt, aq);
va_end(aq);
if (n != -1) {
*ret = buf;
return (n);
}
if (len > SIZE_MAX / 2) {
xfree(buf);
return (-1);
}
len *= 2;
}
}
#endif