Issue #29082: Fixed loading libraries in ctypes by unicode names on Windows.
Original patch by Chi Hsuan Yen.
This commit is contained in:
parent
c8a752eaff
commit
99ba17f553
|
@ -3,6 +3,7 @@ import sys, unittest
|
|||
import os
|
||||
from ctypes.util import find_library
|
||||
from ctypes.test import is_resource_enabled
|
||||
import test.test_support as support
|
||||
|
||||
libc_name = None
|
||||
if os.name == "nt":
|
||||
|
@ -27,6 +28,12 @@ class LoaderTest(unittest.TestCase):
|
|||
CDLL(os.path.basename(libc_name))
|
||||
self.assertRaises(OSError, CDLL, self.unknowndll)
|
||||
|
||||
@support.requires_unicode
|
||||
@unittest.skipUnless(libc_name is not None, 'could not find libc')
|
||||
def test_load_unicode(self):
|
||||
CDLL(unicode(libc_name))
|
||||
self.assertRaises(OSError, CDLL, unicode(self.unknowndll))
|
||||
|
||||
@unittest.skipUnless(libc_name is not None, 'could not find libc')
|
||||
@unittest.skipUnless(libc_name is not None and
|
||||
os.path.basename(libc_name) == "libc.so.6",
|
||||
|
|
|
@ -23,6 +23,9 @@ Extension Modules
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #29082: Fixed loading libraries in ctypes by unicode names on Windows.
|
||||
Original patch by Chi Hsuan Yen.
|
||||
|
||||
- Issue #29006: Revert change from issue #10513 for making sqlite more liable to
|
||||
emit "database table is locked" errors.
|
||||
|
||||
|
|
|
@ -1281,7 +1281,7 @@ static PyObject *load_library(PyObject *self, PyObject *args)
|
|||
PyObject *nameobj;
|
||||
PyObject *ignored;
|
||||
HMODULE hMod;
|
||||
if (!PyArg_ParseTuple(args, "S|O:LoadLibrary", &nameobj, &ignored))
|
||||
if (!PyArg_ParseTuple(args, "O|O:LoadLibrary", &nameobj, &ignored))
|
||||
return NULL;
|
||||
#ifdef _UNICODE
|
||||
name = alloca((PyString_Size(nameobj) + 1) * sizeof(WCHAR));
|
||||
|
|
Loading…
Reference in New Issue