Revert "[utils] Work around PyPy stupidity with Windows DLLs (Fixes #4392)"

This reverts commit 16040f46d6.
This commit is contained in:
Philipp Hagemeister 2014-12-12 11:33:55 +01:00
parent 62651c556a
commit e2f89ec7aa
2 changed files with 4 additions and 24 deletions

View File

@ -1,10 +1,8 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import ctypes
import getpass import getpass
import optparse import optparse
import os import os
import platform
import re import re
import subprocess import subprocess
import sys import sys
@ -328,22 +326,6 @@ def workaround_optparse_bug9161():
optparse.OptionGroup.add_option = _compat_add_option optparse.OptionGroup.add_option = _compat_add_option
if platform.python_implementation() == 'PyPy':
# PyPy expects byte strings as Windows function names
# https://github.com/rg3/youtube-dl/pull/4392
def compat_WINFUNCTYPE(*args, **kwargs):
real = ctypes.WINFUNCTYPE(*args, **kwargs)
def resf(tpl, *args, **kwargs):
funcname, dll = tpl
return real((str(funcname), dll), *args, **kwargs)
return resf
else:
def compat_WINFUNCTYPE(*args, **kwargs):
return ctypes.WINFUNCTYPE(*args, **kwargs)
__all__ = [ __all__ = [
'compat_HTTPError', 'compat_HTTPError',
'compat_chr', 'compat_chr',
@ -367,7 +349,6 @@ __all__ = [
'compat_urllib_request', 'compat_urllib_request',
'compat_urlparse', 'compat_urlparse',
'compat_urlretrieve', 'compat_urlretrieve',
'compat_WINFUNCTYPE',
'compat_xml_parse_error', 'compat_xml_parse_error',
'shlex_quote', 'shlex_quote',
'subprocess_check_output', 'subprocess_check_output',

View File

@ -41,7 +41,6 @@ from .compat import (
compat_urllib_parse_urlparse, compat_urllib_parse_urlparse,
compat_urllib_request, compat_urllib_request,
compat_urlparse, compat_urlparse,
compat_WINFUNCTYPE,
shlex_quote, shlex_quote,
) )
@ -818,21 +817,21 @@ def _windows_write_string(s, out):
if fileno not in WIN_OUTPUT_IDS: if fileno not in WIN_OUTPUT_IDS:
return False return False
GetStdHandle = compat_WINFUNCTYPE( GetStdHandle = ctypes.WINFUNCTYPE(
ctypes.wintypes.HANDLE, ctypes.wintypes.DWORD)( ctypes.wintypes.HANDLE, ctypes.wintypes.DWORD)(
("GetStdHandle", ctypes.windll.kernel32)) ("GetStdHandle", ctypes.windll.kernel32))
h = GetStdHandle(WIN_OUTPUT_IDS[fileno]) h = GetStdHandle(WIN_OUTPUT_IDS[fileno])
WriteConsoleW = compat_WINFUNCTYPE( WriteConsoleW = ctypes.WINFUNCTYPE(
ctypes.wintypes.BOOL, ctypes.wintypes.HANDLE, ctypes.wintypes.LPWSTR, ctypes.wintypes.BOOL, ctypes.wintypes.HANDLE, ctypes.wintypes.LPWSTR,
ctypes.wintypes.DWORD, ctypes.POINTER(ctypes.wintypes.DWORD), ctypes.wintypes.DWORD, ctypes.POINTER(ctypes.wintypes.DWORD),
ctypes.wintypes.LPVOID)(("WriteConsoleW", ctypes.windll.kernel32)) ctypes.wintypes.LPVOID)(("WriteConsoleW", ctypes.windll.kernel32))
written = ctypes.wintypes.DWORD(0) written = ctypes.wintypes.DWORD(0)
GetFileType = compat_WINFUNCTYPE(ctypes.wintypes.DWORD, ctypes.wintypes.DWORD)(("GetFileType", ctypes.windll.kernel32)) GetFileType = ctypes.WINFUNCTYPE(ctypes.wintypes.DWORD, ctypes.wintypes.DWORD)(("GetFileType", ctypes.windll.kernel32))
FILE_TYPE_CHAR = 0x0002 FILE_TYPE_CHAR = 0x0002
FILE_TYPE_REMOTE = 0x8000 FILE_TYPE_REMOTE = 0x8000
GetConsoleMode = compat_WINFUNCTYPE( GetConsoleMode = ctypes.WINFUNCTYPE(
ctypes.wintypes.BOOL, ctypes.wintypes.HANDLE, ctypes.wintypes.BOOL, ctypes.wintypes.HANDLE,
ctypes.POINTER(ctypes.wintypes.DWORD))( ctypes.POINTER(ctypes.wintypes.DWORD))(
("GetConsoleMode", ctypes.windll.kernel32)) ("GetConsoleMode", ctypes.windll.kernel32))