]> granicus.if.org Git - python/commitdiff
Backport from upstream version: compatibility with older Python
authorThomas Heller <theller@ctypes.org>
Wed, 15 Mar 2006 21:49:52 +0000 (21:49 +0000)
committerThomas Heller <theller@ctypes.org>
Wed, 15 Mar 2006 21:49:52 +0000 (21:49 +0000)
versions.

Modules/_ctypes/_ctypes.c
Modules/_ctypes/cfield.c
Modules/_ctypes/ctypes.h

index bf88af8f1e7840681dffa8f5da7f973787428d5f..47890dfd10455bab10dabcb6b047baf74c44c669 100644 (file)
@@ -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_",
index de41571b101f2f828a24017579e3736d34a0b61d..336f26543f63b76b4350b4da00ec0377dae9bc05 100644 (file)
@@ -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;
 }
 
index 9347c99d23b19f0b7860aaee2299b7a52aaf6a84..179dcf16166b5ab03b0d148696d30a8cc2085403 100644 (file)
@@ -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))