summaryrefslogtreecommitdiffstats
path: root/Modules
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
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')
-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;