summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorThomas Heller <theller@ctypes.org>2006-03-15 21:49:52 (GMT)
committerThomas Heller <theller@ctypes.org>2006-03-15 21:49:52 (GMT)
commit9998f78d6dc78e1e2652f07423e25353a32413a3 (patch)
tree1b37242fd0a6fce47a4680f582bed8f78b300f6a /Modules
parentf99b8162a2e6969cf9b46013c7ef383359142e62 (diff)
downloadcpython-9998f78d6dc78e1e2652f07423e25353a32413a3.zip
cpython-9998f78d6dc78e1e2652f07423e25353a32413a3.tar.gz
cpython-9998f78d6dc78e1e2652f07423e25353a32413a3.tar.bz2
Backport from upstream version: compatibility with older Python
versions.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_ctypes/_ctypes.c8
-rw-r--r--Modules/_ctypes/cfield.c18
-rw-r--r--Modules/_ctypes/ctypes.h13
3 files changed, 35 insertions, 4 deletions
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index bf88af8..47890df 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -3674,7 +3674,11 @@ CreateArrayType(PyObject *itemtype, Py_ssize_t length)
if (cache == NULL)
return NULL;
}
+#if (PY_VERSION_HEX < 0x02050000)
+ key = Py_BuildValue("(Oi)", itemtype, length);
+#else
key = Py_BuildValue("(On)", itemtype, length);
+#endif
if (!key)
return NULL;
result = PyDict_GetItem(cache, key);
@@ -3698,7 +3702,11 @@ CreateArrayType(PyObject *itemtype, Py_ssize_t length)
#endif
result = PyObject_CallFunction((PyObject *)&ArrayType_Type,
+#if (PY_VERSION_HEX < 0x02050000)
+ "s(O){s:i,s:O}",
+#else
"s(O){s:n,s:O}",
+#endif
name,
&Array_Type,
"_length_",
diff --git a/Modules/_ctypes/cfield.c b/Modules/_ctypes/cfield.c
index de41571..336f265 100644
--- a/Modules/_ctypes/cfield.c
+++ b/Modules/_ctypes/cfield.c
@@ -250,11 +250,21 @@ CField_repr(CFieldObject *self)
name = ((PyTypeObject *)self->proto)->tp_name;
if (bits)
- result = PyString_FromFormat("<Field type=%s, ofs=%d:%d, bits=%d>",
- name, (int)self->offset, size, bits);
+ result = PyString_FromFormat(
+#if (PY_VERSION_HEX < 0x02050000)
+ "<Field type=%s, ofs=%d:%d, bits=%d>",
+#else
+ "<Field type=%s, ofs=%zd:%d, bits=%d>",
+#endif
+ name, self->offset, size, bits);
else
- result = PyString_FromFormat("<Field type=%s, ofs=%d, size=%d>",
- name, (int)self->offset, size);
+ result = PyString_FromFormat(
+#if (PY_VERSION_HEX < 0x02050000)
+ "<Field type=%s, ofs=%d, size=%d>",
+#else
+ "<Field type=%s, ofs=%zd, size=%d>",
+#endif
+ name, self->offset, size);
return result;
}
diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h
index 9347c99..179dcf1 100644
--- a/Modules/_ctypes/ctypes.h
+++ b/Modules/_ctypes/ctypes.h
@@ -1,5 +1,18 @@
/******************************************************************/
+#if (PY_VERSION_HEX < 0x02050000)
+typedef int Py_ssize_t;
+#define lenfunc inquiry
+#define readbufferproc getreadbufferproc
+#define writebufferproc getwritebufferproc
+#define segcountproc getsegcountproc
+#define charbufferproc getcharbufferproc
+#define ssizeargfunc intargfunc
+#define ssizessizeargfunc intintargfunc
+#define ssizeobjargproc intobjargproc
+#define ssizessizeobjargproc intintobjargproc
+#endif
+
#ifndef MS_WIN32
#define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b))