Fix utils.py for PyPy on Windows
The line ```python from __future__ import unicode_literals ``` introduced in commit [mainecc0c5ee01
](ecc0c5ee01
) broke youtube-dl for PyPy on Windows, making it unable to locate WinAPI functions. Error: "TypeError: function name must be a string or integer" Adding "b" prefix to strings with WinAPI function names fixes it.
parent
b82f815f37
commit
6ac4e8065a
|
@ -808,22 +808,22 @@ def _windows_write_string(s, out):
|
||||||
|
|
||||||
GetStdHandle = ctypes.WINFUNCTYPE(
|
GetStdHandle = ctypes.WINFUNCTYPE(
|
||||||
ctypes.wintypes.HANDLE, ctypes.wintypes.DWORD)(
|
ctypes.wintypes.HANDLE, ctypes.wintypes.DWORD)(
|
||||||
("GetStdHandle", ctypes.windll.kernel32))
|
(b"GetStdHandle", ctypes.windll.kernel32))
|
||||||
h = GetStdHandle(WIN_OUTPUT_IDS[fileno])
|
h = GetStdHandle(WIN_OUTPUT_IDS[fileno])
|
||||||
|
|
||||||
WriteConsoleW = ctypes.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)((b"WriteConsoleW", ctypes.windll.kernel32))
|
||||||
written = ctypes.wintypes.DWORD(0)
|
written = ctypes.wintypes.DWORD(0)
|
||||||
|
|
||||||
GetFileType = ctypes.WINFUNCTYPE(ctypes.wintypes.DWORD, ctypes.wintypes.DWORD)(("GetFileType", ctypes.windll.kernel32))
|
GetFileType = ctypes.WINFUNCTYPE(ctypes.wintypes.DWORD, ctypes.wintypes.DWORD)((b"GetFileType", ctypes.windll.kernel32))
|
||||||
FILE_TYPE_CHAR = 0x0002
|
FILE_TYPE_CHAR = 0x0002
|
||||||
FILE_TYPE_REMOTE = 0x8000
|
FILE_TYPE_REMOTE = 0x8000
|
||||||
GetConsoleMode = ctypes.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))
|
(b"GetConsoleMode", ctypes.windll.kernel32))
|
||||||
INVALID_HANDLE_VALUE = ctypes.wintypes.DWORD(-1).value
|
INVALID_HANDLE_VALUE = ctypes.wintypes.DWORD(-1).value
|
||||||
|
|
||||||
def not_a_console(handle):
|
def not_a_console(handle):
|
||||||
|
|
Loading…
Reference in New Issue