$OpenBSD: patch-wurlitzer_py,v 1.1.1.1 2019/02/14 22:34:18 mariani Exp $ Index: wurlitzer.py --- wurlitzer.py.orig +++ wurlitzer.py @@ -32,13 +32,20 @@ import warnings libc = ctypes.CDLL(None) -try: - c_stdout_p = ctypes.c_void_p.in_dll(libc, 'stdout') - c_stderr_p = ctypes.c_void_p.in_dll(libc, 'stderr') -except ValueError: # pragma: no cover - # libc.stdout is has a funny name on OS X - c_stdout_p = ctypes.c_void_p.in_dll(libc, '__stdoutp') # pragma: no cover - c_stderr_p = ctypes.c_void_p.in_dll(libc, '__stderrp') # pragma: no cover +if sys.platform.startswith('openbsd'): + FILE = (ctypes.c_byte * SIZE_OF_FILE) + sFType = (FILE * 3) + sFArray = sFType.in_dll(libc, '__sF') + c_stdout_p = ctypes.pointer(sFArray[1]) + c_stderr_p = ctypes.pointer(sFArray[2]) +else: + try: + c_stdout_p = ctypes.c_void_p.in_dll(libc, 'stdout') + c_stderr_p = ctypes.c_void_p.in_dll(libc, 'stderr') + except ValueError: # pragma: no cover + # libc.stdout is has a funny name on OS X + c_stdout_p = ctypes.c_void_p.in_dll(libc, '__stdoutp') # pragma: no cover + c_stderr_p = ctypes.c_void_p.in_dll(libc, '__stderrp') # pragma: no cover STDOUT = 2 PIPE = 3