Matej Stuchlik dfc8239
diff -r 7fa3e824a4ee Lib/py_compile.py
Matej Stuchlik dfc8239
--- a/Lib/py_compile.py	Tue Oct 29 22:25:06 2013 -0400
Matej Stuchlik dfc8239
+++ b/Lib/py_compile.py	Wed Oct 30 11:08:31 2013 +0100
Matej Stuchlik dfc8239
@@ -108,15 +108,15 @@
Matej Stuchlik dfc8239
     byte-compile all installed files (or all files in selected
Matej Stuchlik dfc8239
     directories).
Matej Stuchlik dfc8239
     """
Matej Stuchlik dfc8239
-    with tokenize.open(file) as f:
Matej Stuchlik dfc8239
-        try:
Matej Stuchlik dfc8239
-            st = os.fstat(f.fileno())
Matej Stuchlik dfc8239
-        except AttributeError:
Matej Stuchlik dfc8239
-            st = os.stat(file)
Matej Stuchlik dfc8239
-        timestamp = int(st.st_mtime)
Matej Stuchlik dfc8239
-        size = st.st_size & 0xFFFFFFFF
Matej Stuchlik dfc8239
-        codestring = f.read()
Matej Stuchlik dfc8239
     try:
Matej Stuchlik dfc8239
+        with tokenize.open(file) as f:
Matej Stuchlik dfc8239
+            try:
Matej Stuchlik dfc8239
+                st = os.fstat(f.fileno())
Matej Stuchlik dfc8239
+            except AttributeError:
Matej Stuchlik dfc8239
+                st = os.stat(file)
Matej Stuchlik dfc8239
+            timestamp = int(st.st_mtime)
Matej Stuchlik dfc8239
+            size = st.st_size & 0xFFFFFFFF
Matej Stuchlik dfc8239
+            codestring = f.read()
Matej Stuchlik dfc8239
         codeobject = builtins.compile(codestring, dfile or file, 'exec',
Matej Stuchlik dfc8239
                                       optimize=optimize)
Matej Stuchlik dfc8239
     except Exception as err:
Matej Stuchlik dfc8239
diff -r 7fa3e824a4ee Lib/test/test_py_compile.py
Matej Stuchlik dfc8239
--- a/Lib/test/test_py_compile.py	Tue Oct 29 22:25:06 2013 -0400
Matej Stuchlik dfc8239
+++ b/Lib/test/test_py_compile.py	Wed Oct 30 11:08:31 2013 +0100
Matej Stuchlik dfc8239
@@ -54,6 +54,10 @@
Matej Stuchlik dfc8239
         self.assertTrue(os.path.exists(self.pyc_path))
Matej Stuchlik dfc8239
         self.assertFalse(os.path.exists(self.cache_path))
Matej Stuchlik dfc8239
 
Matej Stuchlik dfc8239
+    def test_bad_coding(self):
Matej Stuchlik dfc8239
+        bad_coding = os.path.join(os.path.dirname(__file__), 'bad_coding2.py')
Matej Stuchlik dfc8239
+        self.assertIsNone(py_compile.compile(bad_coding, doraise=False))
Matej Stuchlik dfc8239
+
Matej Stuchlik dfc8239
 def test_main():
Matej Stuchlik dfc8239
     support.run_unittest(PyCompileTests)
Matej Stuchlik dfc8239