mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Issue #3360: Fix incorrect parsing of "020000000000.0".
This commit is contained in:
		
							parent
							
								
									c83f113c8a
								
							
						
					
					
						commit
						64b7e501f4
					
				
					 3 changed files with 8 additions and 10 deletions
				
			
		|  | @ -215,6 +215,10 @@ def test_literals_with_leading_zeroes(self): | ||||||
|         self.assertEqual(eval("-0b000000000010"), -2) |         self.assertEqual(eval("-0b000000000010"), -2) | ||||||
|         self.assertEqual(eval("0o777"), 511) |         self.assertEqual(eval("0o777"), 511) | ||||||
|         self.assertEqual(eval("-0o0000010"), -8) |         self.assertEqual(eval("-0o0000010"), -8) | ||||||
|  |         self.assertEqual(eval("020000000000.0"), 20000000000.0) | ||||||
|  |         self.assertEqual(eval("037777777777e0"), 37777777777.0) | ||||||
|  |         self.assertEqual(eval("01000000000000000000000.0"), | ||||||
|  |                          1000000000000000000000.0) | ||||||
| 
 | 
 | ||||||
|     def test_unary_minus(self): |     def test_unary_minus(self): | ||||||
|         # Verify treatment of unary minus on negative numbers SF bug #660455 |         # Verify treatment of unary minus on negative numbers SF bug #660455 | ||||||
|  |  | ||||||
|  | @ -10,6 +10,9 @@ What's New in Python 2.6 beta 2? | ||||||
| Core and Builtins | Core and Builtins | ||||||
| ----------------- | ----------------- | ||||||
| 
 | 
 | ||||||
|  | - Issue #3360: Fix incorrect parsing of '020000000000.0', which | ||||||
|  |   produced a ValueError instead of giving the correct float. | ||||||
|  | 
 | ||||||
| - Issue #3083: Add alternate (#) formatting for bin, oct, hex output | - Issue #3083: Add alternate (#) formatting for bin, oct, hex output | ||||||
|   for str.format().  This adds the prefix 0b, 0o, or 0x, respectively. |   for str.format().  This adds the prefix 0b, 0o, or 0x, respectively. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										11
									
								
								Python/ast.c
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								Python/ast.c
									
										
									
									
									
								
							|  | @ -3139,16 +3139,7 @@ parsenumber(struct compiling *c, const char *s) | ||||||
| #endif | #endif | ||||||
|         if (*end == 'l' || *end == 'L') |         if (*end == 'l' || *end == 'L') | ||||||
|                 return PyLong_FromString((char *)s, (char **)0, 0); |                 return PyLong_FromString((char *)s, (char **)0, 0); | ||||||
|         if (s[0] == '0') { |         x = PyOS_strtol((char *)s, (char **)&end, 0); | ||||||
|                 x = (long) PyOS_strtoul((char *)s, (char **)&end, 0); |  | ||||||
|                 if (x < 0 && errno == 0) { |  | ||||||
|                                 return PyLong_FromString((char *)s, |  | ||||||
|                                                          (char **)0, |  | ||||||
|                                                          0); |  | ||||||
|                 } |  | ||||||
|         } |  | ||||||
|         else |  | ||||||
|                 x = PyOS_strtol((char *)s, (char **)&end, 0); |  | ||||||
|         if (*end == '\0') { |         if (*end == '\0') { | ||||||
|                 if (errno != 0) |                 if (errno != 0) | ||||||
|                         return PyLong_FromString((char *)s, (char **)0, 0); |                         return PyLong_FromString((char *)s, (char **)0, 0); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Mark Dickinson
						Mark Dickinson