diff options
author | Eric Smith <eric@trueblade.com> | 2008-07-19 00:33:23 (GMT) |
---|---|---|
committer | Eric Smith <eric@trueblade.com> | 2008-07-19 00:33:23 (GMT) |
commit | 2ad79e82c8db37477582d69eeaf46469da322a89 (patch) | |
tree | 5152678eb469333cd484d8bcadda38252d649236 | |
parent | 32480b0755a4724e62d639f7572fdb87d0f9abfe (diff) | |
download | cpython-2ad79e82c8db37477582d69eeaf46469da322a89.zip cpython-2ad79e82c8db37477582d69eeaf46469da322a89.tar.gz cpython-2ad79e82c8db37477582d69eeaf46469da322a89.tar.bz2 |
Merged revisions 65125 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r65125 | eric.smith | 2008-07-18 20:24:05 -0400 (Fri, 18 Jul 2008) | 1 line
Fix issue 3411: default float format spec fails on negative numbers.
........
-rw-r--r-- | Lib/test/test_types.py | 6 | ||||
-rw-r--r-- | Python/pystrtod.c | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/Lib/test/test_types.py b/Lib/test/test_types.py index 1b8e605..c200e07 100644 --- a/Lib/test/test_types.py +++ b/Lib/test/test_types.py @@ -497,6 +497,12 @@ class TypesTests(unittest.TestCase): test(0.01, '', '0.01') test(0.01, 'g', '0.01') + # test for issue 3411 + test(1.23, '1', '1.23') + test(-1.23, '1', '-1.23') + test(1.23, '1g', '1.23') + test(-1.23, '1g', '-1.23') + test( 1.0, ' g', ' 1') test(-1.0, ' g', '-1') test( 1.0, '+g', '+1') diff --git a/Python/pystrtod.c b/Python/pystrtod.c index 5a96b58..b373852 100644 --- a/Python/pystrtod.c +++ b/Python/pystrtod.c @@ -302,6 +302,10 @@ ensure_decimal_point(char* buffer, size_t buf_size) /* search for the first non-digit character */ char *p = buffer; + if (*p == '-' || *p == '+') + /* Skip leading sign, if present. I think this could only + ever be '-', but it can't hurt to check for both. */ + ++p; while (*p && isdigit(Py_CHARMASK(*p))) ++p; |