Mercurial > cpython-lru_cache-weakref
diff Python/getargs.c @ 21145:87fa6e9bd77e legacy-trunk
mysnprintf.c: Massive rewrite of PyOS_snprintf and PyOS_vsnprintf, to
use wrappers on all platforms, to make this as consistent as possible x-
platform (in particular, make sure there's at least one \0 byte in
the output buffer). Also document more of the truth about what these do.
getargs.c, seterror(): Three computations of remaining buffer size were
backwards, thus telling PyOS_snprintf the buffer is larger than it
actually is. This matters a lot now that PyOS_snprintf ensures there's a
trailing \0 byte (because it didn't get the truth about the buffer size,
it was storing \0 beyond the true end of the buffer).
sysmodule.c, mywrite(): Simplify, now that PyOS_vsnprintf guarantees to
produce a \0 byte.
| author | Tim Peters <tim.peters@gmail.com> |
|---|---|
| date | Mon, 03 Dec 2001 00:43:33 +0000 |
| parents | 0feac45ee662 |
| children | 608735dd2ebc 0d3bb68e3a28 |
line wrap: on
line diff
--- a/Python/getargs.c Mon Dec 03 00:37:28 2001 +0000 +++ b/Python/getargs.c Mon Dec 03 00:43:33 2001 +0000 @@ -231,7 +231,7 @@ p += strlen(p); } if (iarg != 0) { - PyOS_snprintf(p, sizeof(buf) - (buf - p), + PyOS_snprintf(p, sizeof(buf) - (p - buf), "argument %d", iarg); i = 0; p += strlen(p); @@ -243,10 +243,10 @@ } } else { - PyOS_snprintf(p, sizeof(buf) - (buf - p), "argument"); + PyOS_snprintf(p, sizeof(buf) - (p - buf), "argument"); p += strlen(p); } - PyOS_snprintf(p, sizeof(buf) - (buf - p), " %.256s", msg); + PyOS_snprintf(p, sizeof(buf) - (p - buf), " %.256s", msg); message = buf; } PyErr_SetString(PyExc_TypeError, message);
