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 { \
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 *);
#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") \
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 = <error>]) -> 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;