rugged 1.3.2.3 → 1.4.2
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/extconf.rb +1 -1
- data/ext/rugged/rugged_config.c +7 -2
- data/ext/rugged/rugged_remote.c +17 -0
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +103 -276
- data/vendor/libgit2/COPYING +36 -19
- data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
- data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
- data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
- data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
- data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
- data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
- data/vendor/libgit2/cmake/{FindHTTP_Parser.cmake → FindHTTPParser.cmake} +17 -17
- data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
- data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
- data/vendor/libgit2/cmake/FindPCRE.cmake +13 -13
- data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
- data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
- data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
- data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
- data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
- data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
- data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
- data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
- data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +19 -0
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
- data/vendor/libgit2/cmake/SelectHashes.cmake +39 -49
- data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
- data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +31 -31
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +1 -1
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
- data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
- data/vendor/libgit2/deps/zlib/adler32.c +0 -7
- data/vendor/libgit2/deps/zlib/crc32.c +288 -975
- data/vendor/libgit2/deps/zlib/crc32.h +436 -9441
- data/vendor/libgit2/deps/zlib/deflate.c +31 -83
- data/vendor/libgit2/deps/zlib/deflate.h +15 -12
- data/vendor/libgit2/deps/zlib/gzguts.h +2 -3
- data/vendor/libgit2/deps/zlib/infback.c +1 -2
- data/vendor/libgit2/deps/zlib/inffast.c +14 -14
- data/vendor/libgit2/deps/zlib/inflate.c +8 -39
- data/vendor/libgit2/deps/zlib/inflate.h +2 -3
- data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
- data/vendor/libgit2/deps/zlib/trees.c +48 -27
- data/vendor/libgit2/deps/zlib/zlib.h +100 -126
- data/vendor/libgit2/deps/zlib/zutil.c +2 -2
- data/vendor/libgit2/deps/zlib/zutil.h +9 -12
- data/vendor/libgit2/include/git2/apply.h +16 -2
- data/vendor/libgit2/include/git2/attr.h +11 -2
- data/vendor/libgit2/include/git2/blame.h +4 -1
- data/vendor/libgit2/include/git2/blob.h +14 -1
- data/vendor/libgit2/include/git2/branch.h +2 -0
- data/vendor/libgit2/include/git2/buffer.h +18 -78
- data/vendor/libgit2/include/git2/cert.h +2 -2
- data/vendor/libgit2/include/git2/checkout.h +5 -2
- data/vendor/libgit2/include/git2/clone.h +3 -3
- data/vendor/libgit2/include/git2/commit.h +2 -0
- data/vendor/libgit2/include/git2/common.h +5 -12
- data/vendor/libgit2/include/git2/config.h +19 -3
- data/vendor/libgit2/include/git2/credential.h +2 -1
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +1 -1
- data/vendor/libgit2/include/git2/describe.h +7 -2
- data/vendor/libgit2/include/git2/diff.h +17 -9
- data/vendor/libgit2/include/git2/email.h +1 -1
- data/vendor/libgit2/include/git2/errors.h +1 -2
- data/vendor/libgit2/include/git2/filter.h +7 -2
- data/vendor/libgit2/include/git2/graph.h +1 -0
- data/vendor/libgit2/include/git2/ignore.h +1 -1
- data/vendor/libgit2/include/git2/index.h +11 -5
- data/vendor/libgit2/include/git2/indexer.h +19 -0
- data/vendor/libgit2/include/git2/merge.h +23 -3
- data/vendor/libgit2/include/git2/message.h +2 -0
- data/vendor/libgit2/include/git2/object.h +23 -0
- data/vendor/libgit2/include/git2/odb.h +37 -7
- data/vendor/libgit2/include/git2/odb_backend.h +1 -1
- data/vendor/libgit2/include/git2/pack.h +24 -8
- data/vendor/libgit2/include/git2/patch.h +8 -0
- data/vendor/libgit2/include/git2/pathspec.h +1 -1
- data/vendor/libgit2/include/git2/proxy.h +1 -1
- data/vendor/libgit2/include/git2/rebase.h +9 -1
- data/vendor/libgit2/include/git2/refdb.h +3 -0
- data/vendor/libgit2/include/git2/reflog.h +1 -1
- data/vendor/libgit2/include/git2/refs.h +2 -2
- data/vendor/libgit2/include/git2/remote.h +184 -37
- data/vendor/libgit2/include/git2/repository.h +14 -9
- data/vendor/libgit2/include/git2/reset.h +2 -2
- data/vendor/libgit2/include/git2/revparse.h +1 -1
- data/vendor/libgit2/include/git2/revwalk.h +4 -1
- data/vendor/libgit2/include/git2/signature.h +1 -1
- data/vendor/libgit2/include/git2/stash.h +3 -3
- data/vendor/libgit2/include/git2/status.h +9 -3
- data/vendor/libgit2/include/git2/submodule.h +7 -2
- data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
- data/vendor/libgit2/include/git2/sys/odb_backend.h +2 -5
- data/vendor/libgit2/include/git2/sys/remote.h +31 -0
- data/vendor/libgit2/include/git2/sys/stream.h +1 -1
- data/vendor/libgit2/include/git2/sys/transport.h +25 -34
- data/vendor/libgit2/include/git2/tag.h +1 -0
- data/vendor/libgit2/include/git2/tree.h +4 -3
- data/vendor/libgit2/include/git2/types.h +7 -7
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2/worktree.h +12 -2
- data/vendor/libgit2/src/CMakeLists.txt +189 -315
- data/vendor/libgit2/src/annotated_commit.h +1 -1
- data/vendor/libgit2/src/apply.c +18 -18
- data/vendor/libgit2/src/apply.h +2 -2
- data/vendor/libgit2/src/attr.c +18 -18
- data/vendor/libgit2/src/attr_file.c +17 -17
- data/vendor/libgit2/src/attr_file.h +4 -4
- data/vendor/libgit2/src/attrcache.c +17 -12
- data/vendor/libgit2/src/blame_git.c +1 -1
- data/vendor/libgit2/src/blob.c +33 -26
- data/vendor/libgit2/src/blob.h +1 -1
- data/vendor/libgit2/src/branch.c +150 -109
- data/vendor/libgit2/src/branch.h +15 -3
- data/vendor/libgit2/src/buf.c +126 -0
- data/vendor/libgit2/src/buf.h +50 -0
- data/vendor/libgit2/src/cc-compat.h +1 -1
- data/vendor/libgit2/src/checkout.c +74 -68
- data/vendor/libgit2/src/cherrypick.c +10 -10
- data/vendor/libgit2/src/clone.c +66 -66
- data/vendor/libgit2/src/commit.c +128 -58
- data/vendor/libgit2/src/commit.h +24 -1
- data/vendor/libgit2/src/commit_graph.c +68 -53
- data/vendor/libgit2/src/commit_graph.h +10 -3
- data/vendor/libgit2/src/commit_list.c +2 -3
- data/vendor/libgit2/src/common.h +10 -3
- data/vendor/libgit2/src/config.c +99 -77
- data/vendor/libgit2/src/config.h +15 -2
- data/vendor/libgit2/src/config_file.c +103 -91
- data/vendor/libgit2/src/config_mem.c +9 -9
- data/vendor/libgit2/src/config_parse.c +27 -23
- data/vendor/libgit2/src/crlf.c +24 -21
- data/vendor/libgit2/src/date.c +10 -17
- data/vendor/libgit2/src/date.h +33 -0
- data/vendor/libgit2/src/describe.c +27 -19
- data/vendor/libgit2/src/diff.c +25 -8
- data/vendor/libgit2/src/diff.h +2 -4
- data/vendor/libgit2/src/diff_driver.c +34 -36
- data/vendor/libgit2/src/diff_driver.h +3 -3
- data/vendor/libgit2/src/diff_file.c +29 -20
- data/vendor/libgit2/src/diff_generate.c +30 -6
- data/vendor/libgit2/src/diff_generate.h +5 -3
- data/vendor/libgit2/src/diff_print.c +102 -95
- data/vendor/libgit2/src/diff_stats.c +40 -29
- data/vendor/libgit2/src/{message.h → diff_stats.h} +7 -6
- data/vendor/libgit2/src/diff_tform.c +9 -8
- data/vendor/libgit2/src/diff_xdiff.c +3 -8
- data/vendor/libgit2/src/email.c +54 -38
- data/vendor/libgit2/src/email.h +1 -1
- data/vendor/libgit2/src/errors.c +18 -18
- data/vendor/libgit2/src/features.h.in +6 -1
- data/vendor/libgit2/src/fetch.c +69 -24
- data/vendor/libgit2/src/fetch.h +1 -1
- data/vendor/libgit2/src/fetchhead.c +19 -19
- data/vendor/libgit2/src/filebuf.c +28 -28
- data/vendor/libgit2/src/filebuf.h +1 -1
- data/vendor/libgit2/src/filter.c +96 -52
- data/vendor/libgit2/src/filter.h +26 -5
- data/vendor/libgit2/src/fs_path.c +1912 -0
- data/vendor/libgit2/src/fs_path.h +752 -0
- data/vendor/libgit2/src/futils.c +91 -85
- data/vendor/libgit2/src/futils.h +26 -14
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +2 -2
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +2 -2
- data/vendor/libgit2/src/hash/sha1/generic.c +2 -2
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +2 -2
- data/vendor/libgit2/src/hash/sha1/openssl.c +2 -2
- data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +1 -1
- data/vendor/libgit2/src/hash/sha1/win32.c +6 -6
- data/vendor/libgit2/src/hash/sha1.h +3 -1
- data/vendor/libgit2/src/hash.c +67 -35
- data/vendor/libgit2/src/hash.h +12 -12
- data/vendor/libgit2/src/ident.c +18 -18
- data/vendor/libgit2/src/ignore.c +35 -34
- data/vendor/libgit2/src/ignore.h +2 -2
- data/vendor/libgit2/src/index.c +79 -80
- data/vendor/libgit2/src/index.h +6 -3
- data/vendor/libgit2/src/indexer.c +75 -57
- data/vendor/libgit2/src/iterator.c +64 -56
- data/vendor/libgit2/src/iterator.h +5 -5
- data/vendor/libgit2/src/khash.h +1 -1
- data/vendor/libgit2/src/libgit2.c +22 -19
- data/vendor/libgit2/src/mailmap.c +38 -36
- data/vendor/libgit2/src/merge.c +27 -27
- data/vendor/libgit2/src/merge.h +1 -14
- data/vendor/libgit2/src/merge_driver.c +2 -2
- data/vendor/libgit2/src/merge_file.c +13 -3
- data/vendor/libgit2/src/message.c +21 -10
- data/vendor/libgit2/src/midx.c +83 -66
- data/vendor/libgit2/src/midx.h +3 -3
- data/vendor/libgit2/src/mwindow.c +1 -1
- data/vendor/libgit2/src/net.c +278 -68
- data/vendor/libgit2/src/net.h +10 -3
- data/vendor/libgit2/src/netops.c +1 -1
- data/vendor/libgit2/src/netops.h +1 -1
- data/vendor/libgit2/src/notes.c +20 -29
- data/vendor/libgit2/src/object.c +49 -9
- data/vendor/libgit2/src/object.h +1 -1
- data/vendor/libgit2/src/odb.c +35 -32
- data/vendor/libgit2/src/odb.h +1 -1
- data/vendor/libgit2/src/odb_loose.c +68 -68
- data/vendor/libgit2/src/odb_mempack.c +18 -5
- data/vendor/libgit2/src/odb_pack.c +43 -43
- data/vendor/libgit2/src/oid.c +11 -4
- data/vendor/libgit2/src/oid.h +15 -0
- data/vendor/libgit2/src/pack-objects.c +41 -26
- data/vendor/libgit2/src/pack-objects.h +11 -6
- data/vendor/libgit2/src/pack.c +10 -10
- data/vendor/libgit2/src/patch.c +3 -3
- data/vendor/libgit2/src/patch.h +1 -0
- data/vendor/libgit2/src/patch_generate.c +27 -11
- data/vendor/libgit2/src/patch_generate.h +5 -5
- data/vendor/libgit2/src/patch_parse.c +24 -24
- data/vendor/libgit2/src/path.c +76 -1951
- data/vendor/libgit2/src/path.h +34 -741
- data/vendor/libgit2/src/pathspec.c +6 -6
- data/vendor/libgit2/src/pathspec.h +2 -2
- data/vendor/libgit2/src/posix.c +3 -3
- data/vendor/libgit2/src/posix.h +1 -0
- data/vendor/libgit2/src/pqueue.h +1 -1
- data/vendor/libgit2/src/proxy.c +4 -1
- data/vendor/libgit2/src/proxy.h +1 -1
- data/vendor/libgit2/src/push.c +30 -35
- data/vendor/libgit2/src/push.h +4 -16
- data/vendor/libgit2/src/rand.c +226 -0
- data/vendor/libgit2/src/rand.h +37 -0
- data/vendor/libgit2/src/reader.c +8 -8
- data/vendor/libgit2/src/reader.h +2 -2
- data/vendor/libgit2/src/rebase.c +89 -88
- data/vendor/libgit2/src/refdb_fs.c +447 -173
- data/vendor/libgit2/src/refs.c +32 -32
- data/vendor/libgit2/src/refs.h +2 -2
- data/vendor/libgit2/src/refspec.c +32 -37
- data/vendor/libgit2/src/refspec.h +5 -2
- data/vendor/libgit2/src/regexp.c +1 -1
- data/vendor/libgit2/src/remote.c +713 -419
- data/vendor/libgit2/src/remote.h +15 -10
- data/vendor/libgit2/src/repository.c +350 -467
- data/vendor/libgit2/src/repository.h +11 -10
- data/vendor/libgit2/src/reset.c +8 -5
- data/vendor/libgit2/src/revert.c +10 -10
- data/vendor/libgit2/src/revparse.c +48 -35
- data/vendor/libgit2/src/revwalk.c +7 -7
- data/vendor/libgit2/src/signature.c +12 -6
- data/vendor/libgit2/src/signature.h +1 -1
- data/vendor/libgit2/src/sortedcache.c +1 -1
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +36 -37
- data/vendor/libgit2/src/status.c +4 -1
- data/vendor/libgit2/src/{buffer.c → str.c} +157 -151
- data/vendor/libgit2/src/str.h +357 -0
- data/vendor/libgit2/src/streams/mbedtls.c +8 -6
- data/vendor/libgit2/src/streams/openssl_dynamic.h +3 -3
- data/vendor/libgit2/src/submodule.c +171 -159
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +68 -52
- data/vendor/libgit2/src/sysdir.h +15 -10
- data/vendor/libgit2/src/tag.c +29 -27
- data/vendor/libgit2/src/thread.h +3 -3
- data/vendor/libgit2/src/threadstate.c +3 -3
- data/vendor/libgit2/src/threadstate.h +1 -1
- data/vendor/libgit2/src/trace.c +1 -14
- data/vendor/libgit2/src/trace.h +5 -22
- data/vendor/libgit2/src/trailer.c +1 -1
- data/vendor/libgit2/src/transaction.c +1 -1
- data/vendor/libgit2/src/transport.c +10 -10
- data/vendor/libgit2/src/transports/auth.c +7 -9
- data/vendor/libgit2/src/transports/auth.h +2 -3
- data/vendor/libgit2/src/transports/auth_negotiate.c +12 -13
- data/vendor/libgit2/src/transports/auth_ntlm.c +10 -10
- data/vendor/libgit2/src/transports/auth_ntlm.h +0 -1
- data/vendor/libgit2/src/transports/git.c +9 -11
- data/vendor/libgit2/src/transports/http.c +37 -17
- data/vendor/libgit2/src/transports/http.h +2 -3
- data/vendor/libgit2/src/transports/httpclient.c +65 -65
- data/vendor/libgit2/src/transports/local.c +124 -116
- data/vendor/libgit2/src/transports/smart.c +51 -139
- data/vendor/libgit2/src/transports/smart.h +25 -31
- data/vendor/libgit2/src/transports/smart_pkt.c +33 -33
- data/vendor/libgit2/src/transports/smart_protocol.c +57 -39
- data/vendor/libgit2/src/transports/ssh.c +47 -112
- data/vendor/libgit2/src/transports/winhttp.c +50 -56
- data/vendor/libgit2/src/tree-cache.c +5 -5
- data/vendor/libgit2/src/tree-cache.h +2 -2
- data/vendor/libgit2/src/tree.c +59 -48
- data/vendor/libgit2/src/tree.h +1 -1
- data/vendor/libgit2/src/unix/map.c +0 -2
- data/vendor/libgit2/src/unix/posix.h +1 -4
- data/vendor/libgit2/src/unix/realpath.c +0 -2
- data/vendor/libgit2/src/util.c +14 -14
- data/vendor/libgit2/src/util.h +2 -28
- data/vendor/libgit2/src/vector.h +1 -1
- data/vendor/libgit2/src/win32/findfile.c +172 -116
- data/vendor/libgit2/src/win32/findfile.h +7 -4
- data/vendor/libgit2/src/win32/path_w32.c +140 -9
- data/vendor/libgit2/src/win32/path_w32.h +2 -0
- data/vendor/libgit2/src/win32/posix.h +0 -1
- data/vendor/libgit2/src/win32/posix_w32.c +11 -27
- data/vendor/libgit2/src/win32/w32_buffer.c +2 -3
- data/vendor/libgit2/src/win32/w32_buffer.h +2 -3
- data/vendor/libgit2/src/win32/w32_leakcheck.c +1 -1
- data/vendor/libgit2/src/worktree.c +116 -94
- data/vendor/libgit2/src/worktree.h +1 -1
- data/vendor/libgit2/src/xdiff/git-xdiff.h +53 -0
- data/vendor/libgit2/src/xdiff/xdiff.h +15 -15
- data/vendor/libgit2/src/xdiff/xdiffi.c +134 -108
- data/vendor/libgit2/src/xdiff/xemit.c +23 -7
- data/vendor/libgit2/src/xdiff/xhistogram.c +87 -78
- data/vendor/libgit2/src/xdiff/xinclude.h +1 -12
- data/vendor/libgit2/src/xdiff/xmerge.c +104 -117
- data/vendor/libgit2/src/xdiff/xpatience.c +6 -17
- data/vendor/libgit2/src/xdiff/xprepare.c +15 -20
- data/vendor/libgit2/src/xdiff/xutils.c +18 -7
- data/vendor/libgit2/src/zstream.c +5 -5
- data/vendor/libgit2/src/zstream.h +4 -4
- metadata +25 -10
- data/vendor/libgit2/src/buffer.h +0 -374
|
@@ -7,9 +7,7 @@
|
|
|
7
7
|
#ifndef INCLUDE_unix_posix_h__
|
|
8
8
|
#define INCLUDE_unix_posix_h__
|
|
9
9
|
|
|
10
|
-
#
|
|
11
|
-
# include "git2/sys/features.h"
|
|
12
|
-
#endif
|
|
10
|
+
#include "common.h"
|
|
13
11
|
|
|
14
12
|
#include <stdio.h>
|
|
15
13
|
#include <dirent.h>
|
|
@@ -60,7 +58,6 @@ GIT_INLINE(int) p_fsync(int fd)
|
|
|
60
58
|
#define p_strncasecmp(s1, s2, c) strncasecmp(s1, s2, c)
|
|
61
59
|
#define p_vsnprintf(b, c, f, a) vsnprintf(b, c, f, a)
|
|
62
60
|
#define p_snprintf snprintf
|
|
63
|
-
#define p_mkstemp(p) mkstemp(p)
|
|
64
61
|
#define p_chdir(p) chdir(p)
|
|
65
62
|
#define p_rmdir(p) rmdir(p)
|
|
66
63
|
#define p_access(p,m) access(p,m)
|
data/vendor/libgit2/src/util.c
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# endif
|
|
19
19
|
# include <windows.h>
|
|
20
20
|
|
|
21
|
-
# ifdef
|
|
21
|
+
# ifdef GIT_QSORT_S
|
|
22
22
|
# include <search.h>
|
|
23
23
|
# endif
|
|
24
24
|
#endif
|
|
@@ -673,7 +673,7 @@ size_t git__unescape(char *str)
|
|
|
673
673
|
return (pos - str);
|
|
674
674
|
}
|
|
675
675
|
|
|
676
|
-
#if defined(
|
|
676
|
+
#if defined(GIT_QSORT_S) || defined(GIT_QSORT_R_BSD)
|
|
677
677
|
typedef struct {
|
|
678
678
|
git__sort_r_cmp cmp;
|
|
679
679
|
void *payload;
|
|
@@ -688,9 +688,9 @@ static int GIT_LIBGIT2_CALL git__qsort_r_glue_cmp(
|
|
|
688
688
|
#endif
|
|
689
689
|
|
|
690
690
|
|
|
691
|
-
#if !defined(
|
|
692
|
-
!defined(
|
|
693
|
-
!defined(
|
|
691
|
+
#if !defined(GIT_QSORT_R_BSD) && \
|
|
692
|
+
!defined(GIT_QSORT_R_GNU) && \
|
|
693
|
+
!defined(GIT_QSORT_S)
|
|
694
694
|
static void swap(uint8_t *a, uint8_t *b, size_t elsize)
|
|
695
695
|
{
|
|
696
696
|
char tmp[256];
|
|
@@ -721,12 +721,12 @@ static void insertsort(
|
|
|
721
721
|
void git__qsort_r(
|
|
722
722
|
void *els, size_t nel, size_t elsize, git__sort_r_cmp cmp, void *payload)
|
|
723
723
|
{
|
|
724
|
-
#if defined(
|
|
724
|
+
#if defined(GIT_QSORT_R_BSD)
|
|
725
725
|
git__qsort_r_glue glue = { cmp, payload };
|
|
726
726
|
qsort_r(els, nel, elsize, &glue, git__qsort_r_glue_cmp);
|
|
727
|
-
#elif defined(
|
|
727
|
+
#elif defined(GIT_QSORT_R_GNU)
|
|
728
728
|
qsort_r(els, nel, elsize, cmp, payload);
|
|
729
|
-
#elif defined(
|
|
729
|
+
#elif defined(GIT_QSORT_S)
|
|
730
730
|
git__qsort_r_glue glue = { cmp, payload };
|
|
731
731
|
qsort_s(els, nel, elsize, git__qsort_r_glue_cmp, &glue);
|
|
732
732
|
#else
|
|
@@ -735,13 +735,13 @@ void git__qsort_r(
|
|
|
735
735
|
}
|
|
736
736
|
|
|
737
737
|
#ifdef GIT_WIN32
|
|
738
|
-
int git__getenv(
|
|
738
|
+
int git__getenv(git_str *out, const char *name)
|
|
739
739
|
{
|
|
740
740
|
wchar_t *wide_name = NULL, *wide_value = NULL;
|
|
741
741
|
DWORD value_len;
|
|
742
742
|
int error = -1;
|
|
743
743
|
|
|
744
|
-
|
|
744
|
+
git_str_clear(out);
|
|
745
745
|
|
|
746
746
|
if (git__utf8_to_16_alloc(&wide_name, name) < 0)
|
|
747
747
|
return -1;
|
|
@@ -754,7 +754,7 @@ int git__getenv(git_buf *out, const char *name)
|
|
|
754
754
|
}
|
|
755
755
|
|
|
756
756
|
if (value_len)
|
|
757
|
-
error =
|
|
757
|
+
error = git_str_put_w(out, wide_value, value_len);
|
|
758
758
|
else if (GetLastError() == ERROR_SUCCESS || GetLastError() == ERROR_ENVVAR_NOT_FOUND)
|
|
759
759
|
error = GIT_ENOTFOUND;
|
|
760
760
|
else
|
|
@@ -765,16 +765,16 @@ int git__getenv(git_buf *out, const char *name)
|
|
|
765
765
|
return error;
|
|
766
766
|
}
|
|
767
767
|
#else
|
|
768
|
-
int git__getenv(
|
|
768
|
+
int git__getenv(git_str *out, const char *name)
|
|
769
769
|
{
|
|
770
770
|
const char *val = getenv(name);
|
|
771
771
|
|
|
772
|
-
|
|
772
|
+
git_str_clear(out);
|
|
773
773
|
|
|
774
774
|
if (!val)
|
|
775
775
|
return GIT_ENOTFOUND;
|
|
776
776
|
|
|
777
|
-
return
|
|
777
|
+
return git_str_puts(out, val);
|
|
778
778
|
}
|
|
779
779
|
#endif
|
|
780
780
|
|
data/vendor/libgit2/src/util.h
CHANGED
|
@@ -7,15 +7,11 @@
|
|
|
7
7
|
#ifndef INCLUDE_util_h__
|
|
8
8
|
#define INCLUDE_util_h__
|
|
9
9
|
|
|
10
|
-
#include "common.h"
|
|
11
|
-
|
|
12
10
|
#ifndef GIT_WIN32
|
|
13
11
|
# include <ctype.h>
|
|
14
12
|
#endif
|
|
15
13
|
|
|
16
|
-
#include "
|
|
17
|
-
|
|
18
|
-
#include "buffer.h"
|
|
14
|
+
#include "str.h"
|
|
19
15
|
#include "common.h"
|
|
20
16
|
#include "strnlen.h"
|
|
21
17
|
#include "thread.h"
|
|
@@ -41,8 +37,6 @@
|
|
|
41
37
|
# define GIT_CONTAINER_OF(ptr, type, member) (type *)(ptr)
|
|
42
38
|
#endif
|
|
43
39
|
|
|
44
|
-
#define GIT_DATE_RFC2822_SZ 32
|
|
45
|
-
|
|
46
40
|
/**
|
|
47
41
|
* Return the length of a constant string.
|
|
48
42
|
* We are aware that `strlen` performs the same task and is usually
|
|
@@ -298,26 +292,6 @@ GIT_INLINE(bool) git__isxdigit(int c)
|
|
|
298
292
|
*/
|
|
299
293
|
extern int git__parse_bool(int *out, const char *value);
|
|
300
294
|
|
|
301
|
-
/*
|
|
302
|
-
* Parse a string into a value as a git_time_t.
|
|
303
|
-
*
|
|
304
|
-
* Sample valid input:
|
|
305
|
-
* - "yesterday"
|
|
306
|
-
* - "July 17, 2003"
|
|
307
|
-
* - "2003-7-17 08:23"
|
|
308
|
-
*/
|
|
309
|
-
extern int git__date_parse(git_time_t *out, const char *date);
|
|
310
|
-
|
|
311
|
-
/*
|
|
312
|
-
* Format a git_time as a RFC2822 string
|
|
313
|
-
*
|
|
314
|
-
* @param out buffer to store formatted date; a '\\0' terminator will automatically be added.
|
|
315
|
-
* @param len size of the buffer; should be atleast `GIT_DATE_RFC2822_SZ` in size;
|
|
316
|
-
* @param date the date to be formatted
|
|
317
|
-
* @return 0 if successful; -1 on error
|
|
318
|
-
*/
|
|
319
|
-
extern int git__date_rfc2822_fmt(char *out, size_t len, const git_time *date);
|
|
320
|
-
|
|
321
295
|
/*
|
|
322
296
|
* Unescapes a string in-place.
|
|
323
297
|
*
|
|
@@ -402,7 +376,7 @@ GIT_INLINE(double) git__timer(void)
|
|
|
402
376
|
|
|
403
377
|
#endif
|
|
404
378
|
|
|
405
|
-
extern int git__getenv(
|
|
379
|
+
extern int git__getenv(git_str *out, const char *name);
|
|
406
380
|
|
|
407
381
|
extern int git__online_cpus(void);
|
|
408
382
|
|
data/vendor/libgit2/src/vector.h
CHANGED
|
@@ -9,32 +9,22 @@
|
|
|
9
9
|
|
|
10
10
|
#include "path_w32.h"
|
|
11
11
|
#include "utf-conv.h"
|
|
12
|
-
#include "
|
|
12
|
+
#include "fs_path.h"
|
|
13
13
|
|
|
14
|
-
#define
|
|
14
|
+
#define REG_GITFORWINDOWS_KEY L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Git_is1"
|
|
15
|
+
#define REG_GITFORWINDOWS_KEY_WOW64 L"SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Git_is1"
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
#define REG_MSYSGIT_INSTALL REG_MSYSGIT_INSTALL_LOCAL
|
|
18
|
-
#else
|
|
19
|
-
#define REG_MSYSGIT_INSTALL L"SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Git_is1"
|
|
20
|
-
#endif
|
|
21
|
-
|
|
22
|
-
typedef struct {
|
|
23
|
-
git_win32_path path;
|
|
24
|
-
DWORD len;
|
|
25
|
-
} _findfile_path;
|
|
26
|
-
|
|
27
|
-
static int git_win32__expand_path(_findfile_path *dest, const wchar_t *src)
|
|
17
|
+
static int git_win32__expand_path(git_win32_path dest, const wchar_t *src)
|
|
28
18
|
{
|
|
29
|
-
|
|
19
|
+
DWORD len = ExpandEnvironmentStringsW(src, dest, GIT_WIN_PATH_UTF16);
|
|
30
20
|
|
|
31
|
-
if (!
|
|
21
|
+
if (!len || len > GIT_WIN_PATH_UTF16)
|
|
32
22
|
return -1;
|
|
33
23
|
|
|
34
24
|
return 0;
|
|
35
25
|
}
|
|
36
26
|
|
|
37
|
-
static int win32_path_to_8(
|
|
27
|
+
static int win32_path_to_8(git_str *dest, const wchar_t *src)
|
|
38
28
|
{
|
|
39
29
|
git_win32_utf8_path utf8_path;
|
|
40
30
|
|
|
@@ -44,155 +34,221 @@ static int win32_path_to_8(git_buf *dest, const wchar_t *src)
|
|
|
44
34
|
}
|
|
45
35
|
|
|
46
36
|
/* Convert backslashes to forward slashes */
|
|
47
|
-
|
|
37
|
+
git_fs_path_mkposix(utf8_path);
|
|
48
38
|
|
|
49
|
-
return
|
|
39
|
+
return git_str_sets(dest, utf8_path);
|
|
50
40
|
}
|
|
51
41
|
|
|
52
|
-
static
|
|
53
|
-
|
|
54
|
-
wchar_t term, *base = path;
|
|
55
|
-
|
|
56
|
-
GIT_ASSERT_ARG_WITH_RETVAL(path, NULL);
|
|
57
|
-
GIT_ASSERT_ARG_WITH_RETVAL(buf, NULL);
|
|
58
|
-
GIT_ASSERT_ARG_WITH_RETVAL(buflen, NULL);
|
|
59
|
-
|
|
60
|
-
term = (*path == L'"') ? *path++ : L';';
|
|
42
|
+
static git_win32_path mock_registry;
|
|
43
|
+
static bool mock_registry_set;
|
|
61
44
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
45
|
+
extern int git_win32__set_registry_system_dir(const wchar_t *mock_sysdir)
|
|
46
|
+
{
|
|
47
|
+
if (!mock_sysdir) {
|
|
48
|
+
mock_registry[0] = L'\0';
|
|
49
|
+
mock_registry_set = false;
|
|
50
|
+
} else {
|
|
51
|
+
size_t len = wcslen(mock_sysdir);
|
|
52
|
+
|
|
53
|
+
if (len > GIT_WIN_PATH_MAX) {
|
|
54
|
+
git_error_set(GIT_ERROR_INVALID, "mock path too long");
|
|
55
|
+
return -1;
|
|
56
|
+
}
|
|
66
57
|
|
|
67
|
-
|
|
68
|
-
|
|
58
|
+
wcscpy(mock_registry, mock_sysdir);
|
|
59
|
+
mock_registry_set = true;
|
|
60
|
+
}
|
|
69
61
|
|
|
70
|
-
return
|
|
62
|
+
return 0;
|
|
71
63
|
}
|
|
72
64
|
|
|
73
|
-
static int
|
|
65
|
+
static int lookup_registry_key(
|
|
66
|
+
git_win32_path out,
|
|
67
|
+
const HKEY hive,
|
|
68
|
+
const wchar_t* key,
|
|
69
|
+
const wchar_t *value)
|
|
74
70
|
{
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
71
|
+
HKEY hkey;
|
|
72
|
+
DWORD type, size;
|
|
73
|
+
int error = GIT_ENOTFOUND;
|
|
78
74
|
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
/*
|
|
76
|
+
* Registry data may not be NUL terminated, provide room to do
|
|
77
|
+
* it ourselves.
|
|
78
|
+
*/
|
|
79
|
+
size = (DWORD)((sizeof(git_win32_path) - 1) * sizeof(wchar_t));
|
|
80
|
+
|
|
81
|
+
if (RegOpenKeyExW(hive, key, 0, KEY_READ, &hkey) != 0)
|
|
82
|
+
return GIT_ENOTFOUND;
|
|
83
|
+
|
|
84
|
+
if (RegQueryValueExW(hkey, value, NULL, &type, (LPBYTE)out, &size) == 0 &&
|
|
85
|
+
type == REG_SZ &&
|
|
86
|
+
size > 0 &&
|
|
87
|
+
size < sizeof(git_win32_path)) {
|
|
88
|
+
size_t wsize = size / sizeof(wchar_t);
|
|
89
|
+
size_t len = wsize - 1;
|
|
90
|
+
|
|
91
|
+
if (out[wsize - 1] != L'\0') {
|
|
92
|
+
len = wsize;
|
|
93
|
+
out[wsize] = L'\0';
|
|
94
|
+
}
|
|
81
95
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
lastch = root.path[root.len - 1];
|
|
96
|
+
if (out[len - 1] == L'\\')
|
|
97
|
+
out[len - 1] = L'\0';
|
|
85
98
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
root.path[root.len] = L'\0';
|
|
90
|
-
}
|
|
99
|
+
if (_waccess(out, F_OK) == 0)
|
|
100
|
+
error = 0;
|
|
101
|
+
}
|
|
91
102
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
103
|
+
RegCloseKey(hkey);
|
|
104
|
+
return error;
|
|
105
|
+
}
|
|
95
106
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
107
|
+
static int find_sysdir_in_registry(git_win32_path out)
|
|
108
|
+
{
|
|
109
|
+
if (mock_registry_set) {
|
|
110
|
+
if (mock_registry[0] == L'\0')
|
|
111
|
+
return GIT_ENOTFOUND;
|
|
99
112
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
113
|
+
wcscpy(out, mock_registry);
|
|
114
|
+
return 0;
|
|
103
115
|
}
|
|
104
116
|
|
|
105
|
-
|
|
117
|
+
if (lookup_registry_key(out, HKEY_CURRENT_USER, REG_GITFORWINDOWS_KEY, L"InstallLocation") == 0 ||
|
|
118
|
+
lookup_registry_key(out, HKEY_CURRENT_USER, REG_GITFORWINDOWS_KEY_WOW64, L"InstallLocation") == 0 ||
|
|
119
|
+
lookup_registry_key(out, HKEY_LOCAL_MACHINE, REG_GITFORWINDOWS_KEY, L"InstallLocation") == 0 ||
|
|
120
|
+
lookup_registry_key(out, HKEY_LOCAL_MACHINE, REG_GITFORWINDOWS_KEY_WOW64, L"InstallLocation") == 0)
|
|
121
|
+
return 0;
|
|
122
|
+
|
|
123
|
+
return GIT_ENOTFOUND;
|
|
106
124
|
}
|
|
107
125
|
|
|
108
|
-
static int
|
|
109
|
-
git_buf *buf, const HKEY hive, const wchar_t *key, const wchar_t *subdir)
|
|
126
|
+
static int find_sysdir_in_path(git_win32_path out)
|
|
110
127
|
{
|
|
111
|
-
|
|
112
|
-
int error = GIT_ENOTFOUND;
|
|
128
|
+
size_t out_len;
|
|
113
129
|
|
|
114
|
-
|
|
130
|
+
if (git_win32_path_find_executable(out, L"git.exe") < 0 &&
|
|
131
|
+
git_win32_path_find_executable(out, L"git.cmd") < 0)
|
|
132
|
+
return GIT_ENOTFOUND;
|
|
115
133
|
|
|
116
|
-
|
|
117
|
-
DWORD dwType, cbData;
|
|
118
|
-
git_win32_path path;
|
|
134
|
+
out_len = wcslen(out);
|
|
119
135
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
136
|
+
/* Trim the file name */
|
|
137
|
+
if (out_len <= CONST_STRLEN(L"git.exe"))
|
|
138
|
+
return GIT_ENOTFOUND;
|
|
123
139
|
|
|
124
|
-
|
|
125
|
-
if (!RegQueryValueExW(hKey, L"InstallLocation", NULL, &dwType, (LPBYTE)path, &cbData) &&
|
|
126
|
-
dwType == REG_SZ) {
|
|
140
|
+
out_len -= CONST_STRLEN(L"git.exe");
|
|
127
141
|
|
|
128
|
-
|
|
129
|
-
|
|
142
|
+
if (out_len && out[out_len - 1] == L'\\')
|
|
143
|
+
out_len--;
|
|
130
144
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
145
|
+
/*
|
|
146
|
+
* Git for Windows usually places the command in a 'bin' or
|
|
147
|
+
* 'cmd' directory, trim that.
|
|
148
|
+
*/
|
|
149
|
+
if (out_len >= CONST_STRLEN(L"\\bin") &&
|
|
150
|
+
wcsncmp(&out[out_len - CONST_STRLEN(L"\\bin")], L"\\bin", CONST_STRLEN(L"\\bin")) == 0)
|
|
151
|
+
out_len -= CONST_STRLEN(L"\\bin");
|
|
152
|
+
else if (out_len >= CONST_STRLEN(L"\\cmd") &&
|
|
153
|
+
wcsncmp(&out[out_len - CONST_STRLEN(L"\\cmd")], L"\\cmd", CONST_STRLEN(L"\\cmd")) == 0)
|
|
154
|
+
out_len -= CONST_STRLEN(L"\\cmd");
|
|
136
155
|
|
|
137
|
-
|
|
138
|
-
|
|
156
|
+
if (!out_len)
|
|
157
|
+
return GIT_ENOTFOUND;
|
|
139
158
|
|
|
140
|
-
|
|
159
|
+
out[out_len] = L'\0';
|
|
160
|
+
return 0;
|
|
141
161
|
}
|
|
142
162
|
|
|
143
163
|
static int win32_find_existing_dirs(
|
|
144
|
-
|
|
164
|
+
git_str* out,
|
|
165
|
+
const wchar_t* tmpl[])
|
|
145
166
|
{
|
|
146
|
-
|
|
147
|
-
|
|
167
|
+
git_win32_path path16;
|
|
168
|
+
git_str buf = GIT_STR_INIT;
|
|
148
169
|
|
|
149
|
-
|
|
170
|
+
git_str_clear(out);
|
|
150
171
|
|
|
151
172
|
for (; *tmpl != NULL; tmpl++) {
|
|
152
|
-
if (!git_win32__expand_path(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
win32_path_to_8(&buf, path16.path);
|
|
173
|
+
if (!git_win32__expand_path(path16, *tmpl) &&
|
|
174
|
+
path16[0] != L'%' &&
|
|
175
|
+
!_waccess(path16, F_OK)) {
|
|
176
|
+
win32_path_to_8(&buf, path16);
|
|
157
177
|
|
|
158
178
|
if (buf.size)
|
|
159
|
-
|
|
179
|
+
git_str_join(out, GIT_PATH_LIST_SEPARATOR, out->ptr, buf.ptr);
|
|
160
180
|
}
|
|
161
181
|
}
|
|
162
182
|
|
|
163
|
-
|
|
183
|
+
git_str_dispose(&buf);
|
|
164
184
|
|
|
165
|
-
return (
|
|
185
|
+
return (git_str_oom(out) ? -1 : 0);
|
|
166
186
|
}
|
|
167
187
|
|
|
168
|
-
int
|
|
188
|
+
static int append_subdir(git_str *out, git_str *path, const char *subdir)
|
|
169
189
|
{
|
|
170
|
-
|
|
190
|
+
static const char* architecture_roots[] = {
|
|
191
|
+
"",
|
|
192
|
+
"mingw64",
|
|
193
|
+
"mingw32",
|
|
194
|
+
NULL
|
|
195
|
+
};
|
|
196
|
+
const char **root;
|
|
197
|
+
size_t orig_path_len = path->size;
|
|
198
|
+
|
|
199
|
+
for (root = architecture_roots; *root; root++) {
|
|
200
|
+
if ((*root[0] && git_str_joinpath(path, path->ptr, *root) < 0) ||
|
|
201
|
+
git_str_joinpath(path, path->ptr, subdir) < 0)
|
|
202
|
+
return -1;
|
|
171
203
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
else
|
|
176
|
-
git_buf_clear(out);
|
|
204
|
+
if (git_fs_path_exists(path->ptr) &&
|
|
205
|
+
git_str_join(out, GIT_PATH_LIST_SEPARATOR, out->ptr, path->ptr) < 0)
|
|
206
|
+
return -1;
|
|
177
207
|
|
|
178
|
-
|
|
179
|
-
|
|
208
|
+
git_str_truncate(path, orig_path_len);
|
|
209
|
+
}
|
|
180
210
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
&buf, HKEY_CURRENT_USER, REG_MSYSGIT_INSTALL_LOCAL, subdir) && buf.size)
|
|
184
|
-
git_buf_join(out, GIT_PATH_LIST_SEPARATOR, out->ptr, buf.ptr);
|
|
211
|
+
return 0;
|
|
212
|
+
}
|
|
185
213
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
214
|
+
int git_win32__find_system_dirs(git_str *out, const char *subdir)
|
|
215
|
+
{
|
|
216
|
+
git_win32_path pathdir, regdir;
|
|
217
|
+
git_str path8 = GIT_STR_INIT;
|
|
218
|
+
bool has_pathdir, has_regdir;
|
|
219
|
+
int error;
|
|
220
|
+
|
|
221
|
+
has_pathdir = (find_sysdir_in_path(pathdir) == 0);
|
|
222
|
+
has_regdir = (find_sysdir_in_registry(regdir) == 0);
|
|
223
|
+
|
|
224
|
+
if (!has_pathdir && !has_regdir)
|
|
225
|
+
return 0;
|
|
226
|
+
|
|
227
|
+
/*
|
|
228
|
+
* Usually the git in the path is the same git in the registry,
|
|
229
|
+
* in this case there's no need to duplicate the paths.
|
|
230
|
+
*/
|
|
231
|
+
if (has_pathdir && has_regdir && wcscmp(pathdir, regdir) == 0)
|
|
232
|
+
has_regdir = false;
|
|
233
|
+
|
|
234
|
+
if (has_pathdir) {
|
|
235
|
+
if ((error = win32_path_to_8(&path8, pathdir)) < 0 ||
|
|
236
|
+
(error = append_subdir(out, &path8, subdir)) < 0)
|
|
237
|
+
goto done;
|
|
238
|
+
}
|
|
189
239
|
|
|
190
|
-
|
|
240
|
+
if (has_regdir) {
|
|
241
|
+
if ((error = win32_path_to_8(&path8, regdir)) < 0 ||
|
|
242
|
+
(error = append_subdir(out, &path8, subdir)) < 0)
|
|
243
|
+
goto done;
|
|
244
|
+
}
|
|
191
245
|
|
|
192
|
-
|
|
246
|
+
done:
|
|
247
|
+
git_str_dispose(&path8);
|
|
248
|
+
return error;
|
|
193
249
|
}
|
|
194
250
|
|
|
195
|
-
int git_win32__find_global_dirs(
|
|
251
|
+
int git_win32__find_global_dirs(git_str *out)
|
|
196
252
|
{
|
|
197
253
|
static const wchar_t *global_tmpls[4] = {
|
|
198
254
|
L"%HOME%\\",
|
|
@@ -204,7 +260,7 @@ int git_win32__find_global_dirs(git_buf *out)
|
|
|
204
260
|
return win32_find_existing_dirs(out, global_tmpls);
|
|
205
261
|
}
|
|
206
262
|
|
|
207
|
-
int git_win32__find_xdg_dirs(
|
|
263
|
+
int git_win32__find_xdg_dirs(git_str *out)
|
|
208
264
|
{
|
|
209
265
|
static const wchar_t *global_tmpls[7] = {
|
|
210
266
|
L"%XDG_CONFIG_HOME%\\git",
|
|
@@ -219,7 +275,7 @@ int git_win32__find_xdg_dirs(git_buf *out)
|
|
|
219
275
|
return win32_find_existing_dirs(out, global_tmpls);
|
|
220
276
|
}
|
|
221
277
|
|
|
222
|
-
int git_win32__find_programdata_dirs(
|
|
278
|
+
int git_win32__find_programdata_dirs(git_str *out)
|
|
223
279
|
{
|
|
224
280
|
static const wchar_t *programdata_tmpls[2] = {
|
|
225
281
|
L"%PROGRAMDATA%\\Git",
|
|
@@ -10,10 +10,13 @@
|
|
|
10
10
|
|
|
11
11
|
#include "common.h"
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
extern int
|
|
15
|
-
|
|
16
|
-
extern int
|
|
13
|
+
/** Sets the mock registry root for Git for Windows for testing. */
|
|
14
|
+
extern int git_win32__set_registry_system_dir(const wchar_t *mock_sysdir);
|
|
15
|
+
|
|
16
|
+
extern int git_win32__find_system_dirs(git_str *out, const char *subpath);
|
|
17
|
+
extern int git_win32__find_global_dirs(git_str *out);
|
|
18
|
+
extern int git_win32__find_xdg_dirs(git_str *out);
|
|
19
|
+
extern int git_win32__find_programdata_dirs(git_str *out);
|
|
17
20
|
|
|
18
21
|
#endif
|
|
19
22
|
|