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
|
@@ -36,7 +36,7 @@ static int strip_comments(char *line, int in_quotes)
|
|
|
36
36
|
char *ptr;
|
|
37
37
|
|
|
38
38
|
for (ptr = line; *ptr; ++ptr) {
|
|
39
|
-
if (ptr[0] == '"' && ptr > line && ptr[-1] != '\\')
|
|
39
|
+
if (ptr[0] == '"' && ((ptr > line && ptr[-1] != '\\') || ptr == line))
|
|
40
40
|
quote_count++;
|
|
41
41
|
|
|
42
42
|
if ((ptr[0] == ';' || ptr[0] == '#') &&
|
|
@@ -67,7 +67,7 @@ static int parse_subsection_header(git_config_parser *reader, const char *line,
|
|
|
67
67
|
int c, rpos;
|
|
68
68
|
const char *first_quote, *last_quote;
|
|
69
69
|
const char *line_start = line;
|
|
70
|
-
|
|
70
|
+
git_str buf = GIT_STR_INIT;
|
|
71
71
|
size_t quoted_len, alloc_len, base_name_len = strlen(base_name);
|
|
72
72
|
|
|
73
73
|
/* Skip any additional whitespace before our section name */
|
|
@@ -97,8 +97,8 @@ static int parse_subsection_header(git_config_parser *reader, const char *line,
|
|
|
97
97
|
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, base_name_len, quoted_len);
|
|
98
98
|
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, 2);
|
|
99
99
|
|
|
100
|
-
if (
|
|
101
|
-
|
|
100
|
+
if (git_str_grow(&buf, alloc_len) < 0 ||
|
|
101
|
+
git_str_printf(&buf, "%s.", base_name) < 0)
|
|
102
102
|
goto end_error;
|
|
103
103
|
|
|
104
104
|
rpos = 0;
|
|
@@ -132,25 +132,25 @@ static int parse_subsection_header(git_config_parser *reader, const char *line,
|
|
|
132
132
|
break;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
git_str_putc(&buf, (char)c);
|
|
136
136
|
c = line[++rpos];
|
|
137
137
|
} while (line + rpos < last_quote);
|
|
138
138
|
|
|
139
139
|
end_parse:
|
|
140
|
-
if (
|
|
140
|
+
if (git_str_oom(&buf))
|
|
141
141
|
goto end_error;
|
|
142
142
|
|
|
143
143
|
if (line[rpos] != '"' || line[rpos + 1] != ']') {
|
|
144
144
|
set_parse_error(reader, rpos, "unexpected text after closing quotes");
|
|
145
|
-
|
|
145
|
+
git_str_dispose(&buf);
|
|
146
146
|
return -1;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
*section_name =
|
|
149
|
+
*section_name = git_str_detach(&buf);
|
|
150
150
|
return (int)(&line[rpos + 2] - line_start); /* rpos is at the closing quote */
|
|
151
151
|
|
|
152
152
|
end_error:
|
|
153
|
-
|
|
153
|
+
git_str_dispose(&buf);
|
|
154
154
|
|
|
155
155
|
return -1;
|
|
156
156
|
}
|
|
@@ -227,11 +227,11 @@ fail_parse:
|
|
|
227
227
|
|
|
228
228
|
static int skip_bom(git_parse_ctx *parser)
|
|
229
229
|
{
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
int bom_offset =
|
|
230
|
+
git_str buf = GIT_STR_INIT_CONST(parser->content, parser->content_len);
|
|
231
|
+
git_str_bom_t bom;
|
|
232
|
+
int bom_offset = git_str_detect_bom(&bom, &buf);
|
|
233
233
|
|
|
234
|
-
if (bom ==
|
|
234
|
+
if (bom == GIT_STR_BOM_UTF8)
|
|
235
235
|
git_parse_advance_chars(parser, bom_offset);
|
|
236
236
|
|
|
237
237
|
/* TODO: reference implementation is pretty stupid with BoM */
|
|
@@ -325,7 +325,7 @@ done:
|
|
|
325
325
|
return 0;
|
|
326
326
|
}
|
|
327
327
|
|
|
328
|
-
static int parse_multiline_variable(git_config_parser *reader,
|
|
328
|
+
static int parse_multiline_variable(git_config_parser *reader, git_str *value, int in_quotes, size_t *line_len)
|
|
329
329
|
{
|
|
330
330
|
int quote_count;
|
|
331
331
|
bool multiline = true;
|
|
@@ -338,6 +338,10 @@ static int parse_multiline_variable(git_config_parser *reader, git_buf *value, i
|
|
|
338
338
|
git_parse_advance_line(&reader->ctx);
|
|
339
339
|
line = git__strndup(reader->ctx.line, reader->ctx.line_len);
|
|
340
340
|
GIT_ERROR_CHECK_ALLOC(line);
|
|
341
|
+
if (GIT_ADD_SIZET_OVERFLOW(line_len, *line_len, reader->ctx.line_len)) {
|
|
342
|
+
error = -1;
|
|
343
|
+
goto out;
|
|
344
|
+
}
|
|
341
345
|
|
|
342
346
|
/*
|
|
343
347
|
* We've reached the end of the file, there is no continuation.
|
|
@@ -358,7 +362,7 @@ static int parse_multiline_variable(git_config_parser *reader, git_buf *value, i
|
|
|
358
362
|
goto out;
|
|
359
363
|
|
|
360
364
|
/* Add this line to the multiline var */
|
|
361
|
-
if ((error =
|
|
365
|
+
if ((error = git_str_puts(value, proc_line)) < 0)
|
|
362
366
|
goto out;
|
|
363
367
|
|
|
364
368
|
next:
|
|
@@ -415,7 +419,7 @@ static int parse_name(
|
|
|
415
419
|
return 0;
|
|
416
420
|
}
|
|
417
421
|
|
|
418
|
-
static int parse_variable(git_config_parser *reader, char **var_name, char **var_value)
|
|
422
|
+
static int parse_variable(git_config_parser *reader, char **var_name, char **var_value, size_t *line_len)
|
|
419
423
|
{
|
|
420
424
|
const char *value_start = NULL;
|
|
421
425
|
char *line = NULL, *name = NULL, *value = NULL;
|
|
@@ -445,18 +449,18 @@ static int parse_variable(git_config_parser *reader, char **var_name, char **var
|
|
|
445
449
|
goto out;
|
|
446
450
|
|
|
447
451
|
if (multiline) {
|
|
448
|
-
|
|
449
|
-
|
|
452
|
+
git_str multi_value = GIT_STR_INIT;
|
|
453
|
+
git_str_attach(&multi_value, value, 0);
|
|
450
454
|
value = NULL;
|
|
451
455
|
|
|
452
|
-
if (parse_multiline_variable(reader, &multi_value, quote_count % 2) < 0 ||
|
|
453
|
-
|
|
456
|
+
if (parse_multiline_variable(reader, &multi_value, quote_count % 2, line_len) < 0 ||
|
|
457
|
+
git_str_oom(&multi_value)) {
|
|
454
458
|
error = -1;
|
|
455
|
-
|
|
459
|
+
git_str_dispose(&multi_value);
|
|
456
460
|
goto out;
|
|
457
461
|
}
|
|
458
462
|
|
|
459
|
-
value =
|
|
463
|
+
value = git_str_detach(&multi_value);
|
|
460
464
|
}
|
|
461
465
|
}
|
|
462
466
|
|
|
@@ -554,7 +558,7 @@ int git_config_parse(
|
|
|
554
558
|
break;
|
|
555
559
|
|
|
556
560
|
default: /* assume variable declaration */
|
|
557
|
-
if ((result = parse_variable(parser, &var_name, &var_value)) == 0 && on_variable) {
|
|
561
|
+
if ((result = parse_variable(parser, &var_name, &var_value, &line_len)) == 0 && on_variable) {
|
|
558
562
|
result = on_variable(parser, current_section, var_name, var_value, line_start, line_len, payload);
|
|
559
563
|
git__free(var_name);
|
|
560
564
|
git__free(var_value);
|
data/vendor/libgit2/src/crlf.c
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
#include "git2/index.h"
|
|
13
13
|
#include "git2/sys/filter.h"
|
|
14
14
|
|
|
15
|
+
#include "buf.h"
|
|
15
16
|
#include "futils.h"
|
|
16
17
|
#include "hash.h"
|
|
17
18
|
#include "filter.h"
|
|
@@ -25,7 +26,7 @@ typedef enum {
|
|
|
25
26
|
GIT_CRLF_TEXT_CRLF,
|
|
26
27
|
GIT_CRLF_AUTO,
|
|
27
28
|
GIT_CRLF_AUTO_INPUT,
|
|
28
|
-
GIT_CRLF_AUTO_CRLF
|
|
29
|
+
GIT_CRLF_AUTO_CRLF
|
|
29
30
|
} git_crlf_t;
|
|
30
31
|
|
|
31
32
|
struct crlf_attrs {
|
|
@@ -152,7 +153,7 @@ static git_configmap_value output_eol(struct crlf_attrs *ca)
|
|
|
152
153
|
GIT_INLINE(int) check_safecrlf(
|
|
153
154
|
struct crlf_attrs *ca,
|
|
154
155
|
const git_filter_source *src,
|
|
155
|
-
|
|
156
|
+
git_str_text_stats *stats)
|
|
156
157
|
{
|
|
157
158
|
const char *filename = git_filter_source_path(src);
|
|
158
159
|
|
|
@@ -206,19 +207,19 @@ GIT_INLINE(int) check_safecrlf(
|
|
|
206
207
|
|
|
207
208
|
static int crlf_apply_to_odb(
|
|
208
209
|
struct crlf_attrs *ca,
|
|
209
|
-
|
|
210
|
-
const
|
|
210
|
+
git_str *to,
|
|
211
|
+
const git_str *from,
|
|
211
212
|
const git_filter_source *src)
|
|
212
213
|
{
|
|
213
|
-
|
|
214
|
+
git_str_text_stats stats;
|
|
214
215
|
bool is_binary;
|
|
215
216
|
int error;
|
|
216
217
|
|
|
217
218
|
/* Binary attribute? Empty file? Nothing to do */
|
|
218
|
-
if (ca->crlf_action == GIT_CRLF_BINARY ||
|
|
219
|
+
if (ca->crlf_action == GIT_CRLF_BINARY || from->size == 0)
|
|
219
220
|
return GIT_PASSTHROUGH;
|
|
220
221
|
|
|
221
|
-
is_binary =
|
|
222
|
+
is_binary = git_str_gather_text_stats(&stats, from, false);
|
|
222
223
|
|
|
223
224
|
/* Heuristics to see if we can skip the conversion.
|
|
224
225
|
* Straight from Core Git.
|
|
@@ -246,22 +247,22 @@ static int crlf_apply_to_odb(
|
|
|
246
247
|
return GIT_PASSTHROUGH;
|
|
247
248
|
|
|
248
249
|
/* Actually drop the carriage returns */
|
|
249
|
-
return
|
|
250
|
+
return git_str_crlf_to_lf(to, from);
|
|
250
251
|
}
|
|
251
252
|
|
|
252
253
|
static int crlf_apply_to_workdir(
|
|
253
254
|
struct crlf_attrs *ca,
|
|
254
|
-
|
|
255
|
-
const
|
|
255
|
+
git_str *to,
|
|
256
|
+
const git_str *from)
|
|
256
257
|
{
|
|
257
|
-
|
|
258
|
+
git_str_text_stats stats;
|
|
258
259
|
bool is_binary;
|
|
259
260
|
|
|
260
261
|
/* Empty file? Nothing to do. */
|
|
261
|
-
if (
|
|
262
|
+
if (git_str_len(from) == 0 || output_eol(ca) != GIT_EOL_CRLF)
|
|
262
263
|
return GIT_PASSTHROUGH;
|
|
263
264
|
|
|
264
|
-
is_binary =
|
|
265
|
+
is_binary = git_str_gather_text_stats(&stats, from, false);
|
|
265
266
|
|
|
266
267
|
/* If there are no LFs, or all LFs are part of a CRLF, nothing to do */
|
|
267
268
|
if (stats.lf == 0 || stats.lf == stats.crlf)
|
|
@@ -280,7 +281,7 @@ static int crlf_apply_to_workdir(
|
|
|
280
281
|
return GIT_PASSTHROUGH;
|
|
281
282
|
}
|
|
282
283
|
|
|
283
|
-
return
|
|
284
|
+
return git_str_lf_to_crlf(to, from);
|
|
284
285
|
}
|
|
285
286
|
|
|
286
287
|
static int convert_attrs(
|
|
@@ -368,22 +369,24 @@ static int crlf_check(
|
|
|
368
369
|
static int crlf_apply(
|
|
369
370
|
git_filter *self,
|
|
370
371
|
void **payload, /* may be read and/or set */
|
|
371
|
-
|
|
372
|
-
const
|
|
372
|
+
git_str *to,
|
|
373
|
+
const git_str *from,
|
|
373
374
|
const git_filter_source *src)
|
|
374
375
|
{
|
|
376
|
+
int error = 0;
|
|
377
|
+
|
|
375
378
|
/* initialize payload in case `check` was bypassed */
|
|
376
379
|
if (!*payload) {
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
if (error < 0)
|
|
380
|
+
if ((error = crlf_check(self, payload, src, NULL)) < 0)
|
|
380
381
|
return error;
|
|
381
382
|
}
|
|
382
383
|
|
|
383
384
|
if (git_filter_source_mode(src) == GIT_FILTER_SMUDGE)
|
|
384
|
-
|
|
385
|
+
error = crlf_apply_to_workdir(*payload, to, from);
|
|
385
386
|
else
|
|
386
|
-
|
|
387
|
+
error = crlf_apply_to_odb(*payload, to, from, src);
|
|
388
|
+
|
|
389
|
+
return error;
|
|
387
390
|
}
|
|
388
391
|
|
|
389
392
|
static int crlf_stream(
|
data/vendor/libgit2/src/date.c
CHANGED
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
#endif
|
|
12
12
|
|
|
13
13
|
#include "util.h"
|
|
14
|
-
#include "cache.h"
|
|
15
14
|
#include "posix.h"
|
|
15
|
+
#include "date.h"
|
|
16
16
|
|
|
17
17
|
#include <ctype.h>
|
|
18
18
|
#include <time.h>
|
|
@@ -853,11 +853,11 @@ static git_time_t approxidate_str(const char *date,
|
|
|
853
853
|
}
|
|
854
854
|
pending_number(&tm, &number);
|
|
855
855
|
if (!touched)
|
|
856
|
-
*error_ret = 1;
|
|
856
|
+
*error_ret = -1;
|
|
857
857
|
return update_tm(&tm, &now, 0);
|
|
858
858
|
}
|
|
859
859
|
|
|
860
|
-
int
|
|
860
|
+
int git_date_parse(git_time_t *out, const char *date)
|
|
861
861
|
{
|
|
862
862
|
time_t time_sec;
|
|
863
863
|
git_time_t timestamp;
|
|
@@ -872,34 +872,27 @@ int git__date_parse(git_time_t *out, const char *date)
|
|
|
872
872
|
return -1;
|
|
873
873
|
|
|
874
874
|
*out = approxidate_str(date, time_sec, &error_ret);
|
|
875
|
-
|
|
875
|
+
return error_ret;
|
|
876
876
|
}
|
|
877
877
|
|
|
878
|
-
int
|
|
878
|
+
int git_date_rfc2822_fmt(git_str *out, git_time_t time, int offset)
|
|
879
879
|
{
|
|
880
|
-
int written;
|
|
881
|
-
struct tm gmt;
|
|
882
880
|
time_t t;
|
|
881
|
+
struct tm gmt;
|
|
883
882
|
|
|
884
883
|
GIT_ASSERT_ARG(out);
|
|
885
|
-
GIT_ASSERT_ARG(date);
|
|
886
884
|
|
|
887
|
-
t = (time_t) (
|
|
885
|
+
t = (time_t) (time + offset * 60);
|
|
888
886
|
|
|
889
|
-
if (p_gmtime_r
|
|
887
|
+
if (p_gmtime_r(&t, &gmt) == NULL)
|
|
890
888
|
return -1;
|
|
891
889
|
|
|
892
|
-
|
|
890
|
+
return git_str_printf(out, "%.3s, %u %.3s %.4u %02u:%02u:%02u %+03d%02d",
|
|
893
891
|
weekday_names[gmt.tm_wday],
|
|
894
892
|
gmt.tm_mday,
|
|
895
893
|
month_names[gmt.tm_mon],
|
|
896
894
|
gmt.tm_year + 1900,
|
|
897
895
|
gmt.tm_hour, gmt.tm_min, gmt.tm_sec,
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
if (written < 0 || (written > (int) len - 1))
|
|
901
|
-
return -1;
|
|
902
|
-
|
|
903
|
-
return 0;
|
|
896
|
+
offset / 60, offset % 60);
|
|
904
897
|
}
|
|
905
898
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef INCLUDE_date_h__
|
|
8
|
+
#define INCLUDE_date_h__
|
|
9
|
+
|
|
10
|
+
#include "util.h"
|
|
11
|
+
#include "str.h"
|
|
12
|
+
|
|
13
|
+
/*
|
|
14
|
+
* Parse a string into a value as a git_time_t.
|
|
15
|
+
*
|
|
16
|
+
* Sample valid input:
|
|
17
|
+
* - "yesterday"
|
|
18
|
+
* - "July 17, 2003"
|
|
19
|
+
* - "2003-7-17 08:23"
|
|
20
|
+
*/
|
|
21
|
+
extern int git_date_parse(git_time_t *out, const char *date);
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
* Format a git_time as a RFC2822 string
|
|
25
|
+
*
|
|
26
|
+
* @param out buffer to store formatted date
|
|
27
|
+
* @param time the time to be formatted
|
|
28
|
+
* @param offset the timezone offset
|
|
29
|
+
* @return 0 if successful; -1 on error
|
|
30
|
+
*/
|
|
31
|
+
extern int git_date_rfc2822_fmt(git_str *out, git_time_t time, int offset);
|
|
32
|
+
|
|
33
|
+
#endif
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
#include "git2/diff.h"
|
|
13
13
|
#include "git2/status.h"
|
|
14
14
|
|
|
15
|
+
#include "buf.h"
|
|
15
16
|
#include "commit.h"
|
|
16
17
|
#include "commit_list.h"
|
|
17
18
|
#include "oidmap.h"
|
|
@@ -322,7 +323,7 @@ static unsigned long finish_depth_computation(
|
|
|
322
323
|
return seen_commits;
|
|
323
324
|
}
|
|
324
325
|
|
|
325
|
-
static int display_name(
|
|
326
|
+
static int display_name(git_str *buf, git_repository *repo, struct commit_name *n)
|
|
326
327
|
{
|
|
327
328
|
if (n->prio == 2 && !n->tag) {
|
|
328
329
|
if (git_tag_lookup(&n->tag, repo, &n->sha1) < 0) {
|
|
@@ -346,9 +347,9 @@ static int display_name(git_buf *buf, git_repository *repo, struct commit_name *
|
|
|
346
347
|
}
|
|
347
348
|
|
|
348
349
|
if (n->tag)
|
|
349
|
-
|
|
350
|
+
git_str_printf(buf, "%s", git_tag_name(n->tag));
|
|
350
351
|
else
|
|
351
|
-
|
|
352
|
+
git_str_printf(buf, "%s", n->path);
|
|
352
353
|
|
|
353
354
|
return 0;
|
|
354
355
|
}
|
|
@@ -388,7 +389,7 @@ static int find_unique_abbrev_size(
|
|
|
388
389
|
}
|
|
389
390
|
|
|
390
391
|
static int show_suffix(
|
|
391
|
-
|
|
392
|
+
git_str *buf,
|
|
392
393
|
int depth,
|
|
393
394
|
git_repository *repo,
|
|
394
395
|
const git_oid *id,
|
|
@@ -403,11 +404,11 @@ static int show_suffix(
|
|
|
403
404
|
|
|
404
405
|
git_oid_fmt(hex_oid, id);
|
|
405
406
|
|
|
406
|
-
|
|
407
|
+
git_str_printf(buf, "-%d-g", depth);
|
|
407
408
|
|
|
408
|
-
|
|
409
|
+
git_str_put(buf, hex_oid, size);
|
|
409
410
|
|
|
410
|
-
return
|
|
411
|
+
return git_str_oom(buf) ? -1 : 0;
|
|
411
412
|
}
|
|
412
413
|
|
|
413
414
|
#define MAX_CANDIDATES_TAGS FLAG_BITS - 1
|
|
@@ -769,7 +770,10 @@ static int normalize_format_options(
|
|
|
769
770
|
return 0;
|
|
770
771
|
}
|
|
771
772
|
|
|
772
|
-
int
|
|
773
|
+
static int git_describe__format(
|
|
774
|
+
git_str *out,
|
|
775
|
+
const git_describe_result *result,
|
|
776
|
+
const git_describe_format_options *given)
|
|
773
777
|
{
|
|
774
778
|
int error;
|
|
775
779
|
git_repository *repo;
|
|
@@ -782,10 +786,6 @@ int git_describe_format(git_buf *out, const git_describe_result *result, const g
|
|
|
782
786
|
GIT_ERROR_CHECK_VERSION(given, GIT_DESCRIBE_FORMAT_OPTIONS_VERSION, "git_describe_format_options");
|
|
783
787
|
normalize_format_options(&opts, given);
|
|
784
788
|
|
|
785
|
-
if ((error = git_buf_sanitize(out)) < 0)
|
|
786
|
-
return error;
|
|
787
|
-
|
|
788
|
-
|
|
789
789
|
if (opts.always_use_long_format && opts.abbreviated_size == 0) {
|
|
790
790
|
git_error_set(GIT_ERROR_DESCRIBE, "cannot describe - "
|
|
791
791
|
"'always_use_long_format' is incompatible with a zero"
|
|
@@ -809,9 +809,9 @@ int git_describe_format(git_buf *out, const git_describe_result *result, const g
|
|
|
809
809
|
}
|
|
810
810
|
|
|
811
811
|
if (result->dirty && opts.dirty_suffix)
|
|
812
|
-
|
|
812
|
+
git_str_puts(out, opts.dirty_suffix);
|
|
813
813
|
|
|
814
|
-
return
|
|
814
|
+
return git_str_oom(out) ? -1 : 0;
|
|
815
815
|
}
|
|
816
816
|
|
|
817
817
|
/* If we didn't find *any* tags, we fall back to the commit's id */
|
|
@@ -824,12 +824,12 @@ int git_describe_format(git_buf *out, const git_describe_result *result, const g
|
|
|
824
824
|
return -1;
|
|
825
825
|
|
|
826
826
|
git_oid_fmt(hex_oid, &result->commit_id);
|
|
827
|
-
|
|
827
|
+
git_str_put(out, hex_oid, size);
|
|
828
828
|
|
|
829
829
|
if (result->dirty && opts.dirty_suffix)
|
|
830
|
-
|
|
830
|
+
git_str_puts(out, opts.dirty_suffix);
|
|
831
831
|
|
|
832
|
-
return
|
|
832
|
+
return git_str_oom(out) ? -1 : 0;
|
|
833
833
|
}
|
|
834
834
|
|
|
835
835
|
/* Lastly, if we found a matching tag, we show that */
|
|
@@ -845,10 +845,18 @@ int git_describe_format(git_buf *out, const git_describe_result *result, const g
|
|
|
845
845
|
}
|
|
846
846
|
|
|
847
847
|
if (result->dirty && opts.dirty_suffix) {
|
|
848
|
-
|
|
848
|
+
git_str_puts(out, opts.dirty_suffix);
|
|
849
849
|
}
|
|
850
850
|
|
|
851
|
-
return
|
|
851
|
+
return git_str_oom(out) ? -1 : 0;
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
int git_describe_format(
|
|
855
|
+
git_buf *out,
|
|
856
|
+
const git_describe_result *result,
|
|
857
|
+
const git_describe_format_options *given)
|
|
858
|
+
{
|
|
859
|
+
GIT_BUF_WRAP_PRIVATE(out, git_describe__format, result, given);
|
|
852
860
|
}
|
|
853
861
|
|
|
854
862
|
void git_describe_result_free(git_describe_result *result)
|
data/vendor/libgit2/src/diff.c
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
#include "diff.h"
|
|
9
9
|
|
|
10
10
|
#include "common.h"
|
|
11
|
+
#include "buf.h"
|
|
11
12
|
#include "patch.h"
|
|
12
13
|
#include "email.h"
|
|
13
14
|
#include "commit.h"
|
|
@@ -162,6 +163,7 @@ int git_diff_format_email(
|
|
|
162
163
|
const git_diff_format_email_options *opts)
|
|
163
164
|
{
|
|
164
165
|
git_email_create_options email_create_opts = GIT_EMAIL_CREATE_OPTIONS_INIT;
|
|
166
|
+
git_str email = GIT_STR_INIT;
|
|
165
167
|
int error;
|
|
166
168
|
|
|
167
169
|
GIT_ASSERT_ARG(out);
|
|
@@ -172,14 +174,29 @@ int git_diff_format_email(
|
|
|
172
174
|
GIT_DIFF_FORMAT_EMAIL_OPTIONS_VERSION,
|
|
173
175
|
"git_format_email_options");
|
|
174
176
|
|
|
177
|
+
/* This is a `git_buf` special case; subsequent calls append. */
|
|
178
|
+
email.ptr = out->ptr;
|
|
179
|
+
email.asize = out->reserved;
|
|
180
|
+
email.size = out->size;
|
|
181
|
+
|
|
182
|
+
out->ptr = git_str__initstr;
|
|
183
|
+
out->reserved = 0;
|
|
184
|
+
out->size = 0;
|
|
185
|
+
|
|
175
186
|
if ((opts->flags & GIT_DIFF_FORMAT_EMAIL_EXCLUDE_SUBJECT_PATCH_MARKER) != 0)
|
|
176
187
|
email_create_opts.subject_prefix = "";
|
|
177
188
|
|
|
178
|
-
|
|
179
|
-
error = git_email__append_from_diff(out, diff, opts->patch_no,
|
|
189
|
+
error = git_email__append_from_diff(&email, diff, opts->patch_no,
|
|
180
190
|
opts->total_patches, opts->id, opts->summary, opts->body,
|
|
181
191
|
opts->author, &email_create_opts);
|
|
182
192
|
|
|
193
|
+
if (error < 0)
|
|
194
|
+
goto done;
|
|
195
|
+
|
|
196
|
+
error = git_buf_fromstr(out, &email);
|
|
197
|
+
|
|
198
|
+
done:
|
|
199
|
+
git_str_dispose(&email);
|
|
183
200
|
return error;
|
|
184
201
|
}
|
|
185
202
|
|
|
@@ -269,7 +286,7 @@ static int flush_hunk(git_oid *result, git_hash_ctx *ctx)
|
|
|
269
286
|
unsigned short carry = 0;
|
|
270
287
|
int error, i;
|
|
271
288
|
|
|
272
|
-
if ((error = git_hash_final(
|
|
289
|
+
if ((error = git_hash_final(hash.id, ctx)) < 0 ||
|
|
273
290
|
(error = git_hash_init(ctx)) < 0)
|
|
274
291
|
return error;
|
|
275
292
|
|
|
@@ -282,7 +299,7 @@ static int flush_hunk(git_oid *result, git_hash_ctx *ctx)
|
|
|
282
299
|
return 0;
|
|
283
300
|
}
|
|
284
301
|
|
|
285
|
-
static void strip_spaces(
|
|
302
|
+
static void strip_spaces(git_str *buf)
|
|
286
303
|
{
|
|
287
304
|
char *src = buf->ptr, *dst = buf->ptr;
|
|
288
305
|
char c;
|
|
@@ -295,7 +312,7 @@ static void strip_spaces(git_buf *buf)
|
|
|
295
312
|
}
|
|
296
313
|
}
|
|
297
314
|
|
|
298
|
-
|
|
315
|
+
git_str_truncate(buf, len);
|
|
299
316
|
}
|
|
300
317
|
|
|
301
318
|
static int diff_patchid_print_callback_to_buf(
|
|
@@ -305,7 +322,7 @@ static int diff_patchid_print_callback_to_buf(
|
|
|
305
322
|
void *payload)
|
|
306
323
|
{
|
|
307
324
|
struct patch_id_args *args = (struct patch_id_args *) payload;
|
|
308
|
-
|
|
325
|
+
git_str buf = GIT_STR_INIT;
|
|
309
326
|
int error = 0;
|
|
310
327
|
|
|
311
328
|
if (line->origin == GIT_DIFF_LINE_CONTEXT_EOFNL ||
|
|
@@ -331,7 +348,7 @@ static int diff_patchid_print_callback_to_buf(
|
|
|
331
348
|
args->first_file = 0;
|
|
332
349
|
|
|
333
350
|
out:
|
|
334
|
-
|
|
351
|
+
git_str_dispose(&buf);
|
|
335
352
|
return error;
|
|
336
353
|
}
|
|
337
354
|
|
|
@@ -352,7 +369,7 @@ int git_diff_patchid(git_oid *out, git_diff *diff, git_diff_patchid_options *opt
|
|
|
352
369
|
|
|
353
370
|
memset(&args, 0, sizeof(args));
|
|
354
371
|
args.first_file = 1;
|
|
355
|
-
if ((error = git_hash_ctx_init(&args.ctx)) < 0)
|
|
372
|
+
if ((error = git_hash_ctx_init(&args.ctx, GIT_HASH_ALGORITHM_SHA1)) < 0)
|
|
356
373
|
goto out;
|
|
357
374
|
|
|
358
375
|
if ((error = git_diff_print(diff,
|
data/vendor/libgit2/src/diff.h
CHANGED
|
@@ -14,9 +14,7 @@
|
|
|
14
14
|
#include "git2/sys/diff.h"
|
|
15
15
|
#include "git2/oid.h"
|
|
16
16
|
|
|
17
|
-
#include <stdio.h>
|
|
18
17
|
#include "vector.h"
|
|
19
|
-
#include "buffer.h"
|
|
20
18
|
#include "iterator.h"
|
|
21
19
|
#include "repository.h"
|
|
22
20
|
#include "pool.h"
|
|
@@ -28,7 +26,7 @@
|
|
|
28
26
|
typedef enum {
|
|
29
27
|
GIT_DIFF_TYPE_UNKNOWN = 0,
|
|
30
28
|
GIT_DIFF_TYPE_GENERATED = 1,
|
|
31
|
-
GIT_DIFF_TYPE_PARSED = 2
|
|
29
|
+
GIT_DIFF_TYPE_PARSED = 2
|
|
32
30
|
} git_diff_origin_t;
|
|
33
31
|
|
|
34
32
|
struct git_diff {
|
|
@@ -53,7 +51,7 @@ struct git_diff {
|
|
|
53
51
|
};
|
|
54
52
|
|
|
55
53
|
extern int git_diff_delta__format_file_header(
|
|
56
|
-
|
|
54
|
+
git_str *out,
|
|
57
55
|
const git_diff_delta *delta,
|
|
58
56
|
const char *oldpfx,
|
|
59
57
|
const char *newpfx,
|