sapling/mercurial/cffi/bdiff.py
Jun Wu 13e79c95ee setup: move cffi stuff to mercurial/cffi
This patch moves all setup*cffi stuff to mercurial/cffi to make the root
directory cleaner. The idea was from mpm [1]:

  > It seems like we could have a fair amount of cffi definitions, and
  > cluttering the root directory (or mercurial/) with them is probably not
  > a great long-term solution. We could probably add a cffi/ directory
  > under mercurial/ to parallel pure/.

[1]: https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-July/086442.html
2016-11-09 22:08:30 +00:00

32 lines
716 B
Python

from __future__ import absolute_import
import cffi
import os
ffi = cffi.FFI()
ffi.set_source("_bdiff_cffi",
open(os.path.join(os.path.join(os.path.dirname(__file__), '..'),
'bdiff.c')).read(), include_dirs=['mercurial'])
ffi.cdef("""
struct bdiff_line {
int hash, n, e;
ssize_t len;
const char *l;
};
struct bdiff_hunk;
struct bdiff_hunk {
int a1, a2, b1, b2;
struct bdiff_hunk *next;
};
int bdiff_splitlines(const char *a, ssize_t len, struct bdiff_line **lr);
int bdiff_diff(struct bdiff_line *a, int an, struct bdiff_line *b, int bn,
struct bdiff_hunk *base);
void bdiff_freehunks(struct bdiff_hunk *l);
void free(void*);
""")
if __name__ == '__main__':
ffi.compile()