summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/IOBinding.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2014-09-05 07:22:05 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2014-09-05 07:22:05 (GMT)
commit3eb554fc828c812a31c1a3cd9f619eacbb708010 (patch)
tree8f949a481d0170358d6d06ea577d0ce766383d15 /Lib/idlelib/IOBinding.py
parent423f1282b3476e2e58b6631632f2521b80f556c7 (diff)
downloadcpython-3eb554fc828c812a31c1a3cd9f619eacbb708010.zip
cpython-3eb554fc828c812a31c1a3cd9f619eacbb708010.tar.gz
cpython-3eb554fc828c812a31c1a3cd9f619eacbb708010.tar.bz2
Issue #22221: Backported fixes from Python 3 (issue #18960).
* Now the source encoding declaration on the second line isn't effective if the first line contains anything except a comment. This affects compile(), eval() and exec() too. * IDLE now ignores the source encoding declaration on the second line if the first line contains anything except a comment. * 2to3 and the findnocoding.py script now ignore the source encoding declaration on the second line if the first line contains anything except a comment.
Diffstat (limited to 'Lib/idlelib/IOBinding.py')
-rw-r--r--Lib/idlelib/IOBinding.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/Lib/idlelib/IOBinding.py b/Lib/idlelib/IOBinding.py
index aedd372..e3affa8 100644
--- a/Lib/idlelib/IOBinding.py
+++ b/Lib/idlelib/IOBinding.py
@@ -72,6 +72,7 @@ else:
encoding = encoding.lower()
coding_re = re.compile(r'^[ \t\f]*#.*coding[:=][ \t]*([-\w.]+)')
+blank_re = re.compile(r'^[ \t\f]*(?:[#\r\n]|$)')
class EncodingMessage(SimpleDialog):
"Inform user that an encoding declaration is needed."
@@ -130,6 +131,8 @@ def coding_spec(str):
match = coding_re.match(line)
if match is not None:
break
+ if not blank_re.match(line):
+ return None
else:
return None
name = match.group(1)