]> jfr.im git - irc/evilnet/x3.git/commitdiff
mod-python: add support for module_register
authorhstuart <redacted>
Wed, 9 Dec 2009 20:05:56 +0000 (20:05 +0000)
committerhstuart <redacted>
Wed, 9 Dec 2009 20:05:56 +0000 (20:05 +0000)
ChangeLog
src/mod-python.c

index 7ed8bac9505c1f916586a7f72386f5ef23adf672..67234408e36b728e74ece0750ce746809e83edf2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
 /***********************************************************************
 X3 ChangeLog
 
+2009-12-09  Henrik Stuart  <evilnet@hstuart.dk>
+
+       src/mod-python.c: add support for module_register.
+
 2009-12-09  Henrik Stuart  <evilnet@hstuart.dk>
 
        src/mod-python.c: add support for log_register_type.
index e95ec4c0b7e04612e39f7a6bdd1b52008584c550..6322041cedc670e1d6d28d4b803fc26d233f1604 100644 (file)
@@ -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__},