Since glibc-2.1 was released 16 years ago, the workaround for glibc-2.0
is no longer necessary. Even the example code of printf(3) dropped it.
n = vsnprintf(msg, size, fmt, ap);
va_end(ap);
/* If that worked, return the string. */
- if (n > -1 && n < size)
- break;
+ if (n < size)
+ return msg;
/* Else try again with more space. */
- if (n > -1) /* glibc 2.1 */
- size = n + 1; /* precisely what is needed */
- else /* glibc 2.0 */
- size *= 2; /* twice the old size */
+ size = n + 1; /* precisely what is needed */
msg = dss_realloc(msg, size);
}
- return msg;
}
/**