mercurial/cffi/bdiffbuild.py
changeset 32505 05a16c19967e
parent 30346 9cc438bf7d9a
child 32506 2dcb3d52ef41
equal deleted inserted replaced
32504:2ba4d3b74ba8 32505:05a16c19967e
       
     1 from __future__ import absolute_import
       
     2 
       
     3 import cffi
       
     4 import os
       
     5 
       
     6 ffi = cffi.FFI()
       
     7 ffi.set_source("_bdiff_cffi",
       
     8     open(os.path.join(os.path.join(os.path.dirname(__file__), '..'),
       
     9         'bdiff.c')).read(), include_dirs=['mercurial'])
       
    10 ffi.cdef("""
       
    11 struct bdiff_line {
       
    12     int hash, n, e;
       
    13     ssize_t len;
       
    14     const char *l;
       
    15 };
       
    16 
       
    17 struct bdiff_hunk;
       
    18 struct bdiff_hunk {
       
    19     int a1, a2, b1, b2;
       
    20     struct bdiff_hunk *next;
       
    21 };
       
    22 
       
    23 int bdiff_splitlines(const char *a, ssize_t len, struct bdiff_line **lr);
       
    24 int bdiff_diff(struct bdiff_line *a, int an, struct bdiff_line *b, int bn,
       
    25     struct bdiff_hunk *base);
       
    26 void bdiff_freehunks(struct bdiff_hunk *l);
       
    27 void free(void*);
       
    28 """)
       
    29 
       
    30 if __name__ == '__main__':
       
    31     ffi.compile()