cvs commit: hugs98/src input.c
Ross Paterson
ross@soi.city.ac.uk
Fri, 19 Jul 2002 21:04:52 +0100
More snprintf bad news, from the printf() family manual (glibc 2.2.5):
These functions return the number of characters printed
(not including the trailing `\0' used to end output to
strings). snprintf and vsnprintf do not write more than
size bytes (including the trailing '\0'), and return -1 if
the output was truncated due to this limit. (Thus until
glibc 2.0.6. Since glibc 2.1 these functions follow the
C99 standard and return the number of characters (exclud
ing the trailing '\0') which would have been written to
the final string if enough space had been available.)
which implies the test for failure should be
n = snprintf(s, size, ...
if (n < 0 || n >= size)