diff options
author | Thomas Heller <theller@ctypes.org> | 2006-03-15 21:49:52 (GMT) |
---|---|---|
committer | Thomas Heller <theller@ctypes.org> | 2006-03-15 21:49:52 (GMT) |
commit | 9998f78d6dc78e1e2652f07423e25353a32413a3 (patch) | |
tree | 1b37242fd0a6fce47a4680f582bed8f78b300f6a /Modules | |
parent | f99b8162a2e6969cf9b46013c7ef383359142e62 (diff) | |
download | cpython-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.c | 8 | ||||
-rw-r--r-- | Modules/_ctypes/cfield.c | 18 | ||||
-rw-r--r-- | Modules/_ctypes/ctypes.h | 13 |
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)) |