mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	#16152: fix tokenize to ignore whitespace at the end of the code when no newline is found. Patch by Ned Batchelder.
This commit is contained in:
		
							parent
							
								
									4552e3f95c
								
							
						
					
					
						commit
						2cc3b4ba9f
					
				
					 4 changed files with 12 additions and 1 deletions
				
			
		| 
						 | 
					@ -552,6 +552,11 @@
 | 
				
			||||||
    DEDENT     ''            (4, 0) (4, 0)
 | 
					    DEDENT     ''            (4, 0) (4, 0)
 | 
				
			||||||
    DEDENT     ''            (4, 0) (4, 0)
 | 
					    DEDENT     ''            (4, 0) (4, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Pathological whitespace (http://bugs.python.org/issue16152)
 | 
				
			||||||
 | 
					    >>> dump_tokens("@          ")
 | 
				
			||||||
 | 
					    ENCODING   'utf-8'       (0, 0) (0, 0)
 | 
				
			||||||
 | 
					    OP         '@'           (1, 0) (1, 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Non-ascii identifiers
 | 
					Non-ascii identifiers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    >>> dump_tokens("Örter = 'places'\\ngrün = 'green'")
 | 
					    >>> dump_tokens("Örter = 'places'\\ngrün = 'green'")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -108,7 +108,7 @@ def maybe(*choices): return group(*choices) + '?'
 | 
				
			||||||
                group("'", r'\\\r?\n'),
 | 
					                group("'", r'\\\r?\n'),
 | 
				
			||||||
                r'[bB]?[rR]?"[^\n"\\]*(?:\\.[^\n"\\]*)*' +
 | 
					                r'[bB]?[rR]?"[^\n"\\]*(?:\\.[^\n"\\]*)*' +
 | 
				
			||||||
                group('"', r'\\\r?\n'))
 | 
					                group('"', r'\\\r?\n'))
 | 
				
			||||||
PseudoExtras = group(r'\\\r?\n', Comment, Triple)
 | 
					PseudoExtras = group(r'\\\r?\n|\Z', Comment, Triple)
 | 
				
			||||||
PseudoToken = Whitespace + group(PseudoExtras, Number, Funny, ContStr, Name)
 | 
					PseudoToken = Whitespace + group(PseudoExtras, Number, Funny, ContStr, Name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _compile(expr):
 | 
					def _compile(expr):
 | 
				
			||||||
| 
						 | 
					@ -473,6 +473,8 @@ def _tokenize(readline, encoding):
 | 
				
			||||||
            if pseudomatch:                                # scan for tokens
 | 
					            if pseudomatch:                                # scan for tokens
 | 
				
			||||||
                start, end = pseudomatch.span(1)
 | 
					                start, end = pseudomatch.span(1)
 | 
				
			||||||
                spos, epos, pos = (lnum, start), (lnum, end), end
 | 
					                spos, epos, pos = (lnum, start), (lnum, end), end
 | 
				
			||||||
 | 
					                if start == end:
 | 
				
			||||||
 | 
					                    continue
 | 
				
			||||||
                token, initial = line[start:end], line[start]
 | 
					                token, initial = line[start:end], line[start]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (initial in numchars or                  # ordinary number
 | 
					                if (initial in numchars or                  # ordinary number
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -71,6 +71,7 @@ Des Barry
 | 
				
			||||||
Ulf Bartelt
 | 
					Ulf Bartelt
 | 
				
			||||||
Don Bashford
 | 
					Don Bashford
 | 
				
			||||||
Nick Bastin
 | 
					Nick Bastin
 | 
				
			||||||
 | 
					Ned Batchelder
 | 
				
			||||||
Jeff Bauer
 | 
					Jeff Bauer
 | 
				
			||||||
Mike Bayer
 | 
					Mike Bayer
 | 
				
			||||||
Michael R Bax
 | 
					Michael R Bax
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -143,6 +143,9 @@ Core and Builtins
 | 
				
			||||||
Library
 | 
					Library
 | 
				
			||||||
-------
 | 
					-------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Issue #16152: fix tokenize to ignore whitespace at the end of the code when
 | 
				
			||||||
 | 
					  no newline is found.  Patch by Ned Batchelder.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Issue #1207589: Add Cut/Copy/Paste items to IDLE right click Context Menu
 | 
					- Issue #1207589: Add Cut/Copy/Paste items to IDLE right click Context Menu
 | 
				
			||||||
  Patch by Todd Rovito.
 | 
					  Patch by Todd Rovito.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue