catacomb-python.h: Add a macro to declare module init functions.
[catacomb-python] / catacomb-python.h
index b0f933a..87bf369 100644 (file)
@@ -39,7 +39,6 @@
 #include <longintrepr.h>
 #include <structmember.h>
 
-#include <mLib/darray.h>
 #include <mLib/dstr.h>
 #include <mLib/macros.h>
 #include <mLib/quis.h>
@@ -176,11 +175,6 @@ PRIVATE_SYMBOLS;
     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_META(ty, base, meta) do {                             \
@@ -190,6 +184,7 @@ PRIVATE_SYMBOLS;
 #define INITTYPE(ty, base) INITTYPE_META(ty, base, type)
 
 extern PyObject *home_module;
+extern PyObject *modname;
 
 #define INSERT(name, ob) do {  \
   PyObject *_o = (PyObject *)(ob);                                     \
@@ -224,12 +219,11 @@ extern PyObject *home_module;
 #define DOMODINSERT(m) m##_pyinsert(mod);
 #define INIT_MODULES do { MODULES(DOMODINIT) } while (0)
 #define INSERT_MODULES do { MODULES(DOMODINSERT) } while (0)
-
-#define DO(m)                                                          \
+#define DECLARE_MODINIT(m)                                             \
   extern void m##_pyinit(void);                                                \
   extern void m##_pyinsert(PyObject *);
-MODULES(DO)
-#undef DO
+
+MODULES(DECLARE_MODINIT)
 
 #define FREEOBJ(obj)                                                   \
   (((PyObject *)(obj))->ob_type->tp_free((PyObject *)(obj)))