summaryrefslogtreecommitdiffstats
path: root/Modules/stropmodule.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1998-08-04 15:04:52 (GMT)
committerGuido van Rossum <guido@python.org>1998-08-04 15:04:52 (GMT)
commit923fece5bd7a8b4d52adabc3c96aa3b12de16220 (patch)
tree5ab7e71f327475b8b5bbbe7a126c9c3ebc62129c /Modules/stropmodule.c
parentac6a37ae55b0f165dee662d65976c2d3ab9d2325 (diff)
downloadcpython-923fece5bd7a8b4d52adabc3c96aa3b12de16220.zip
cpython-923fece5bd7a8b4d52adabc3c96aa3b12de16220.tar.gz
cpython-923fece5bd7a8b4d52adabc3c96aa3b12de16220.tar.bz2
Better error messages when raising ValueError for int literals. (The
previous version of this code would not show the offending input, even though there was code that attempted this.)
Diffstat (limited to 'Modules/stropmodule.c')
-rw-r--r--Modules/stropmodule.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/Modules/stropmodule.c b/Modules/stropmodule.c
index 73a35c9..34ac71a 100644
--- a/Modules/stropmodule.c
+++ b/Modules/stropmodule.c
@@ -696,22 +696,17 @@ strop_atoi(self, args)
while (*s && isspace(Py_CHARMASK(*s)))
s++;
- if (s[0] == '\0') {
- PyErr_SetString(PyExc_ValueError, "empty string for atoi()");
- return NULL;
- }
errno = 0;
if (base == 0 && s[0] == '0')
x = (long) PyOS_strtoul(s, &end, base);
else
x = PyOS_strtol(s, &end, base);
- if (end == s || !isxdigit(end[-1])) {
- PyErr_SetString(PyExc_ValueError, "no digits in int constant");
- return NULL;
- }
+ if (end == s || !isxdigit(end[-1]))
+ goto bad;
while (*end && isspace(Py_CHARMASK(*end)))
end++;
if (*end != '\0') {
+ bad:
sprintf(buffer, "invalid literal for atoi(): %.200s", s);
PyErr_SetString(PyExc_ValueError, buffer);
return NULL;