Mercurial > public > mercurial-scm > hg
annotate mercurial/cffi/bdiffbuild.py @ 48674:f7086f6173f8 stable
dirstate-v2: rename the configuration to enable the format
The rename of the old experimental name was overlooked before the 6.0 release.
We rename everything to use the new name (and keep the released name as an alias
for compatibility).
Differential Revision: https://phab.mercurial-scm.org/D12129
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 01 Feb 2022 16:36:20 +0100 |
parents | 53607fd3ec6c |
children | 6000f5b25c9b |
rev | line source |
---|---|
29833
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
1 from __future__ import absolute_import |
a8933d992a71
bdiff: implement cffi version of blocks
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
2 |
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() |