summaryrefslogtreecommitdiffstats
path: root/Python/getargs.c
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-12-03 00:43:33 (GMT)
committerTim Peters <tim.peters@gmail.com>2001-12-03 00:43:33 (GMT)
commitfaad5ad59005d16080aa79b593fede25c6a7457c (patch)
treea65ad8b3d7ec365c2bd363763eae7a1a9955b843 /Python/getargs.c
parent17d015409765d29e199d4828cb136acd3196efe6 (diff)
downloadcpython-faad5ad59005d16080aa79b593fede25c6a7457c.zip
cpython-faad5ad59005d16080aa79b593fede25c6a7457c.tar.gz
cpython-faad5ad59005d16080aa79b593fede25c6a7457c.tar.bz2
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.
Diffstat (limited to 'Python/getargs.c')
-rw-r--r--Python/getargs.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/Python/getargs.c b/Python/getargs.c
index a58816f..9df2a2e 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -231,7 +231,7 @@ seterror(int iarg, char *msg, int *levels, char *fname, char *message)
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 @@ seterror(int iarg, char *msg, int *levels, char *fname, char *message)
}
}
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);