summaryrefslogtreecommitdiffstats
path: root/Modules/_ctypes
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2020-10-19 22:06:05 (GMT)
committerGitHub <noreply@github.com>2020-10-19 22:06:05 (GMT)
commit5456e78f4593edc277ab72fb9a9db1ebae7d4c2d (patch)
tree5cd3f92044f0287dbd6724a89f3276939a9b975d /Modules/_ctypes
parent33242a9328cb3912f02819d2d092bf89681000b2 (diff)
downloadcpython-5456e78f4593edc277ab72fb9a9db1ebae7d4c2d.zip
cpython-5456e78f4593edc277ab72fb9a9db1ebae7d4c2d.tar.gz
cpython-5456e78f4593edc277ab72fb9a9db1ebae7d4c2d.tar.bz2
bpo-16396: Allow wintypes to be imported on non-Windows systems. (GH-21394)
Co-authored-by: Christian Heimes <christian@python.org>
Diffstat (limited to 'Modules/_ctypes')
-rw-r--r--Modules/_ctypes/cfield.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/Modules/_ctypes/cfield.c b/Modules/_ctypes/cfield.c
index 3bd9ae4..9893929 100644
--- a/Modules/_ctypes/cfield.c
+++ b/Modules/_ctypes/cfield.c
@@ -658,7 +658,11 @@ i_get_sw(void *ptr, Py_ssize_t size)
return PyLong_FromLong(val);
}
-#ifdef MS_WIN32
+#ifndef MS_WIN32
+/* http://msdn.microsoft.com/en-us/library/cc237864.aspx */
+#define VARIANT_FALSE 0x0000
+#define VARIANT_TRUE 0xFFFF
+#endif
/* short BOOL - VARIANT_BOOL */
static PyObject *
vBOOL_set(void *ptr, PyObject *value, Py_ssize_t size)
@@ -680,7 +684,6 @@ vBOOL_get(void *ptr, Py_ssize_t size)
{
return PyBool_FromLong((long)*(short int *)ptr);
}
-#endif
static PyObject *
bool_set(void *ptr, PyObject *value, Py_ssize_t size)
@@ -1511,8 +1514,8 @@ static struct fielddesc formattable[] = {
#endif
#ifdef MS_WIN32
{ 'X', BSTR_set, BSTR_get, &ffi_type_pointer},
- { 'v', vBOOL_set, vBOOL_get, &ffi_type_sshort},
#endif
+ { 'v', vBOOL_set, vBOOL_get, &ffi_type_sshort},
#if SIZEOF__BOOL == 1
{ '?', bool_set, bool_get, &ffi_type_uchar}, /* Also fallback for no native _Bool support */
#elif SIZEOF__BOOL == SIZEOF_SHORT