diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2009-01-20 20:45:53 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2009-01-20 20:45:53 (GMT) |
commit | 9ffc0205a62972fa8faaf2d4577d3a3efaeb80d9 (patch) | |
tree | 15f9a3c2658cdbe9a1e36101b379a7c6d4620be4 | |
parent | 8dd05147d6224f4982ef6b14d904bb600ef33ea3 (diff) | |
download | cpython-9ffc0205a62972fa8faaf2d4577d3a3efaeb80d9.zip cpython-9ffc0205a62972fa8faaf2d4577d3a3efaeb80d9.tar.gz cpython-9ffc0205a62972fa8faaf2d4577d3a3efaeb80d9.tar.bz2 |
Issue 4842, patch 2/2: int('3L') should be invalid in Python 3.x.
-rw-r--r-- | Lib/test/test_long.py | 10 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Objects/longobject.c | 2 |
3 files changed, 13 insertions, 2 deletions
diff --git a/Lib/test/test_long.py b/Lib/test/test_long.py index ed8c886..c1f8b5c 100644 --- a/Lib/test/test_long.py +++ b/Lib/test/test_long.py @@ -284,6 +284,16 @@ class LongTest(unittest.TestCase): self.assertRaises(ValueError, int, '123\0') self.assertRaises(ValueError, int, '53', 40) + # trailing L should no longer be accepted... + self.assertRaises(ValueError, int, '123L') + self.assertRaises(ValueError, int, '123l') + self.assertRaises(ValueError, int, '0L') + self.assertRaises(ValueError, int, '-37L') + self.assertRaises(ValueError, int, '0x32L', 16) + self.assertRaises(ValueError, int, '1L', 21) + # ... but it's just a normal digit if base >= 22 + self.assertEqual(int('1L', 22), 43) + self.assertRaises(TypeError, int, 1, 12) # SF patch #1638879: embedded NULs were not detected with @@ -12,6 +12,9 @@ What's New in Python 3.1 alpha 0 Core and Builtins ----------------- +- Issue #4842: Don't allow trailing 'L' when constructing an integer + from a string. + - Issue #4991: os.fdopen now raises an OSError for invalid file descriptors. - Issue #4838: When a module is deallocated, free the memory backing the diff --git a/Objects/longobject.c b/Objects/longobject.c index b7ba796..46efe5f 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -1990,8 +1990,6 @@ digit beyond the first. goto onError; if (sign < 0) Py_SIZE(z) = -(Py_SIZE(z)); - if (*str == 'L' || *str == 'l') - str++; while (*str && isspace(Py_CHARMASK(*str))) str++; if (*str != '\0') |