pubkey: Various stupid DSA bugs fixed.
[catacomb-python] / catacomb-python.h
index 286dd9e..79034af 100644 (file)
     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 = <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;
@@ -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 *);