[Python-checkins] cpython (2.7): Issue #26581: Use the first coding cookie on a line, not the last one.
serhiy.storchaka
python-checkins at python.org
Sun Mar 20 17:51:21 EDT 2016
https://hg.python.org/cpython/rev/8506d127d482
changeset: 100624:8506d127d482
branch: 2.7
parent: 100621:c3c5a88ddfda
user: Serhiy Storchaka <storchaka at gmail.com>
date: Sun Mar 20 23:36:29 2016 +0200
summary:
Issue #26581: Use the first coding cookie on a line, not the last one.
files:
Lib/idlelib/IOBinding.py | 2 +-
Lib/lib2to3/pgen2/tokenize.py | 2 +-
Misc/NEWS | 3 +++
Tools/scripts/findnocoding.py | 2 +-
4 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/Lib/idlelib/IOBinding.py b/Lib/idlelib/IOBinding.py
--- a/Lib/idlelib/IOBinding.py
+++ b/Lib/idlelib/IOBinding.py
@@ -65,7 +65,7 @@
encoding = encoding.lower()
-coding_re = re.compile(r'^[ \t\f]*#.*coding[:=][ \t]*([-\w.]+)')
+coding_re = re.compile(r'^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)')
blank_re = re.compile(r'^[ \t\f]*(?:[#\r\n]|$)')
class EncodingMessage(SimpleDialog):
diff --git a/Lib/lib2to3/pgen2/tokenize.py b/Lib/lib2to3/pgen2/tokenize.py
--- a/Lib/lib2to3/pgen2/tokenize.py
+++ b/Lib/lib2to3/pgen2/tokenize.py
@@ -236,7 +236,7 @@
startline = False
toks_append(tokval)
-cookie_re = re.compile(r'^[ \t\f]*#.*coding[:=][ \t]*([-\w.]+)')
+cookie_re = re.compile(r'^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)')
blank_re = re.compile(r'^[ \t\f]*(?:[#\r\n]|$)')
def _get_normal_name(orig_enc):
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@
Core and Builtins
-----------------
+- Issue #26581: If coding cookie is specified multiple times on a line in
+ Python source code file, only the first one is taken to account.
+
- Issue #22836: Ensure exception reports from PyErr_Display() and
PyErr_WriteUnraisable() are sensible even when formatting them produces
secondary errors. This affects the reports produced by
diff --git a/Tools/scripts/findnocoding.py b/Tools/scripts/findnocoding.py
--- a/Tools/scripts/findnocoding.py
+++ b/Tools/scripts/findnocoding.py
@@ -32,7 +32,7 @@
"no sophisticated Python source file search will be done.")
-decl_re = re.compile(r'^[ \t\f]*#.*coding[:=][ \t]*([-\w.]+)')
+decl_re = re.compile(r'^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)')
blank_re = re.compile(r'^[ \t\f]*(?:[#\r\n]|$)')
def get_declaration(line):
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list