mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	Closed issue #8931: Make alternate formatting for 'c' raise an exception. Patch by Torsten Landschoff.
This commit is contained in:
		
							parent
							
								
									9417764e01
								
							
						
					
					
						commit
						a0d107324d
					
				
					 3 changed files with 13 additions and 0 deletions
				
			
		|  | @ -343,6 +343,8 @@ def test(i, format_spec, result): | |||
|         self.assertRaises(ValueError, 3 .__format__, ",n") | ||||
|         # can't have ',' with 'c' | ||||
|         self.assertRaises(ValueError, 3 .__format__, ",c") | ||||
|         # can't have '#' with 'c' | ||||
|         self.assertRaises(ValueError, 3 .__format__, "#c") | ||||
| 
 | ||||
|         # ensure that only int and float type specifiers work | ||||
|         for format_spec in ([chr(x) for x in range(ord('a'), ord('z')+1)] + | ||||
|  |  | |||
|  | @ -34,6 +34,10 @@ Core and Builtins | |||
|   replacement fields. It now matches the behavior of str.format() in | ||||
|   this regard. Patches by Phil Elson and Ramchandra Apte. | ||||
| 
 | ||||
| - Issue #8931: Make alternate formatting ('#') for type 'c' raise an | ||||
|   exception. It had no effect, now trying to specify it is an error. | ||||
|   Patch by Torsten Landschoff. | ||||
| 
 | ||||
| Library | ||||
| ------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -846,6 +846,13 @@ format_long_internal(PyObject *value, const InternalFormatSpec *format, | |||
|                             " format specifier 'c'"); | ||||
|             goto done; | ||||
|         } | ||||
|         /* error to request alternate format */ | ||||
|         if (format->alternate) { | ||||
|             PyErr_SetString(PyExc_ValueError, | ||||
|                             "Alternate form (#) not allowed with integer" | ||||
|                             " format specifier 'c'"); | ||||
|             goto done; | ||||
|         } | ||||
| 
 | ||||
|         /* taken from unicodeobject.c formatchar() */ | ||||
|         /* Integer input truncated to a character */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Eric V. Smith
						Eric V. Smith