summaryrefslogtreecommitdiff
path: root/coverage/phystokens.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2016-11-05 08:50:36 -0400
committerNed Batchelder <ned@nedbatchelder.com>2016-11-05 08:50:36 -0400
commit01e0d8ad49d74e93e00748a309f9a54b8a91307e (patch)
treeac76fe85c37be40e391ebfde0dfef8db668d11f2 /coverage/phystokens.py
parentc9ee7976fe1c1126c1a6f8e23b0f8fc68c091e6f (diff)
downloadpython-coveragepy-01e0d8ad49d74e93e00748a309f9a54b8a91307e.tar.gz
A fix for coding declarations, bug #529
Diffstat (limited to 'coverage/phystokens.py')
-rw-r--r--coverage/phystokens.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/coverage/phystokens.py b/coverage/phystokens.py
index 5e80ed5..9a697b6 100644
--- a/coverage/phystokens.py
+++ b/coverage/phystokens.py
@@ -290,5 +290,9 @@ def compile_unicode(source, filename, mode):
@contract(source='unicode', returns='unicode')
def neuter_encoding_declaration(source):
"""Return `source`, with any encoding declaration neutered."""
- source = COOKIE_RE.sub("# (deleted declaration)", source, count=2)
+ if COOKIE_RE.search(source):
+ source_lines = source.splitlines(True)
+ for lineno in range(min(2, len(source_lines))):
+ source_lines[lineno] = COOKIE_RE.sub("# (deleted declaration)", source_lines[lineno])
+ source = "".join(source_lines)
return source