/***
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
#include <Python.h>
#include <alloca.h>
+#include "util.h"
#define SD_JOURNAL_SUPPRESS_LOCATION
-#include <systemd/sd-journal.h>
+#include "systemd/sd-journal.h"
PyDoc_STRVAR(journal_sendv__doc__,
"sendv('FIELD=value', 'FIELD=value', ...) -> None\n\n"
/* Allocate an array for the argument strings */
argc = PyTuple_Size(args);
- encoded = alloca(argc * sizeof(PyObject*));
- memset(encoded, 0, argc * sizeof(PyObject*));
+ encoded = alloca0(argc * sizeof(PyObject*));
/* Allocate sufficient iovector space for the arguments. */
iov = alloca(argc * sizeof(struct iovec));
{ NULL, NULL, 0, NULL } /* Sentinel */
};
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wmissing-prototypes"
-
#if PY_MAJOR_VERSION < 3
+DISABLE_WARNING_MISSING_PROTOTYPES;
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);
}
+REENABLE_WARNING;
#else
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
};
+DISABLE_WARNING_MISSING_PROTOTYPES;
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;
}
+REENABLE_WARNING;
#endif
-
-#pragma GCC diagnostic pop