1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-02-18 21:32:12 +02:00

(vasnprintf): Work around losing snprintf on e.g. HPUX 10.20.

This commit is contained in:
Jim Meyering
2003-10-19 20:59:02 +00:00
parent 14dd23ac24
commit fd1e5aba83

View File

@@ -707,6 +707,22 @@ vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
p[1] = '\0';
continue;
}
else if (retcount < 0)
{
/* The system's snprintf is sorely deficient:
it doesn't recognize the `%n' directive, and it
returns -1 (rather than the length that would
have been required) when the buffer is too small.
This is the case at with least HPUX 10.20.
Double the memory allocation. */
size_t n = allocated;
if (n < 2 * allocated)
{
n = 2 * allocated;
ENSURE_ALLOCATION (n);
continue;
}
}
count = retcount;
}
#endif