[PATCH] mpatch: add missing file

Maciej Fijalkowski fijall at gmail.com
Thu Sep 8 08:04:48 UTC 2016


# HG changeset patch
# User fijal
# Date 1473321829 -7200
#      Thu Sep 08 10:03:49 2016 +0200
# Node ID e812104013b1281b24dff50dd902897d24b0e29f
# Parent  64e432c2740087b7c042346f55af9512ead0f849
mpatch: add missing file

diff --git a/setup_mpatch_cffi.py b/setup_mpatch_cffi.py
new file mode 100644
--- /dev/null
+++ b/setup_mpatch_cffi.py
@@ -0,0 +1,36 @@
+
+from __future__ import absolute_import
+
+import os
+import cffi
+
+ffi = cffi.FFI()
+mpatch_c = os.path.join(os.path.join(os.path.dirname(__file__), 'mercurial',
+                                     'mpatch.c'))
+ffi.set_source("_mpatch_cffi", open(mpatch_c).read(),
+               include_dirs=["mercurial"])
+ffi.cdef("""
+
+struct mpatch_frag {
+       int start, end, len;
+       const char *data;
+};
+
+struct mpatch_flist {
+       struct mpatch_frag *base, *head, *tail;
+};
+
+extern "Python" struct mpatch_flist* cffi_get_next_item(void*, ssize_t);
+
+int mpatch_decode(const char *bin, ssize_t len, struct mpatch_flist** res);
+ssize_t mpatch_calcsize(size_t len, struct mpatch_flist *l);
+void mpatch_lfree(struct mpatch_flist *a);
+static int mpatch_apply(char *buf, const char *orig, size_t len,
+                        struct mpatch_flist *l);
+struct mpatch_flist *mpatch_fold(void *bins,
+                       struct mpatch_flist* (*get_next_item)(void*, ssize_t),
+                       ssize_t start, ssize_t end);
+""")
+
+if __name__ == '__main__':
+    ffi.compile()


More information about the Mercurial-devel mailing list