Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports
Path: blob/main/misc/bdelta/files/patch-bdelta.cpp
18160 views
1
--- bdelta.cpp.orig 2013-01-30 20:16:01 UTC
2
+++ bdelta.cpp
3
@@ -10,6 +10,8 @@
4
#include "file.h"
5
#include "compatibility.h"
6
7
+#define FEFE
8
+
9
const void *f_read(void *f, void *buf, unsigned place, unsigned num) {
10
fseek((FILE *)f, place, SEEK_SET);
11
fread_fixed((FILE *)f, buf, num);
12
@@ -103,9 +105,15 @@ int main(int argc, char **argv) {
13
14
nummatches = bdelta_numMatches(b);
15
16
+#ifdef FEFE
17
+ long long * copyloc1 = new long long[nummatches + 1];
18
+ long long * copyloc2 = new long long[nummatches + 1];
19
+ unsigned * copynum = new unsigned[nummatches + 1];
20
+#else
21
unsigned * copyloc1 = new unsigned[nummatches + 1];
22
unsigned * copyloc2 = new unsigned[nummatches + 1];
23
unsigned * copynum = new unsigned[nummatches + 1];
24
+#endif
25
26
FILE *fout = fopen(argv[3], "wb");
27
if (!fout) {
28
@@ -115,7 +123,7 @@ int main(int argc, char **argv) {
29
30
const char *magic = "BDT";
31
fwrite_fixed(fout, magic, 3);
32
- unsigned short version = 1;
33
+ unsigned short version = 2;
34
write_word(fout, version);
35
unsigned char intsize = 4;
36
fwrite_fixed(fout, &intsize, 1);
37
@@ -129,12 +137,22 @@ int main(int argc, char **argv) {
38
unsigned p1, p2, num;
39
bdelta_getMatch(b, i, &p1, &p2, &num);
40
// printf("%*x, %*x, %*x, %*x\n", 10, p1, 10, p2, 10, num, 10, p2-lastp2);
41
+#ifdef FEFE
42
+ copyloc1[i] = (long long)p1 - lastp1;
43
+ copyloc2[i] = (long long)p2 - lastp2;
44
+ copynum[i] = num;
45
+ write_varint(fout, copyloc1[i]);
46
+ write_varint(fout, copyloc2[i]);
47
+ write_varint(fout, copynum[i]);
48
+// printf("%u/%u: (%ld -> %u,%ld -> %u,%u)\n",i,nummatches,copyloc1[i],p1,copyloc2[i],p2,copynum[i]);
49
+#else
50
copyloc1[i] = p1 - lastp1;
51
write_dword(fout, copyloc1[i]);
52
copyloc2[i] = p2 - lastp2;
53
write_dword(fout, copyloc2[i]);
54
copynum[i] = num;
55
write_dword(fout, copynum[i]);
56
+#endif
57
lastp1 = p1 + num;
58
lastp2 = p2 + num;
59
}
60
61