bdiffbuild.py
36 lines
| 753 B
| text/x-python
|
PythonLexer
Matt Harbison
|
r52756 | from __future__ import annotations | ||
Yuya Nishihara
|
r32505 | import cffi | ||
import os | ||||
ffi = cffi.FFI() | ||||
Augie Fackler
|
r43346 | with open( | ||
Manuel Jacob
|
r44085 | os.path.join(os.path.join(os.path.dirname(__file__), '..'), 'bdiff.c') | ||
Augie Fackler
|
r43346 | ) as f: | ||
ffi.set_source( | ||||
Manuel Jacob
|
r44085 | "mercurial.cffi._bdiff", f.read(), include_dirs=['mercurial'] | ||
Augie Fackler
|
r43346 | ) | ||
ffi.cdef( | ||||
""" | ||||
Yuya Nishihara
|
r32505 | 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*); | ||||
Augie Fackler
|
r43346 | """ | ||
) | ||||
Yuya Nishihara
|
r32505 | |||
if __name__ == '__main__': | ||||
ffi.compile() | ||||