changeset: 80190:eb7ea51e658e branch: 2.7 parent: 80179:466cbfb3c0c6 user: Ezio Melotti date: Sat Nov 03 17:30:51 2012 +0200 files: Lib/test/test_tokenize.py Lib/tokenize.py Misc/ACKS Misc/NEWS description: #16152: fix tokenize to ignore whitespace at the end of the code when no newline is found. Patch by Ned Batchelder. diff -r 466cbfb3c0c6 -r eb7ea51e658e Lib/test/test_tokenize.py --- a/Lib/test/test_tokenize.py Fri Nov 02 07:34:37 2012 +0100 +++ b/Lib/test/test_tokenize.py Sat Nov 03 17:30:51 2012 +0200 @@ -550,6 +550,10 @@ NAME 'pass' (3, 9) (3, 13) DEDENT '' (4, 0) (4, 0) DEDENT '' (4, 0) (4, 0) + +Pathological whitespace (http://bugs.python.org/issue16152) + >>> dump_tokens("@ ") + OP '@' (1, 0) (1, 1) """ diff -r 466cbfb3c0c6 -r eb7ea51e658e Lib/tokenize.py --- a/Lib/tokenize.py Fri Nov 02 07:34:37 2012 +0100 +++ b/Lib/tokenize.py Sat Nov 03 17:30:51 2012 +0200 @@ -95,7 +95,7 @@ group("'", r'\\\r?\n'), r'[uUbB]?[rR]?"[^\n"\\]*(?:\\.[^\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) tokenprog, pseudoprog, single3prog, double3prog = map( @@ -362,6 +362,8 @@ if pseudomatch: # scan for tokens start, end = pseudomatch.span(1) spos, epos, pos = (lnum, start), (lnum, end), end + if start == end: + continue token, initial = line[start:end], line[start] if initial in numchars or \ diff -r 466cbfb3c0c6 -r eb7ea51e658e Misc/ACKS --- a/Misc/ACKS Fri Nov 02 07:34:37 2012 +0100 +++ b/Misc/ACKS Sat Nov 03 17:30:51 2012 +0200 @@ -64,6 +64,7 @@ Ulf Bartelt Don Bashford Nick Bastin +Ned Batchelder Jeff Bauer Mike Bayer Michael R Bax diff -r 466cbfb3c0c6 -r eb7ea51e658e Misc/NEWS --- a/Misc/NEWS Fri Nov 02 07:34:37 2012 +0100 +++ b/Misc/NEWS Sat Nov 03 17:30:51 2012 +0200 @@ -130,6 +130,9 @@ 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 Patch by Todd Rovito.