Commits

Armin Rigo committed 7341987

Use getwinerror() here

Comments (0)

Files changed (1)

pypy/module/posix/app_startfile.py

         """)
         self.NULL = ffi.NULL
         self.cast = ffi.cast
-        self.libK = ffi.dlopen("Kernel32.dll")
-        self.libS = ffi.dlopen("Shell32.dll")
+        self.lib = ffi.dlopen("Shell32.dll")
         self.SW_SHOWNORMAL = 1
+        self.getwinerror = ffi.getwinerror
 
 _cffi_wrapper = None
 
     if isinstance(filepath, str):
         if isinstance(operation, unicode):
             operation = operation.encode("ascii")
-        rc = w.libS.ShellExecuteA(w.NULL, operation, filepath,
-                                  w.NULL, w.NULL, w.SW_SHOWNORMAL)
+        rc = w.lib.ShellExecuteA(w.NULL, operation, filepath,
+                                 w.NULL, w.NULL, w.SW_SHOWNORMAL)
     elif isinstance(filepath, unicode):
         if isinstance(operation, str):
             operation = operation.decode("ascii")
-        rc = w.libS.ShellExecuteW(w.NULL, operation, filepath,
-                                  w.NULL, w.NULL, w.SW_SHOWNORMAL)
+        rc = w.lib.ShellExecuteW(w.NULL, operation, filepath,
+                                 w.NULL, w.NULL, w.SW_SHOWNORMAL)
     else:
         raise TypeError("argument 1 must be str or unicode")
     rc = int(w.cast("uintptr_t", rc))
     if rc <= 32:
-        code = w.libK.GetLastError()
-        try:
-            import _rawffi
-            msg = _rawffi.FormatError(code)
-        except ImportError:
-            msg = 'Error %s' % code
+        code, msg = w.getwinerror()
         raise WindowsError(code, msg, filepath)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.