chiark / gitweb /
systemd-python: add __version__ strings
[elogind.git] / src / python-systemd / _journal.c
index eab9c2982ceeafee146e85cb31914096b8609e0c..f8e0b4f7f29e661700bd1b9d0d6c7a7d7499d0a6 100644 (file)
@@ -3,7 +3,7 @@
 /***
   This file is part of systemd.
 
-  Copyright 2012 David Strauss
+  Copyright 2012 David Strauss <david@davidstrauss.net>
 
   systemd is free software; you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as published by
@@ -113,10 +113,19 @@ static PyMethodDef methods[] = {
         { NULL, NULL, 0, NULL }        /* Sentinel */
 };
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-prototypes"
+
 #if PY_MAJOR_VERSION < 3
 
 PyMODINIT_FUNC init_journal(void) {
-        (void) Py_InitModule("_journal", methods);
+        PyObject *m;
+
+        m = Py_InitModule("_journal", methods);
+        if (m == NULL)
+                return;
+
+        PyModule_AddStringConstant(m, "__version__", PACKAGE_VERSION);
 }
 
 #else
@@ -125,12 +134,25 @@ static struct PyModuleDef module = {
         PyModuleDef_HEAD_INIT,
         "_journal", /* name of module */
         NULL, /* module documentation, may be NULL */
-        0, /* size of per-interpreter state of the module */
+        -1, /* size of per-interpreter state of the module */
         methods
 };
 
 PyMODINIT_FUNC PyInit__journal(void) {
-        return PyModule_Create(&module);
+        PyObject *m;
+
+        m = PyModule_Create(&module);
+        if (m == NULL)
+                return NULL;
+
+        if (PyModule_AddStringConstant(m, "__version__", PACKAGE_VERSION)) {
+                Py_DECREF(m);
+                return NULL;
+        }
+
+        return m;
 }
 
 #endif
+
+#pragma GCC diagnostic pop