[PATCH 7 of 7] inotify extension: Port of the C module to py3k
Renato Cunha
renatoc at gmail.com
Thu Jul 1 17:19:20 CDT 2010
hgext/inotify/linux/_inotify.c | 35 +++++++++++++++++++++++++++++++++--
1 files changed, 33 insertions(+), 2 deletions(-)
# HG changeset patch
# User Renato Cunha <renatoc at gmail.com>
# Date 1278022747 10800
# Node ID c6fe892ac2cb3450ab259774c0c8c01385e68af1
# Parent 791c6d61d084454be7bd8feab04a68df3eeea9ee
inotify extension: Port of the C module to py3k.
This patch accomplishes the port of the inotify C module to py3k by #including
mercurial's util.h file, and by defining the necessary boilerplate code
required by py3k through conditional compilation.
diff --git a/hgext/inotify/linux/_inotify.c b/hgext/inotify/linux/_inotify.c
--- a/hgext/inotify/linux/_inotify.c
+++ b/hgext/inotify/linux/_inotify.c
@@ -15,6 +15,8 @@
#include <sys/ioctl.h>
#include <unistd.h>
+#include <util.h>
+
/* Variables used in the event string representation */
static PyObject *join;
static PyObject *er_wm;
@@ -394,8 +396,7 @@
}
static PyTypeObject event_type = {
- PyObject_HEAD_INIT(NULL)
- 0, /*ob_size*/
+ PyVarObject_HEAD_INIT(NULL, 0)
"_inotify.event", /*tp_name*/
sizeof(struct event), /*tp_basicsize*/
0, /*tp_itemsize*/
@@ -603,6 +604,35 @@
{NULL},
};
+#ifdef IS_PY3K
+static struct PyModuleDef _inotify_module = {
+ PyModuleDef_HEAD_INIT,
+ "_inotify",
+ doc,
+ -1,
+ methods
+};
+
+PyMODINIT_FUNC PyInit__inotify(void)
+{
+ PyObject *mod, *dict;
+
+ mod = PyModule_Create(&_inotify_module);
+
+ if (mod == NULL)
+ return NULL;
+
+ if (init_globals() == 0)
+ return;
+
+ dict = PyModule_GetDict(mod);
+
+ if (dict)
+ define_consts(dict);
+
+ return mod;
+}
+#else
void init_inotify(void)
{
PyObject *mod, *dict;
@@ -620,3 +650,4 @@
if (dict)
define_consts(dict);
}
+#endif
More information about the Mercurial-devel
mailing list