From: hstuart Date: Wed, 9 Dec 2009 20:05:56 +0000 (+0000) Subject: mod-python: add support for module_register X-Git-Tag: 1.9~82 X-Git-Url: https://jfr.im/git/irc/evilnet/x3.git/commitdiff_plain/af40e58b1f72e7ab8a8131f4ec68cae998cc57b1?hp=0702100202764a191b0de763e701acd92055dffd mod-python: add support for module_register --- diff --git a/ChangeLog b/ChangeLog index 7ed8bac..6723440 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,10 @@ /*********************************************************************** X3 ChangeLog +2009-12-09 Henrik Stuart + + src/mod-python.c: add support for module_register. + 2009-12-09 Henrik Stuart src/mod-python.c: add support for log_register_type. diff --git a/src/mod-python.c b/src/mod-python.c index e95ec4c..6322041 100644 --- a/src/mod-python.c +++ b/src/mod-python.c @@ -1226,6 +1226,28 @@ static PyObject* emb_log_register_type(UNUSED_ARG(PyObject *self), PyObject* arg return Py_BuildValue("O", PyCObject_FromVoidPtr(log, NULL)); } +PyDoc_STRVAR(emb_module_register__doc__, "registers a module"); +PyObject* emb_module_register(UNUSED_ARG(PyObject* self), PyObject* args) { + PyObject* pylog; + char const *name, *helpfile; + struct log_type* log; + struct module* mod; + + if (!PyArg_ParseTuple(args, "sOs", &name, &pylog, &helpfile)) + return NULL; + + log = PyCObject_AsVoidPtr(pylog); + + mod = module_register(name, log, helpfile, NULL); + + if (mod == NULL) { + PyErr_SetString(PyExc_Exception, "unable to register module"); + return NULL; + } + + return Py_BuildValue("O", PyCObject_FromVoidPtr(mod, NULL)); +} + static PyMethodDef EmbMethods[] = { /* Communication methods */ {"dump", emb_dump, METH_VARARGS, emb_dump__doc__}, @@ -1259,6 +1281,8 @@ static PyMethodDef EmbMethods[] = { /* module registration methods */ {"log_register_type", emb_log_register_type, METH_VARARGS, emb_log_register_type__doc__}, + {"module_register", emb_module_register, METH_VARARGS, + emb_module_register__doc__}, /* Information gathering methods */ {"get_user", emb_get_user, METH_VARARGS, emb_get_user__doc__},