{
const char *p;
- p = PyString_AsString(key); if (!p) return (0);
+ p = TEXT_STR(key); if (!p) return (0);
return (sym_find(THINGTAB_T(me), p, -1, 0, f));
}
{ sym_iter *it = i; void *e; SYM_NEXT(it, e); return (e); }
static PyObject *thingtab_gmentrykey(PyObject *me, void *e)
- { return (PyString_FromString(SYM_NAME(e))); }
+ { return (TEXT_FROMSTR(SYM_NAME(e))); }
static PyObject *thingtab_gmentryvalue(PyObject *me, void *e)
{ PyObject *rc = THING_VAL(e); RETURN_OBJ(rc); }
}
static const PyTypeObject thingtab_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"_MiscTable", /* @tp_name@ */
sizeof(thingtab_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
#endif
}
-EXPORT void init_base(void)
+#ifdef PY3
+static PyModuleDef moddef = {
+ PyModuleDef_HEAD_INIT,
+ "catacomb._base", /* @m_name@ */
+ "Low-level module for Catacomb bindings. Use `catacomb' instead.",
+ /* @m_doc@ */
+ 0, /* @m_size@ */
+ 0, /* @m_methods@ */
+ 0, /* @m_slots@ */
+ 0, /* @m_traverse@ */
+ 0, /* @m_clear@ */
+ 0 /* @m_free@ */
+};
+#endif
+
+EXPORT PyMODINIT_FUNC PY23(init_base, PyInit__base)(void)
{
PyObject *mod;
- modname = PyString_FromString("catacomb");
+ modname = TEXT_FROMSTR("catacomb");
addmethods(methods);
INIT_MODULES;
INITTYPE(thingtab, root);
init_random();
+#ifdef PY3
+ moddef.m_methods = donemethods();
+ mod = PyModule_Create(&moddef);
+#else
mod = Py_InitModule("catacomb._base", donemethods());
+#endif
INSERT_MODULES;
INSERT("_MiscTable", thingtab_pytype);
INSERT("smallprimes", smallprimes());
+#ifdef PY3
+ return (mod);
+#endif
}
/*----- That's all, folks -------------------------------------------------*/