Mercurial > hg
annotate mercurial/cffi/bdiffbuild.py @ 52125:1938d72e7a16
wireprotoserver: subclass the new `baseprotocolhandler` Protocol class
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 24 Oct 2024 20:50:47 -0400 |
parents | f4733654f144 |
children |
rev | line source |
---|---|
51863
f4733654f144
typing: add `from __future__ import annotations` to most files
Matt Harbison <matt_harbison@yahoo.com>
parents:
48875
diff
changeset
|
1 from __future__ import annotations |
f4733654f144
typing: add `from __future__ import annotations` to most files
Matt Harbison <matt_harbison@yahoo.com>
parents:
48875
diff
changeset
|
2 |
29833
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
3 import cffi |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
4 import os |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
5 |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
6 ffi = cffi.FFI() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36948
diff
changeset
|
7 with open( |
43668
53607fd3ec6c
cffi: fix build on Python 3
Manuel Jacob <me@manueljacob.de>
parents:
43077
diff
changeset
|
8 os.path.join(os.path.join(os.path.dirname(__file__), '..'), 'bdiff.c') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36948
diff
changeset
|
9 ) as f: |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36948
diff
changeset
|
10 ffi.set_source( |
43668
53607fd3ec6c
cffi: fix build on Python 3
Manuel Jacob <me@manueljacob.de>
parents:
43077
diff
changeset
|
11 "mercurial.cffi._bdiff", f.read(), include_dirs=['mercurial'] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36948
diff
changeset
|
12 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36948
diff
changeset
|
13 ffi.cdef( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36948
diff
changeset
|
14 """ |
29833
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
15 struct bdiff_line { |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
16 int hash, n, e; |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
17 ssize_t len; |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
18 const char *l; |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
19 }; |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
20 |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
21 struct bdiff_hunk; |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
22 struct bdiff_hunk { |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
23 int a1, a2, b1, b2; |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
24 struct bdiff_hunk *next; |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
25 }; |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
26 |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
27 int bdiff_splitlines(const char *a, ssize_t len, struct bdiff_line **lr); |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
28 int bdiff_diff(struct bdiff_line *a, int an, struct bdiff_line *b, int bn, |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
29 struct bdiff_hunk *base); |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
30 void bdiff_freehunks(struct bdiff_hunk *l); |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
31 void free(void*); |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36948
diff
changeset
|
32 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36948
diff
changeset
|
33 ) |
29833
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
34 |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
35 if __name__ == '__main__': |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
36 ffi.compile() |