summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2007-11-08 16:34:32 (GMT)
committerChristian Heimes <christian@cheimes.de>2007-11-08 16:34:32 (GMT)
commit8bd14fb398b1b89c82defdac6c5755c9ca86859b (patch)
tree6b0c944665e76f33d32bd40c7676693c7556a2a6
parent1a13d597093422d666e0efa3d6d51f8a507b5317 (diff)
downloadcpython-8bd14fb398b1b89c82defdac6c5755c9ca86859b.zip
cpython-8bd14fb398b1b89c82defdac6c5755c9ca86859b.tar.gz
cpython-8bd14fb398b1b89c82defdac6c5755c9ca86859b.tar.bz2
Fixed #1403 where compileall and py_compile choked on an encoding header in a py file. Both modules need more unit tests.
-rw-r--r--Lib/io.py3
-rw-r--r--Lib/py_compile.py2
2 files changed, 4 insertions, 1 deletions
diff --git a/Lib/io.py b/Lib/io.py
index b305b53..c2f5d3e 100644
--- a/Lib/io.py
+++ b/Lib/io.py
@@ -1063,6 +1063,9 @@ class TextIOWrapper(TextIOBase):
else:
encoding = locale.getpreferredencoding()
+ if not isinstance(encoding, str):
+ raise ValueError("invalid encoding: %r" % encoding)
+
self.buffer = buffer
self._encoding = encoding
self._readuniversal = not newline
diff --git a/Lib/py_compile.py b/Lib/py_compile.py
index f7a2002..912972b 100644
--- a/Lib/py_compile.py
+++ b/Lib/py_compile.py
@@ -88,7 +88,7 @@ def read_encoding(file, default):
break
m = re.match(r".*\bcoding:\s*(\S+)\b", line)
if m:
- return str(m.group(1))
+ return m.group(1).decode("ascii")
return default
finally:
f.close()