[pypy-svn] r76273 - pypy/trunk/pypy/rlib

afa at codespeak.net afa at codespeak.net
Sat Jul 17 12:17:56 CEST 2010


Author: afa
Date: Sat Jul 17 12:17:54 2010
New Revision: 76273

Modified:
   pypy/trunk/pypy/rlib/rwin32.py
Log:
Fix translation when --cc=mingw32 is used, but no Microsoft compiler is installed.


Modified: pypy/trunk/pypy/rlib/rwin32.py
==============================================================================
--- pypy/trunk/pypy/rlib/rwin32.py	(original)
+++ pypy/trunk/pypy/rlib/rwin32.py	Sat Jul 17 12:17:54 2010
@@ -136,13 +136,29 @@
                     }
                     return 0;
                 }''')
-        exename = static_platform.compile(
-            [cfile], ExternalCompilationInfo(),
-            outputfilename = "dosmaperr",
-            standalone=True)
-        output = os.popen(str(exename))
-        errors = dict(map(int, line.split())
-                      for line in output)
+        try:
+            exename = static_platform.compile(
+                [cfile], ExternalCompilationInfo(),
+                outputfilename = "dosmaperr",
+                standalone=True)
+        except WindowsError:
+            # Fallback for the mingw32 compiler
+            errors = {
+                2: 2, 3: 2, 4: 24, 5: 13, 6: 9, 7: 12, 8: 12, 9: 12, 10: 7,
+                11: 8, 15: 2, 16: 13, 17: 18, 18: 2, 19: 13, 20: 13, 21: 13,
+                22: 13, 23: 13, 24: 13, 25: 13, 26: 13, 27: 13, 28: 13,
+                29: 13, 30: 13, 31: 13, 32: 13, 33: 13, 34: 13, 35: 13,
+                36: 13, 53: 2, 65: 13, 67: 2, 80: 17, 82: 13, 83: 13, 89: 11,
+                108: 13, 109: 32, 112: 28, 114: 9, 128: 10, 129: 10, 130: 9,
+                132: 13, 145: 41, 158: 13, 161: 2, 164: 11, 167: 13, 183: 17,
+                188: 8, 189: 8, 190: 8, 191: 8, 192: 8, 193: 8, 194: 8,
+                195: 8, 196: 8, 197: 8, 198: 8, 199: 8, 200: 8, 201: 8,
+                202: 8, 206: 2, 215: 11, 1816: 12,
+                }
+        else:
+            output = os.popen(str(exename))
+            errors = dict(map(int, line.split())
+                          for line in output)
         return errors, errno.EINVAL
 
     # A bit like strerror...



More information about the Pypy-commit mailing list