summary refs log tree commit diff
diff options
context:
space:
mode:
authorGrom PE <i@grompe.org.ru>2014-12-06 20:15:41 +0700
committerGrom PE <i@grompe.org.ru>2014-12-06 20:15:41 +0700
commit6ac4e8065a506f92db919ff063cf4d2f00bc81f0 (patch)
treedf1986421c7650303b2292660be0e85e49cff9e9
parentb82f815f373818ba99ee43660e9255e8f4ecac62 (diff)
downloadyoutube-dl-6ac4e8065a506f92db919ff063cf4d2f00bc81f0.tar.gz
youtube-dl-6ac4e8065a506f92db919ff063cf4d2f00bc81f0.tar.xz
youtube-dl-6ac4e8065a506f92db919ff063cf4d2f00bc81f0.zip
Fix utils.py for PyPy on Windows
The line
```python
from __future__ import unicode_literals
```
introduced in commit [ecc0c5ee01f0e5bdd6af0c32cb5b4adcb2a2f78c](https://github.com/rg3/youtube-dl/commit/ecc0c5ee01f0e5bdd6af0c32cb5b4adcb2a2f78c) 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.
-rw-r--r--youtube_dl/utils.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 2e70cc791..2b0f4e589 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -808,22 +808,22 @@ def _windows_write_string(s, out):
 
     GetStdHandle = ctypes.WINFUNCTYPE(
         ctypes.wintypes.HANDLE, ctypes.wintypes.DWORD)(
-        ("GetStdHandle", ctypes.windll.kernel32))
+        (b"GetStdHandle", ctypes.windll.kernel32))
     h = GetStdHandle(WIN_OUTPUT_IDS[fileno])
 
     WriteConsoleW = ctypes.WINFUNCTYPE(
         ctypes.wintypes.BOOL, ctypes.wintypes.HANDLE, ctypes.wintypes.LPWSTR,
         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)
 
-    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_REMOTE = 0x8000
     GetConsoleMode = ctypes.WINFUNCTYPE(
         ctypes.wintypes.BOOL, ctypes.wintypes.HANDLE,
         ctypes.POINTER(ctypes.wintypes.DWORD))(
-        ("GetConsoleMode", ctypes.windll.kernel32))
+        (b"GetConsoleMode", ctypes.windll.kernel32))
     INVALID_HANDLE_VALUE = ctypes.wintypes.DWORD(-1).value
 
     def not_a_console(handle):