From 923fece5bd7a8b4d52adabc3c96aa3b12de16220 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 4 Aug 1998 15:04:52 +0000 Subject: 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.) --- Modules/stropmodule.c | 11 +++-------- 1 file 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; -- cgit v0.12