rugged 1.6.5 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/rugged/rugged_allocator.c +0 -54
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +3 -8
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +3 -3
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +21 -2
- data/vendor/libgit2/cmake/SelectHashes.cmake +4 -0
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- data/vendor/libgit2/deps/pcre/LICENCE +5 -5
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
- data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/git-xdiff.h +4 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.c +19 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.c +3 -3
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xhistogram.c +7 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmerge.c +24 -22
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xpatience.c +21 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.c +13 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.c +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.h +2 -1
- data/vendor/libgit2/include/git2/common.h +26 -1
- data/vendor/libgit2/include/git2/diff.h +41 -3
- data/vendor/libgit2/include/git2/errors.h +4 -2
- data/vendor/libgit2/include/git2/index.h +9 -0
- data/vendor/libgit2/include/git2/oid.h +1 -1
- data/vendor/libgit2/include/git2/remote.h +18 -0
- data/vendor/libgit2/include/git2/repository.h +12 -2
- data/vendor/libgit2/include/git2/sys/alloc.h +0 -34
- data/vendor/libgit2/include/git2/sys/commit_graph.h +12 -2
- data/vendor/libgit2/include/git2/sys/midx.h +5 -1
- data/vendor/libgit2/include/git2/sys/stream.h +16 -2
- data/vendor/libgit2/include/git2/sys/transport.h +20 -2
- data/vendor/libgit2/include/git2/version.h +4 -4
- data/vendor/libgit2/include/git2/worktree.h +3 -1
- data/vendor/libgit2/src/CMakeLists.txt +34 -11
- data/vendor/libgit2/src/cli/cmd_clone.c +22 -6
- data/vendor/libgit2/src/cli/progress.c +9 -8
- data/vendor/libgit2/src/cli/progress.h +4 -4
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +1 -19
- data/vendor/libgit2/src/libgit2/annotated_commit.c +2 -2
- data/vendor/libgit2/src/libgit2/annotated_commit.h +1 -1
- data/vendor/libgit2/src/libgit2/apply.c +4 -3
- data/vendor/libgit2/src/libgit2/blame.c +23 -16
- data/vendor/libgit2/src/libgit2/blame_git.c +0 -1
- data/vendor/libgit2/src/libgit2/branch.c +2 -2
- data/vendor/libgit2/src/libgit2/cherrypick.c +3 -3
- data/vendor/libgit2/src/libgit2/clone.c +3 -1
- data/vendor/libgit2/src/libgit2/commit.c +31 -9
- data/vendor/libgit2/src/libgit2/commit_graph.c +110 -43
- data/vendor/libgit2/src/libgit2/commit_graph.h +20 -4
- data/vendor/libgit2/src/libgit2/commit_list.c +12 -5
- data/vendor/libgit2/src/libgit2/commit_list.h +1 -0
- data/vendor/libgit2/src/libgit2/config_file.c +14 -8
- data/vendor/libgit2/src/libgit2/describe.c +10 -7
- data/vendor/libgit2/src/libgit2/diff.c +16 -7
- data/vendor/libgit2/src/libgit2/diff.h +6 -6
- data/vendor/libgit2/src/libgit2/diff_file.c +7 -7
- data/vendor/libgit2/src/libgit2/diff_generate.c +36 -15
- data/vendor/libgit2/src/libgit2/diff_parse.c +20 -4
- data/vendor/libgit2/src/libgit2/diff_print.c +26 -7
- data/vendor/libgit2/src/libgit2/diff_tform.c +4 -4
- data/vendor/libgit2/src/libgit2/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/libgit2/email.c +4 -3
- data/vendor/libgit2/src/libgit2/errors.c +73 -18
- data/vendor/libgit2/src/libgit2/fetch.c +37 -9
- data/vendor/libgit2/src/libgit2/fetch.h +0 -2
- data/vendor/libgit2/src/libgit2/fetchhead.c +11 -9
- data/vendor/libgit2/src/libgit2/grafts.c +272 -0
- data/vendor/libgit2/src/libgit2/grafts.h +36 -0
- data/vendor/libgit2/src/libgit2/ident.c +3 -3
- data/vendor/libgit2/src/libgit2/index.c +325 -125
- data/vendor/libgit2/src/libgit2/index.h +14 -1
- data/vendor/libgit2/src/libgit2/indexer.c +10 -3
- data/vendor/libgit2/src/libgit2/iterator.c +20 -5
- data/vendor/libgit2/src/libgit2/iterator.h +3 -0
- data/vendor/libgit2/src/libgit2/libgit2.c +39 -0
- data/vendor/libgit2/src/libgit2/merge.c +14 -9
- data/vendor/libgit2/src/libgit2/merge_file.c +0 -2
- data/vendor/libgit2/src/libgit2/midx.c +66 -37
- data/vendor/libgit2/src/libgit2/midx.h +13 -3
- data/vendor/libgit2/src/libgit2/notes.c +9 -8
- data/vendor/libgit2/src/libgit2/object.c +40 -15
- data/vendor/libgit2/src/libgit2/object.h +6 -0
- data/vendor/libgit2/src/libgit2/odb.c +11 -5
- data/vendor/libgit2/src/libgit2/odb_pack.c +16 -3
- data/vendor/libgit2/src/libgit2/oid.c +7 -1
- data/vendor/libgit2/src/libgit2/oidarray.c +49 -3
- data/vendor/libgit2/src/libgit2/oidarray.h +5 -1
- data/vendor/libgit2/src/libgit2/pack-objects.c +19 -12
- data/vendor/libgit2/src/libgit2/pack-objects.h +5 -2
- data/vendor/libgit2/src/libgit2/pack.c +3 -3
- data/vendor/libgit2/src/libgit2/parse.c +7 -4
- data/vendor/libgit2/src/libgit2/parse.h +1 -1
- data/vendor/libgit2/src/libgit2/patch.h +7 -1
- data/vendor/libgit2/src/libgit2/patch_generate.c +24 -5
- data/vendor/libgit2/src/libgit2/patch_parse.c +16 -8
- data/vendor/libgit2/src/libgit2/push.c +2 -2
- data/vendor/libgit2/src/libgit2/reader.c +1 -1
- data/vendor/libgit2/src/libgit2/rebase.c +72 -84
- data/vendor/libgit2/src/libgit2/refdb_fs.c +22 -13
- data/vendor/libgit2/src/libgit2/refs.c +8 -1
- data/vendor/libgit2/src/libgit2/remote.c +15 -6
- data/vendor/libgit2/src/libgit2/remote.h +1 -0
- data/vendor/libgit2/src/libgit2/repository.c +580 -301
- data/vendor/libgit2/src/libgit2/repository.h +17 -2
- data/vendor/libgit2/src/libgit2/reset.c +2 -2
- data/vendor/libgit2/src/libgit2/revert.c +8 -11
- data/vendor/libgit2/src/libgit2/revparse.c +1 -4
- data/vendor/libgit2/src/libgit2/revwalk.c +26 -4
- data/vendor/libgit2/src/libgit2/stash.c +9 -8
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +0 -1
- data/vendor/libgit2/src/libgit2/streams/openssl.c +8 -16
- data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
- data/vendor/libgit2/src/libgit2/streams/socket.c +237 -51
- data/vendor/libgit2/src/libgit2/streams/socket.h +3 -1
- data/vendor/libgit2/src/libgit2/streams/stransport.c +40 -12
- data/vendor/libgit2/src/libgit2/streams/tls.c +5 -0
- data/vendor/libgit2/src/libgit2/submodule.h +3 -3
- data/vendor/libgit2/src/libgit2/threadstate.c +15 -2
- data/vendor/libgit2/src/libgit2/threadstate.h +1 -3
- data/vendor/libgit2/src/libgit2/transports/auth.h +1 -2
- data/vendor/libgit2/src/libgit2/transports/{auth_negotiate.c → auth_gssapi.c} +32 -32
- data/vendor/libgit2/src/libgit2/transports/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/auth_ntlm.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/{auth_ntlm.c → auth_ntlmclient.c} +12 -12
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/libgit2/transports/git.c +7 -8
- data/vendor/libgit2/src/libgit2/transports/http.c +7 -2
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +5 -0
- data/vendor/libgit2/src/libgit2/transports/local.c +13 -4
- data/vendor/libgit2/src/libgit2/transports/smart.c +33 -27
- data/vendor/libgit2/src/libgit2/transports/smart.h +23 -8
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +136 -17
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +154 -47
- data/vendor/libgit2/src/libgit2/transports/ssh.c +3 -3
- data/vendor/libgit2/src/libgit2/transports/winhttp.c +14 -15
- data/vendor/libgit2/src/libgit2/tree-cache.c +26 -16
- data/vendor/libgit2/src/libgit2/tree-cache.h +5 -3
- data/vendor/libgit2/src/libgit2/tree.c +1 -1
- data/vendor/libgit2/src/libgit2/worktree.c +25 -10
- data/vendor/libgit2/src/util/alloc.c +65 -6
- data/vendor/libgit2/src/util/alloc.h +34 -9
- data/vendor/libgit2/src/util/allocators/failalloc.c +0 -60
- data/vendor/libgit2/src/util/allocators/failalloc.h +0 -6
- data/vendor/libgit2/src/util/allocators/stdalloc.c +2 -105
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +0 -68
- data/vendor/libgit2/src/util/array.h +6 -1
- data/vendor/libgit2/src/util/cc-compat.h +2 -0
- data/vendor/libgit2/src/util/filebuf.c +6 -1
- data/vendor/libgit2/src/util/filebuf.h +19 -6
- data/vendor/libgit2/src/util/fs_path.c +1 -1
- data/vendor/libgit2/src/util/futils.c +8 -5
- data/vendor/libgit2/src/util/git2_features.h.in +9 -3
- data/vendor/libgit2/src/util/net.c +308 -157
- data/vendor/libgit2/src/util/net.h +25 -0
- data/vendor/libgit2/src/util/posix.c +54 -0
- data/vendor/libgit2/src/util/posix.h +22 -0
- data/vendor/libgit2/src/util/rand.c +6 -4
- data/vendor/libgit2/src/util/staticstr.h +66 -0
- data/vendor/libgit2/src/util/util.c +15 -10
- data/vendor/libgit2/src/util/util.h +24 -16
- data/vendor/libgit2/src/util/win32/error.c +1 -1
- data/vendor/libgit2/src/util/win32/path_w32.c +8 -8
- data/vendor/libgit2/src/util/win32/posix_w32.c +1 -1
- data/vendor/libgit2/src/util/win32/utf-conv.c +73 -75
- data/vendor/libgit2/src/util/win32/utf-conv.h +81 -14
- data/vendor/libgit2/src/util/win32/w32_util.c +1 -1
- metadata +29 -23
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +0 -17
- data/vendor/libgit2/src/libgit2/netops.c +0 -124
- data/vendor/libgit2/src/libgit2/netops.h +0 -68
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiff.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xinclude.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xtypes.h +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 612678eb067cc67b95f2bab39559c502a323746387cb79d1f333148e84bf5746
|
|
4
|
+
data.tar.gz: 15a17bdb4bc6c5e60d0ee1605447962d1cd524f0e0330253dec3273774464d6b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f20f497297ac36e2a63acdba4b15962c360f527ac107fd7f87200ee513d73fcf7e85bfe6da1427b10a7e8ae497edcbe14dcce3492ecace08b557fb87a72abf29
|
|
7
|
+
data.tar.gz: 4694b1dbce110bcfaac801bff104b5829d529eeba55d01e9bf939f74841dc11e357a9749e0a72ae02338f36ce2bdd7c1ad2da100ff46bc4b535361e41f67ade6
|
|
@@ -13,58 +13,11 @@ static void *rugged_gmalloc(size_t n, const char *file, int line)
|
|
|
13
13
|
return xmalloc(n);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
static void *rugged_gcalloc(size_t nelem, size_t elsize, const char *file, int line)
|
|
17
|
-
{
|
|
18
|
-
return xcalloc(nelem, elsize);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
static char *rugged_gstrdup(const char *str, const char *file, int line)
|
|
22
|
-
{
|
|
23
|
-
return ruby_strdup(str);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
static char *rugged_gstrndup(const char *str, size_t n, const char *file, int line)
|
|
27
|
-
{
|
|
28
|
-
size_t len;
|
|
29
|
-
char *newstr;
|
|
30
|
-
|
|
31
|
-
len = strnlen(str, n);
|
|
32
|
-
if (len < n)
|
|
33
|
-
n = len;
|
|
34
|
-
|
|
35
|
-
newstr = xmalloc(n+1);
|
|
36
|
-
memcpy(newstr, str, n);
|
|
37
|
-
newstr[n] = '\0';
|
|
38
|
-
|
|
39
|
-
return newstr;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
static char *rugged_gsubstrdup(const char *str, size_t n, const char *file, int line)
|
|
43
|
-
{
|
|
44
|
-
char *newstr;
|
|
45
|
-
|
|
46
|
-
newstr = xmalloc(n+1);
|
|
47
|
-
memcpy(newstr, str, n);
|
|
48
|
-
newstr[n] = '\0';
|
|
49
|
-
|
|
50
|
-
return newstr;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
16
|
static void *rugged_grealloc(void *ptr, size_t size, const char *file, int line)
|
|
54
17
|
{
|
|
55
18
|
return xrealloc(ptr, size);
|
|
56
19
|
}
|
|
57
20
|
|
|
58
|
-
static void *rugged_greallocarray(void *ptr, size_t nelem, size_t elsize, const char *file, int line)
|
|
59
|
-
{
|
|
60
|
-
return xrealloc2(ptr, nelem, elsize);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
static void *rugged_gmallocarray(size_t nelem, size_t elsize, const char *file, int line)
|
|
64
|
-
{
|
|
65
|
-
return xmalloc2(nelem, elsize);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
21
|
static void rugged_gfree(void *ptr)
|
|
69
22
|
{
|
|
70
23
|
xfree(ptr);
|
|
@@ -75,14 +28,7 @@ void rugged_set_allocator(void)
|
|
|
75
28
|
git_allocator allocator;
|
|
76
29
|
|
|
77
30
|
allocator.gmalloc = rugged_gmalloc;
|
|
78
|
-
allocator.gcalloc = rugged_gcalloc;
|
|
79
|
-
allocator.gstrdup = rugged_gstrdup;
|
|
80
|
-
allocator.gstrndup = rugged_gstrndup;
|
|
81
|
-
allocator.gstrndup = rugged_gstrndup;
|
|
82
|
-
allocator.gsubstrdup = rugged_gsubstrdup;
|
|
83
31
|
allocator.grealloc = rugged_grealloc;
|
|
84
|
-
allocator.greallocarray = rugged_greallocarray;
|
|
85
|
-
allocator.gmallocarray = rugged_gmallocarray;
|
|
86
32
|
allocator.gfree = rugged_gfree;
|
|
87
33
|
|
|
88
34
|
git_libgit2_opts(GIT_OPT_SET_ALLOCATOR, &allocator);
|
data/lib/rugged/version.rb
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
cmake_minimum_required(VERSION 3.5.1)
|
|
8
8
|
|
|
9
|
-
project(libgit2 VERSION "1.
|
|
9
|
+
project(libgit2 VERSION "1.7.1" LANGUAGES C)
|
|
10
10
|
|
|
11
11
|
# Add find modules to the path
|
|
12
12
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake")
|
|
@@ -36,6 +36,7 @@ option(USE_SHA1 "Enable SHA1. Can be set to CollisionDetection(ON
|
|
|
36
36
|
option(USE_SHA256 "Enable SHA256. Can be set to HTTPS/Builtin" ON)
|
|
37
37
|
option(USE_GSSAPI "Link with libgssapi for SPNEGO auth" OFF)
|
|
38
38
|
set(USE_HTTP_PARSER "" CACHE STRING "Specifies the HTTP Parser implementation; either system or builtin.")
|
|
39
|
+
# set(USE_XDIFF "" CACHE STRING "Specifies the xdiff implementation; either system or builtin.")
|
|
39
40
|
set(REGEX_BACKEND "" CACHE STRING "Regular expression implementation. One of regcomp_l, pcre2, pcre, regcomp, or builtin.")
|
|
40
41
|
option(USE_BUNDLED_ZLIB "Use the bundled version of zlib. Can be set to one of Bundled(ON)/Chromium. The Chromium option requires a x86_64 processor with SSE4.2 and CLMUL" OFF)
|
|
41
42
|
|
|
@@ -82,12 +83,6 @@ if(MSVC)
|
|
|
82
83
|
option(WIN32_LEAKCHECK "Enable leak reporting via crtdbg" OFF)
|
|
83
84
|
endif()
|
|
84
85
|
|
|
85
|
-
if(WIN32)
|
|
86
|
-
# By default, libgit2 is built with WinHTTP. To use the built-in
|
|
87
|
-
# HTTP transport, invoke CMake with the "-DUSE_WINHTTP=OFF" argument.
|
|
88
|
-
option(USE_WINHTTP "Use Win32 WinHTTP routines" ON)
|
|
89
|
-
endif()
|
|
90
|
-
|
|
91
86
|
if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
|
|
92
87
|
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
|
|
93
88
|
endif()
|
|
@@ -99,7 +94,7 @@ include(CheckLibraryExists)
|
|
|
99
94
|
include(CheckFunctionExists)
|
|
100
95
|
include(CheckSymbolExists)
|
|
101
96
|
include(CheckStructHasMember)
|
|
102
|
-
include(
|
|
97
|
+
include(CheckPrototypeDefinitionSafe)
|
|
103
98
|
include(AddCFlagIfSupported)
|
|
104
99
|
include(FindPkgLibraries)
|
|
105
100
|
include(FindThreads)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
include(CheckPrototypeDefinition)
|
|
2
|
+
|
|
3
|
+
function(check_prototype_definition_safe function prototype return header variable)
|
|
4
|
+
# temporarily save CMAKE_C_FLAGS and disable warnings about unused
|
|
5
|
+
# unused functions and parameters, otherwise they will always fail
|
|
6
|
+
# if ENABLE_WERROR is on
|
|
7
|
+
set(SAVED_CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
|
8
|
+
|
|
9
|
+
disable_warnings(unused-function)
|
|
10
|
+
disable_warnings(unused-parameter)
|
|
11
|
+
|
|
12
|
+
check_prototype_definition("${function}" "${prototype}" "${return}" "${header}" "${variable}")
|
|
13
|
+
|
|
14
|
+
# restore CMAKE_C_FLAGS
|
|
15
|
+
set(CMAKE_C_FLAGS "${SAVED_CMAKE_C_FLAGS}")
|
|
16
|
+
endfunction()
|
|
@@ -29,7 +29,7 @@ if(USE_GSSAPI)
|
|
|
29
29
|
list(APPEND LIBGIT2_SYSTEM_LIBS ${GSSFRAMEWORK_LIBRARIES})
|
|
30
30
|
|
|
31
31
|
set(GIT_GSSFRAMEWORK 1)
|
|
32
|
-
add_feature_info(
|
|
32
|
+
add_feature_info(GSSAPI GIT_GSSFRAMEWORK "GSSAPI support for SPNEGO authentication (${USE_GSSAPI})")
|
|
33
33
|
elseif(USE_GSSAPI STREQUAL "gssapi")
|
|
34
34
|
if(NOT GSSAPI_FOUND)
|
|
35
35
|
message(FATAL_ERROR "Asked for gssapi GSS backend, but it wasn't found")
|
|
@@ -38,11 +38,11 @@ if(USE_GSSAPI)
|
|
|
38
38
|
list(APPEND LIBGIT2_SYSTEM_LIBS ${GSSAPI_LIBRARIES})
|
|
39
39
|
|
|
40
40
|
set(GIT_GSSAPI 1)
|
|
41
|
-
add_feature_info(
|
|
41
|
+
add_feature_info(GSSAPI GIT_GSSAPI "GSSAPI support for SPNEGO authentication (${USE_GSSAPI})")
|
|
42
42
|
else()
|
|
43
43
|
message(FATAL_ERROR "Asked for backend ${USE_GSSAPI} but it wasn't found")
|
|
44
44
|
endif()
|
|
45
45
|
else()
|
|
46
46
|
set(GIT_GSSAPI 0)
|
|
47
|
-
add_feature_info(
|
|
47
|
+
add_feature_info(GSSAPI NO "GSSAPI support for SPNEGO authentication")
|
|
48
48
|
endif()
|
|
@@ -19,7 +19,7 @@ if(USE_HTTPS)
|
|
|
19
19
|
message(STATUS "Security framework is too old, falling back to OpenSSL")
|
|
20
20
|
set(USE_HTTPS "OpenSSL")
|
|
21
21
|
endif()
|
|
22
|
-
elseif(
|
|
22
|
+
elseif(WIN32)
|
|
23
23
|
set(USE_HTTPS "WinHTTP")
|
|
24
24
|
elseif(OPENSSL_FOUND)
|
|
25
25
|
set(USE_HTTPS "OpenSSL")
|
|
@@ -106,8 +106,27 @@ if(USE_HTTPS)
|
|
|
106
106
|
# https://github.com/ARMmbed/mbedtls/issues/228
|
|
107
107
|
# For now, pass its link flags as our own
|
|
108
108
|
list(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES})
|
|
109
|
+
elseif(USE_HTTPS STREQUAL "Schannel")
|
|
110
|
+
set(GIT_SCHANNEL 1)
|
|
111
|
+
|
|
112
|
+
list(APPEND LIBGIT2_SYSTEM_LIBS "rpcrt4" "crypt32" "ole32" "secur32")
|
|
113
|
+
list(APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32" "-lsecur32")
|
|
109
114
|
elseif(USE_HTTPS STREQUAL "WinHTTP")
|
|
110
|
-
|
|
115
|
+
set(GIT_WINHTTP 1)
|
|
116
|
+
|
|
117
|
+
# Since MinGW does not come with headers or an import library for winhttp,
|
|
118
|
+
# we have to include a private header and generate our own import library
|
|
119
|
+
if(MINGW)
|
|
120
|
+
add_subdirectory("${PROJECT_SOURCE_DIR}/deps/winhttp" "${PROJECT_BINARY_DIR}/deps/winhttp")
|
|
121
|
+
list(APPEND LIBGIT2_SYSTEM_LIBS winhttp)
|
|
122
|
+
list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/winhttp")
|
|
123
|
+
else()
|
|
124
|
+
list(APPEND LIBGIT2_SYSTEM_LIBS "winhttp")
|
|
125
|
+
list(APPEND LIBGIT2_PC_LIBS "-lwinhttp")
|
|
126
|
+
endif()
|
|
127
|
+
|
|
128
|
+
list(APPEND LIBGIT2_SYSTEM_LIBS "rpcrt4" "crypt32" "ole32" "secur32")
|
|
129
|
+
list(APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32" "-lsecur32")
|
|
111
130
|
elseif(USE_HTTPS STREQUAL "OpenSSL-Dynamic")
|
|
112
131
|
set(GIT_OPENSSL 1)
|
|
113
132
|
set(GIT_OPENSSL_DYNAMIC 1)
|
|
@@ -13,6 +13,8 @@ if(USE_SHA1 STREQUAL ON)
|
|
|
13
13
|
elseif(USE_SHA1 STREQUAL "HTTPS")
|
|
14
14
|
if(USE_HTTPS STREQUAL "SecureTransport")
|
|
15
15
|
set(USE_SHA1 "CommonCrypto")
|
|
16
|
+
elseif(USE_HTTPS STREQUAL "Schannel")
|
|
17
|
+
set(USE_SHA1 "Win32")
|
|
16
18
|
elseif(USE_HTTPS STREQUAL "WinHTTP")
|
|
17
19
|
set(USE_SHA1 "Win32")
|
|
18
20
|
elseif(USE_HTTPS)
|
|
@@ -51,6 +53,8 @@ endif()
|
|
|
51
53
|
if(USE_SHA256 STREQUAL "HTTPS")
|
|
52
54
|
if(USE_HTTPS STREQUAL "SecureTransport")
|
|
53
55
|
set(USE_SHA256 "CommonCrypto")
|
|
56
|
+
elseif(USE_HTTPS STREQUAL "Schannel")
|
|
57
|
+
set(USE_SHA256 "Win32")
|
|
54
58
|
elseif(USE_HTTPS STREQUAL "WinHTTP")
|
|
55
59
|
set(USE_SHA256 "Win32")
|
|
56
60
|
elseif(USE_HTTPS)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Optional external dependency: xdiff
|
|
2
|
+
if(USE_XDIFF STREQUAL "system")
|
|
3
|
+
message(FATAL_ERROR "external/system xdiff is not yet supported")
|
|
4
|
+
else()
|
|
5
|
+
add_subdirectory("${PROJECT_SOURCE_DIR}/deps/xdiff" "${PROJECT_BINARY_DIR}/deps/xdiff")
|
|
6
|
+
list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/xdiff")
|
|
7
|
+
list(APPEND LIBGIT2_DEPENDENCY_OBJECTS "$<TARGET_OBJECTS:xdiff>")
|
|
8
|
+
add_feature_info(xdiff ON "xdiff support (bundled)")
|
|
9
|
+
endif()
|
|
@@ -19,13 +19,13 @@ THE BASIC LIBRARY FUNCTIONS
|
|
|
19
19
|
---------------------------
|
|
20
20
|
|
|
21
21
|
Written by: Philip Hazel
|
|
22
|
-
Email local part:
|
|
23
|
-
Email domain:
|
|
22
|
+
Email local part: Philip.Hazel
|
|
23
|
+
Email domain: gmail.com
|
|
24
24
|
|
|
25
25
|
University of Cambridge Computing Service,
|
|
26
26
|
Cambridge, England.
|
|
27
27
|
|
|
28
|
-
Copyright (c) 1997-
|
|
28
|
+
Copyright (c) 1997-2021 University of Cambridge
|
|
29
29
|
All rights reserved.
|
|
30
30
|
|
|
31
31
|
|
|
@@ -36,7 +36,7 @@ Written by: Zoltan Herczeg
|
|
|
36
36
|
Email local part: hzmester
|
|
37
37
|
Email domain: freemail.hu
|
|
38
38
|
|
|
39
|
-
Copyright(c) 2010-
|
|
39
|
+
Copyright(c) 2010-2021 Zoltan Herczeg
|
|
40
40
|
All rights reserved.
|
|
41
41
|
|
|
42
42
|
|
|
@@ -47,7 +47,7 @@ Written by: Zoltan Herczeg
|
|
|
47
47
|
Email local part: hzmester
|
|
48
48
|
Email domain: freemail.hu
|
|
49
49
|
|
|
50
|
-
Copyright(c) 2009-
|
|
50
|
+
Copyright(c) 2009-2021 Zoltan Herczeg
|
|
51
51
|
All rights reserved.
|
|
52
52
|
|
|
53
53
|
|
|
@@ -42,9 +42,9 @@ POSSIBILITY OF SUCH DAMAGE.
|
|
|
42
42
|
/* The current PCRE version information. */
|
|
43
43
|
|
|
44
44
|
#define PCRE_MAJOR 8
|
|
45
|
-
#define PCRE_MINOR
|
|
45
|
+
#define PCRE_MINOR 45
|
|
46
46
|
#define PCRE_PRERELEASE
|
|
47
|
-
#define PCRE_DATE
|
|
47
|
+
#define PCRE_DATE 2021-06-15
|
|
48
48
|
|
|
49
49
|
#define PCRE_EXP_DECL extern
|
|
50
50
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
and semantics are as close as possible to those of the Perl 5 language.
|
|
7
7
|
|
|
8
8
|
Written by Philip Hazel
|
|
9
|
-
Copyright (c) 1997-
|
|
9
|
+
Copyright (c) 1997-2021 University of Cambridge
|
|
10
10
|
|
|
11
11
|
-----------------------------------------------------------------------------
|
|
12
12
|
Redistribution and use in source and binary forms, with or without
|
|
@@ -9104,6 +9104,8 @@ pcre_uchar cworkspace[COMPILE_WORK_SIZE];
|
|
|
9104
9104
|
similar way to cworkspace, it can be expanded using malloc() if necessary. */
|
|
9105
9105
|
|
|
9106
9106
|
named_group named_groups[NAMED_GROUP_LIST_SIZE];
|
|
9107
|
+
cd->named_groups = named_groups;
|
|
9108
|
+
cd->named_group_list_size = NAMED_GROUP_LIST_SIZE;
|
|
9107
9109
|
|
|
9108
9110
|
/* Set this early so that early errors get offset 0. */
|
|
9109
9111
|
|
|
@@ -9377,8 +9379,6 @@ cd->hwm = cworkspace;
|
|
|
9377
9379
|
cd->iscondassert = FALSE;
|
|
9378
9380
|
cd->start_workspace = cworkspace;
|
|
9379
9381
|
cd->workspace_size = COMPILE_WORK_SIZE;
|
|
9380
|
-
cd->named_groups = named_groups;
|
|
9381
|
-
cd->named_group_list_size = NAMED_GROUP_LIST_SIZE;
|
|
9382
9382
|
cd->start_pattern = (const pcre_uchar *)pattern;
|
|
9383
9383
|
cd->end_pattern = (const pcre_uchar *)(pattern + STRLEN_UC((const pcre_uchar *)pattern));
|
|
9384
9384
|
cd->req_varyopt = 0;
|
|
@@ -9489,6 +9489,7 @@ if (cd->names_found > 0)
|
|
|
9489
9489
|
add_name(cd, ng->name, ng->length, ng->number);
|
|
9490
9490
|
if (cd->named_group_list_size > NAMED_GROUP_LIST_SIZE)
|
|
9491
9491
|
(PUBL(free))((void *)cd->named_groups);
|
|
9492
|
+
cd->named_group_list_size = 0; /* So we don't free it twice */
|
|
9492
9493
|
}
|
|
9493
9494
|
|
|
9494
9495
|
/* Set up a starting, non-extracting bracket, then compile the expression. On
|
|
@@ -9639,6 +9640,8 @@ if (errorcode != 0)
|
|
|
9639
9640
|
{
|
|
9640
9641
|
(PUBL(free))(re);
|
|
9641
9642
|
PCRE_EARLY_ERROR_RETURN:
|
|
9643
|
+
if (cd->named_group_list_size > NAMED_GROUP_LIST_SIZE)
|
|
9644
|
+
(PUBL(free))((void *)cd->named_groups);
|
|
9642
9645
|
*erroroffset = (int)(ptr - (const pcre_uchar *)pattern);
|
|
9643
9646
|
PCRE_EARLY_ERROR_RETURN2:
|
|
9644
9647
|
*errorptr = find_error_text(errorcode);
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
and semantics are as close as possible to those of the Perl 5 language.
|
|
7
7
|
|
|
8
8
|
Written by Philip Hazel
|
|
9
|
-
Copyright (c) 1997-
|
|
9
|
+
Copyright (c) 1997-2021 University of Cambridge
|
|
10
10
|
|
|
11
11
|
-----------------------------------------------------------------------------
|
|
12
12
|
Redistribution and use in source and binary forms, with or without
|
|
@@ -758,7 +758,7 @@ for (;;)
|
|
|
758
758
|
md->mark = NULL; /* In case previously set by assertion */
|
|
759
759
|
RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode] + ecode[1], offset_top, md,
|
|
760
760
|
eptrb, RM55);
|
|
761
|
-
if ((rrc == MATCH_MATCH || rrc == MATCH_ACCEPT) &&
|
|
761
|
+
if ((rrc == MATCH_MATCH || rrc == MATCH_ACCEPT || rrc == MATCH_KETRPOS) &&
|
|
762
762
|
md->mark == NULL) md->mark = ecode + 2;
|
|
763
763
|
|
|
764
764
|
/* A return of MATCH_SKIP_ARG means that matching failed at SKIP with an
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
file(GLOB SRC_XDIFF "*.c" "*.h")
|
|
3
|
+
list(SORT SRC_XDIFF)
|
|
4
|
+
|
|
5
|
+
add_library(xdiff OBJECT ${SRC_XDIFF})
|
|
6
|
+
target_include_directories(xdiff SYSTEM PRIVATE
|
|
7
|
+
"${PROJECT_SOURCE_DIR}/include"
|
|
8
|
+
"${PROJECT_SOURCE_DIR}/src/util"
|
|
9
|
+
"${PROJECT_BINARY_DIR}/src/util"
|
|
10
|
+
${LIBGIT2_SYSTEM_INCLUDES}
|
|
11
|
+
${LIBGIT2_DEPENDENCY_INCLUDES})
|
|
12
|
+
|
|
13
|
+
# the xdiff dependency is not (yet) warning-free, disable warnings
|
|
14
|
+
# as errors for the xdiff sources until we've sorted them out
|
|
15
|
+
if(MSVC)
|
|
16
|
+
set_source_files_properties(xdiffi.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
17
|
+
set_source_files_properties(xemit.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
18
|
+
set_source_files_properties(xhistogram.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
19
|
+
set_source_files_properties(xmerge.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
20
|
+
set_source_files_properties(xutils.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
21
|
+
set_source_files_properties(xpatience.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
22
|
+
else()
|
|
23
|
+
set_source_files_properties(xdiffi.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
|
|
24
|
+
set_source_files_properties(xemit.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
|
|
25
|
+
set_source_files_properties(xhistogram.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
|
26
|
+
set_source_files_properties(xutils.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
|
27
|
+
set_source_files_properties(xpatience.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
|
28
|
+
endif()
|
|
@@ -27,11 +27,14 @@
|
|
|
27
27
|
# endif
|
|
28
28
|
#endif
|
|
29
29
|
|
|
30
|
+
#define XDL_UNUSED GIT_UNUSED_ARG
|
|
31
|
+
|
|
30
32
|
#define xdl_malloc(x) git__malloc(x)
|
|
33
|
+
#define xdl_calloc(n, sz) git__calloc(n, sz)
|
|
31
34
|
#define xdl_free(ptr) git__free(ptr)
|
|
32
35
|
#define xdl_realloc(ptr, x) git__realloc(ptr, x)
|
|
33
36
|
|
|
34
|
-
#define XDL_BUG(msg) GIT_ASSERT(msg)
|
|
37
|
+
#define XDL_BUG(msg) GIT_ASSERT(!msg)
|
|
35
38
|
|
|
36
39
|
#define xdl_regex_t git_regexp
|
|
37
40
|
#define xdl_regmatch_t git_regmatch
|
|
@@ -315,16 +315,19 @@ int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
|
|
315
315
|
long *kvd, *kvdf, *kvdb;
|
|
316
316
|
xdalgoenv_t xenv;
|
|
317
317
|
diffdata_t dd1, dd2;
|
|
318
|
+
int res;
|
|
318
319
|
|
|
319
|
-
if (
|
|
320
|
-
return
|
|
321
|
-
|
|
322
|
-
if (XDF_DIFF_ALG(xpp->flags) == XDF_HISTOGRAM_DIFF)
|
|
323
|
-
return xdl_do_histogram_diff(mf1, mf2, xpp, xe);
|
|
320
|
+
if (xdl_prepare_env(mf1, mf2, xpp, xe) < 0)
|
|
321
|
+
return -1;
|
|
324
322
|
|
|
325
|
-
if (
|
|
323
|
+
if (XDF_DIFF_ALG(xpp->flags) == XDF_PATIENCE_DIFF) {
|
|
324
|
+
res = xdl_do_patience_diff(xpp, xe);
|
|
325
|
+
goto out;
|
|
326
|
+
}
|
|
326
327
|
|
|
327
|
-
|
|
328
|
+
if (XDF_DIFF_ALG(xpp->flags) == XDF_HISTOGRAM_DIFF) {
|
|
329
|
+
res = xdl_do_histogram_diff(xpp, xe);
|
|
330
|
+
goto out;
|
|
328
331
|
}
|
|
329
332
|
|
|
330
333
|
/*
|
|
@@ -334,7 +337,7 @@ int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
|
|
334
337
|
* One is to store the forward path and one to store the backward path.
|
|
335
338
|
*/
|
|
336
339
|
ndiags = xe->xdf1.nreff + xe->xdf2.nreff + 3;
|
|
337
|
-
if (!(kvd
|
|
340
|
+
if (!XDL_ALLOC_ARRAY(kvd, 2 * ndiags + 2)) {
|
|
338
341
|
|
|
339
342
|
xdl_free_env(xe);
|
|
340
343
|
return -1;
|
|
@@ -359,17 +362,15 @@ int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
|
|
359
362
|
dd2.rchg = xe->xdf2.rchg;
|
|
360
363
|
dd2.rindex = xe->xdf2.rindex;
|
|
361
364
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
xdl_free(kvd);
|
|
366
|
-
xdl_free_env(xe);
|
|
367
|
-
return -1;
|
|
368
|
-
}
|
|
369
|
-
|
|
365
|
+
res = xdl_recs_cmp(&dd1, 0, dd1.nrec, &dd2, 0, dd2.nrec,
|
|
366
|
+
kvdf, kvdb, (xpp->flags & XDF_NEED_MINIMAL) != 0,
|
|
367
|
+
&xenv);
|
|
370
368
|
xdl_free(kvd);
|
|
369
|
+
out:
|
|
370
|
+
if (res < 0)
|
|
371
|
+
xdl_free_env(xe);
|
|
371
372
|
|
|
372
|
-
return
|
|
373
|
+
return res;
|
|
373
374
|
}
|
|
374
375
|
|
|
375
376
|
|
|
@@ -972,7 +973,7 @@ void xdl_free_script(xdchange_t *xscr) {
|
|
|
972
973
|
}
|
|
973
974
|
}
|
|
974
975
|
|
|
975
|
-
static int xdl_call_hunk_func(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
|
|
976
|
+
static int xdl_call_hunk_func(xdfenv_t *xe XDL_UNUSED, xdchange_t *xscr, xdemitcb_t *ecb,
|
|
976
977
|
xdemitconf_t const *xecfg)
|
|
977
978
|
{
|
|
978
979
|
xdchange_t *xch, *xche;
|
|
@@ -56,9 +56,7 @@ int xdl_build_script(xdfenv_t *xe, xdchange_t **xscr);
|
|
|
56
56
|
void xdl_free_script(xdchange_t *xscr);
|
|
57
57
|
int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
|
|
58
58
|
xdemitconf_t const *xecfg);
|
|
59
|
-
int xdl_do_patience_diff(
|
|
60
|
-
|
|
61
|
-
int xdl_do_histogram_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
|
62
|
-
xdfenv_t *env);
|
|
59
|
+
int xdl_do_patience_diff(xpparam_t const *xpp, xdfenv_t *env);
|
|
60
|
+
int xdl_do_histogram_diff(xpparam_t const *xpp, xdfenv_t *env);
|
|
63
61
|
|
|
64
62
|
#endif /* #if !defined(XDIFFI_H) */
|
|
@@ -65,7 +65,7 @@ xdchange_t *xdl_get_hunk(xdchange_t **xscr, xdemitconf_t const *xecfg)
|
|
|
65
65
|
*xscr = xch;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
if (
|
|
68
|
+
if (!*xscr)
|
|
69
69
|
return NULL;
|
|
70
70
|
|
|
71
71
|
lxch = *xscr;
|
|
@@ -95,7 +95,7 @@ xdchange_t *xdl_get_hunk(xdchange_t **xscr, xdemitconf_t const *xecfg)
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
|
|
98
|
-
static long def_ff(const char *rec, long len, char *buf, long sz
|
|
98
|
+
static long def_ff(const char *rec, long len, char *buf, long sz)
|
|
99
99
|
{
|
|
100
100
|
if (len > 0 &&
|
|
101
101
|
(isalpha((unsigned char)*rec) || /* identifier? */
|
|
@@ -117,7 +117,7 @@ static long match_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri,
|
|
|
117
117
|
const char *rec;
|
|
118
118
|
long len = xdl_get_rec(xdf, ri, &rec);
|
|
119
119
|
if (!xecfg->find_func)
|
|
120
|
-
return def_ff(rec, len, buf, sz
|
|
120
|
+
return def_ff(rec, len, buf, sz);
|
|
121
121
|
return xecfg->find_func(rec, len, buf, sz, xecfg->find_func_priv);
|
|
122
122
|
}
|
|
123
123
|
|
|
@@ -251,7 +251,7 @@ static int find_lcs(xpparam_t const *xpp, xdfenv_t *env,
|
|
|
251
251
|
int line1, int count1, int line2, int count2)
|
|
252
252
|
{
|
|
253
253
|
int b_ptr;
|
|
254
|
-
int
|
|
254
|
+
int ret = -1;
|
|
255
255
|
struct histindex index;
|
|
256
256
|
|
|
257
257
|
memset(&index, 0, sizeof(index));
|
|
@@ -265,23 +265,16 @@ static int find_lcs(xpparam_t const *xpp, xdfenv_t *env,
|
|
|
265
265
|
index.rcha.head = NULL;
|
|
266
266
|
|
|
267
267
|
index.table_bits = xdl_hashbits(count1);
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
if (!(index.records = (struct record **) xdl_malloc(sz)))
|
|
268
|
+
index.records_size = 1 << index.table_bits;
|
|
269
|
+
if (!XDL_CALLOC_ARRAY(index.records, index.records_size))
|
|
271
270
|
goto cleanup;
|
|
272
|
-
memset(index.records, 0, sz);
|
|
273
271
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
if (!(index.line_map = (struct record **) xdl_malloc(sz)))
|
|
272
|
+
index.line_map_size = count1;
|
|
273
|
+
if (!XDL_CALLOC_ARRAY(index.line_map, index.line_map_size))
|
|
277
274
|
goto cleanup;
|
|
278
|
-
memset(index.line_map, 0, sz);
|
|
279
275
|
|
|
280
|
-
|
|
281
|
-
sz *= sizeof(unsigned int);
|
|
282
|
-
if (!(index.next_ptrs = (unsigned int *) xdl_malloc(sz)))
|
|
276
|
+
if (!XDL_CALLOC_ARRAY(index.next_ptrs, index.line_map_size))
|
|
283
277
|
goto cleanup;
|
|
284
|
-
memset(index.next_ptrs, 0, sz);
|
|
285
278
|
|
|
286
279
|
/* lines / 4 + 1 comes from xprepare.c:xdl_prepare_ctx() */
|
|
287
280
|
if (xdl_cha_init(&index.rcha, sizeof(struct record), count1 / 4 + 1) < 0)
|
|
@@ -369,12 +362,8 @@ out:
|
|
|
369
362
|
return result;
|
|
370
363
|
}
|
|
371
364
|
|
|
372
|
-
int xdl_do_histogram_diff(
|
|
373
|
-
xpparam_t const *xpp, xdfenv_t *env)
|
|
365
|
+
int xdl_do_histogram_diff(xpparam_t const *xpp, xdfenv_t *env)
|
|
374
366
|
{
|
|
375
|
-
if (xdl_prepare_env(file1, file2, xpp, env) < 0)
|
|
376
|
-
return -1;
|
|
377
|
-
|
|
378
367
|
return histogram_diff(xpp, env,
|
|
379
368
|
env->xdf1.dstart + 1, env->xdf1.dend - env->xdf1.dstart + 1,
|
|
380
369
|
env->xdf2.dstart + 1, env->xdf2.dend - env->xdf2.dstart + 1);
|
|
@@ -34,7 +34,6 @@
|
|
|
34
34
|
#define XDL_ADDBITS(v,b) ((v) + ((v) >> (b)))
|
|
35
35
|
#define XDL_MASKBITS(b) ((1UL << (b)) - 1)
|
|
36
36
|
#define XDL_HASHLONG(v,b) (XDL_ADDBITS((unsigned long)(v), b) & XDL_MASKBITS(b))
|
|
37
|
-
#define XDL_PTRFREE(p) do { if (p) { xdl_free(p); (p) = NULL; } } while (0)
|
|
38
37
|
#define XDL_LE32_PUT(p, v) \
|
|
39
38
|
do { \
|
|
40
39
|
unsigned char *__p = (unsigned char *) (p); \
|
|
@@ -50,5 +49,23 @@ do { \
|
|
|
50
49
|
((unsigned long) __p[2]) << 16 | ((unsigned long) __p[3]) << 24; \
|
|
51
50
|
} while (0)
|
|
52
51
|
|
|
52
|
+
/* Allocate an array of nr elements, returns NULL on failure */
|
|
53
|
+
#define XDL_ALLOC_ARRAY(p, nr) \
|
|
54
|
+
((p) = SIZE_MAX / sizeof(*(p)) >= (size_t)(nr) \
|
|
55
|
+
? xdl_malloc((nr) * sizeof(*(p))) \
|
|
56
|
+
: NULL)
|
|
57
|
+
|
|
58
|
+
/* Allocate an array of nr zeroed out elements, returns NULL on failure */
|
|
59
|
+
#define XDL_CALLOC_ARRAY(p, nr) ((p) = xdl_calloc(nr, sizeof(*(p))))
|
|
60
|
+
|
|
61
|
+
/*
|
|
62
|
+
* Ensure array p can accommodate at least nr elements, growing the
|
|
63
|
+
* array and updating alloc (which is the number of allocated
|
|
64
|
+
* elements) as necessary. Frees p and returns -1 on failure, returns
|
|
65
|
+
* 0 on success
|
|
66
|
+
*/
|
|
67
|
+
#define XDL_ALLOC_GROW(p, nr, alloc) \
|
|
68
|
+
(-!((nr) <= (alloc) || \
|
|
69
|
+
((p) = xdl_alloc_grow_helper((p), (nr), &(alloc), sizeof(*(p))))))
|
|
53
70
|
|
|
54
71
|
#endif /* #if !defined(XMACROS_H) */
|