#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:
Ezio Melotti 2012-11-03 17:30:51 +02:00
parent d7bae5e85a
commit 7d24b1698a
4 changed files with 11 additions and 1 deletions

View File

@ -550,6 +550,10 @@ Evil tabs
NAME 'pass' (3, 9) (3, 13) NAME 'pass' (3, 9) (3, 13)
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("@ ")
OP '@' (1, 0) (1, 1)
""" """

View File

@ -95,7 +95,7 @@ ContStr = group(r"[uUbB]?[rR]?'[^\n'\\]*(?:\\.[^\n'\\]*)*" +
group("'", r'\\\r?\n'), group("'", r'\\\r?\n'),
r'[uUbB]?[rR]?"[^\n"\\]*(?:\\.[^\n"\\]*)*' + r'[uUbB]?[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)
tokenprog, pseudoprog, single3prog, double3prog = map( tokenprog, pseudoprog, single3prog, double3prog = map(
@ -362,6 +362,8 @@ def generate_tokens(readline):
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 \ if initial in numchars or \

View File

@ -64,6 +64,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

View File

@ -130,6 +130,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.