X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/11cb3d97caae1888a6d6ae63ff6e2dea9f7cce01..9ca1789eac7b1e6be29918e033b66d6328883575:/catacomb-python.h diff --git a/catacomb-python.h b/catacomb-python.h index 286dd9e..79034af 100644 --- a/catacomb-python.h +++ b/catacomb-python.h @@ -152,6 +152,11 @@ return (0); \ } +#if PY_VERSION_HEX < 0x02050000 /* Compatibility hack */ +# define ht_name name +# define ht_type type +#endif + #define root_pytype 0 #define type_pytype &PyType_Type #define INITTYPE(ty, base) do { \ @@ -237,8 +242,7 @@ extern int convszt(PyObject *, void *); extern int convbool(PyObject *, void *); extern PyObject *abstract_pynew(PyTypeObject *, PyObject *, PyObject *); extern PyObject *getbool(int); -#define DECL_GETU_(n) extern PyObject *getu##n(uint##n); -DOUINTSZ(DECL_GETU_) +extern PyObject *getulong(unsigned long); extern void *newtype(PyTypeObject *, const PyTypeObject *, const char *); extern PyObject * mkexc(PyObject *, PyObject *, const char *, PyMethodDef *); @@ -256,7 +260,7 @@ extern PyMethodDef *donemethods(void); #define GMAP_KWMETHDECL(func, doc) \ extern PyObject *gmapmeth_##func(PyObject *, PyObject *, PyObject *); -#define GMAP_DOMETHODS(METH, KWMETH) \ +#define GMAP_DOROMETHODS(METH, KWMETH) \ METH (has_key, "D.has_key(KEY) -> BOOL") \ METH (keys, "D.keys() -> LIST") \ METH (values, "D.values() -> LIST") \ @@ -264,14 +268,18 @@ extern PyMethodDef *donemethods(void); METH (iterkeys, "D.iterkeys() -> ITER") \ METH (itervalues, "D.itervalues() -> ITER") \ METH (iteritems, "D.iteritems() -> ITER") \ - METH (clear, "D.clear()") \ KWMETH(get, "D.get(KEY, [default = None]) -> VALUE") \ + +#define GMAP_DOMETHODS(METH, KWMETH) \ + GMAP_DOROMETHODS(METH, KWMETH) \ + METH (clear, "D.clear()") \ KWMETH(setdefault, "D.setdefault(K, [default = None]) -> VALUE") \ KWMETH(pop, "D.pop(KEY, [default = ]) -> VALUE") \ METH (popitem, "D.popitem() -> (KEY, VALUE)") \ METH (update, "D.update(MAP)") GMAP_DOMETHODS(GMAP_METHDECL, GMAP_KWMETHDECL) +#define GMAP_ROMETHODS GMAP_DOROMETHODS(GMAP_METH, GMAP_KWMETH) #define GMAP_METHODS GMAP_DOMETHODS(GMAP_METH, GMAP_KWMETH) extern int gmap_pysize(PyObject *); extern PySequenceMethods gmap_pysequence; @@ -296,8 +304,8 @@ extern PyTypeObject *gf_pytype; #define MP_PYCHECK(o) PyObject_TypeCheck((o), mp_pytype) #define GF_PYCHECK(o) PyObject_TypeCheck((o), gf_pytype) -extern mp *mp_frompylong(PyLongObject *); -extern PyLongObject *mp_topylong(mp *); +extern mp *mp_frompylong(PyObject *); +extern PyObject *mp_topylong(mp *); extern mp *tomp(PyObject *); extern mp *getmp(PyObject *); extern int convmp(PyObject *, void *);