rugged 1.3.1 → 1.9.0
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/README.md +34 -2
- data/ext/rugged/extconf.rb +6 -3
- data/ext/rugged/rugged.c +16 -0
- data/ext/rugged/rugged.h +4 -0
- data/ext/rugged/rugged_allocator.c +0 -54
- data/ext/rugged/rugged_blame.c +2 -0
- data/ext/rugged/rugged_blob.c +3 -0
- data/ext/rugged/rugged_commit.c +1 -0
- data/ext/rugged/rugged_config.c +9 -2
- data/ext/rugged/rugged_diff.c +1 -0
- data/ext/rugged/rugged_index.c +2 -0
- data/ext/rugged/rugged_patch.c +1 -0
- data/ext/rugged/rugged_rebase.c +1 -0
- data/ext/rugged/rugged_reference.c +1 -0
- data/ext/rugged/rugged_remote.c +28 -10
- data/ext/rugged/rugged_repo.c +7 -9
- data/ext/rugged/rugged_revwalk.c +5 -1
- data/ext/rugged/rugged_settings.c +5 -0
- data/ext/rugged/rugged_submodule.c +1 -0
- data/ext/rugged/rugged_tag.c +1 -0
- data/ext/rugged/rugged_tree.c +4 -0
- data/lib/rugged/index.rb +1 -1
- data/lib/rugged/tree.rb +5 -1
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +141 -289
- data/vendor/libgit2/COPYING +301 -20
- data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
- data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
- data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
- data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
- 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 +17 -17
- data/vendor/libgit2/cmake/FindIntlIconv.cmake +51 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
- data/vendor/libgit2/cmake/FindPCRE.cmake +12 -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 +34 -0
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +129 -101
- data/vendor/libgit2/cmake/SelectHashes.cmake +113 -54
- data/vendor/libgit2/cmake/SelectRegex.cmake +56 -0
- data/vendor/libgit2/cmake/SelectSSH.cmake +46 -0
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +38 -0
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
- data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
- data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
- data/vendor/libgit2/deps/llhttp/api.c +510 -0
- data/vendor/libgit2/deps/llhttp/http.c +170 -0
- data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
- data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
- data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +7 -5
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +25 -25
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
- data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +89 -88
- 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/winhttp/CMakeLists.txt +14 -16
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/deps/xdiff/git-xdiff.h +56 -0
- data/vendor/libgit2/{src → deps}/xdiff/xdiff.h +15 -15
- data/vendor/libgit2/{src → deps}/xdiff/xdiffi.c +152 -125
- data/vendor/libgit2/{src → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src → deps}/xdiff/xemit.c +26 -10
- data/vendor/libgit2/{src → deps}/xdiff/xhistogram.c +92 -94
- data/vendor/libgit2/{src → deps}/xdiff/xinclude.h +1 -12
- data/vendor/libgit2/{src → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src → deps}/xdiff/xmerge.c +126 -137
- data/vendor/libgit2/{src → deps}/xdiff/xpatience.c +26 -46
- data/vendor/libgit2/{src → deps}/xdiff/xprepare.c +24 -46
- data/vendor/libgit2/{src → deps}/xdiff/xutils.c +36 -8
- data/vendor/libgit2/{src → deps}/xdiff/xutils.h +2 -1
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
- data/vendor/libgit2/deps/zlib/LICENSE +22 -0
- data/vendor/libgit2/deps/zlib/adler32.c +7 -22
- data/vendor/libgit2/deps/zlib/crc32.c +931 -317
- data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
- data/vendor/libgit2/deps/zlib/deflate.c +428 -453
- data/vendor/libgit2/deps/zlib/deflate.h +51 -23
- data/vendor/libgit2/deps/zlib/gzguts.h +15 -19
- data/vendor/libgit2/deps/zlib/infback.c +19 -31
- data/vendor/libgit2/deps/zlib/inffast.c +15 -18
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +75 -110
- data/vendor/libgit2/deps/zlib/inflate.h +3 -2
- data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
- data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
- data/vendor/libgit2/deps/zlib/trees.c +294 -380
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +310 -284
- data/vendor/libgit2/deps/zlib/zutil.c +20 -46
- data/vendor/libgit2/deps/zlib/zutil.h +24 -41
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +43 -8
- data/vendor/libgit2/include/git2/attr.h +28 -6
- data/vendor/libgit2/include/git2/blame.h +137 -29
- data/vendor/libgit2/include/git2/blob.h +85 -29
- data/vendor/libgit2/include/git2/branch.h +25 -16
- data/vendor/libgit2/include/git2/buffer.h +24 -82
- data/vendor/libgit2/include/git2/cert.h +4 -3
- data/vendor/libgit2/include/git2/checkout.h +88 -34
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +28 -12
- data/vendor/libgit2/include/git2/commit.h +134 -3
- data/vendor/libgit2/include/git2/common.h +172 -59
- data/vendor/libgit2/include/git2/config.h +118 -32
- data/vendor/libgit2/include/git2/credential.h +32 -3
- data/vendor/libgit2/include/git2/credential_helpers.h +2 -0
- data/vendor/libgit2/include/git2/deprecated.h +141 -3
- data/vendor/libgit2/include/git2/describe.h +20 -3
- data/vendor/libgit2/include/git2/diff.h +95 -19
- data/vendor/libgit2/include/git2/email.h +10 -30
- data/vendor/libgit2/include/git2/errors.h +51 -61
- data/vendor/libgit2/include/git2/experimental.h +20 -0
- data/vendor/libgit2/include/git2/filter.h +21 -9
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +4 -2
- data/vendor/libgit2/include/git2/ignore.h +11 -1
- data/vendor/libgit2/include/git2/index.h +111 -11
- data/vendor/libgit2/include/git2/indexer.h +67 -2
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +70 -5
- data/vendor/libgit2/include/git2/message.h +4 -2
- data/vendor/libgit2/include/git2/net.h +3 -1
- data/vendor/libgit2/include/git2/notes.h +9 -6
- data/vendor/libgit2/include/git2/object.h +57 -7
- data/vendor/libgit2/include/git2/odb.h +156 -33
- data/vendor/libgit2/include/git2/odb_backend.h +132 -16
- data/vendor/libgit2/include/git2/oid.h +116 -17
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +37 -9
- data/vendor/libgit2/include/git2/patch.h +10 -3
- data/vendor/libgit2/include/git2/pathspec.h +10 -1
- data/vendor/libgit2/include/git2/proxy.h +11 -1
- data/vendor/libgit2/include/git2/rebase.h +18 -7
- data/vendor/libgit2/include/git2/refdb.h +5 -2
- data/vendor/libgit2/include/git2/reflog.h +4 -3
- data/vendor/libgit2/include/git2/refs.h +11 -8
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +295 -54
- data/vendor/libgit2/include/git2/repository.h +95 -25
- data/vendor/libgit2/include/git2/reset.h +18 -5
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +4 -4
- data/vendor/libgit2/include/git2/revwalk.h +7 -3
- data/vendor/libgit2/include/git2/signature.h +47 -2
- data/vendor/libgit2/include/git2/stash.h +78 -10
- data/vendor/libgit2/include/git2/status.h +24 -11
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -16
- data/vendor/libgit2/include/git2/submodule.h +27 -11
- data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +110 -59
- data/vendor/libgit2/include/git2/sys/config.h +80 -4
- data/vendor/libgit2/include/git2/sys/credential.h +4 -3
- data/vendor/libgit2/include/git2/sys/diff.h +21 -1
- data/vendor/libgit2/include/git2/sys/email.h +7 -0
- data/vendor/libgit2/include/git2/sys/errors.h +76 -0
- data/vendor/libgit2/include/git2/sys/filter.h +66 -3
- data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
- data/vendor/libgit2/include/git2/sys/index.h +3 -2
- data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
- data/vendor/libgit2/include/git2/sys/merge.h +55 -7
- data/vendor/libgit2/include/git2/sys/midx.h +47 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +10 -9
- data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
- data/vendor/libgit2/include/git2/sys/path.h +12 -1
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
- data/vendor/libgit2/include/git2/sys/refs.h +3 -2
- data/vendor/libgit2/include/git2/sys/remote.h +53 -0
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +26 -3
- data/vendor/libgit2/include/git2/sys/transport.h +87 -41
- data/vendor/libgit2/include/git2/tag.h +4 -1
- data/vendor/libgit2/include/git2/trace.h +9 -3
- data/vendor/libgit2/include/git2/transaction.h +3 -2
- data/vendor/libgit2/include/git2/transport.h +11 -3
- data/vendor/libgit2/include/git2/tree.h +20 -8
- data/vendor/libgit2/include/git2/types.h +26 -10
- data/vendor/libgit2/include/git2/version.h +63 -6
- data/vendor/libgit2/include/git2/worktree.h +30 -8
- data/vendor/libgit2/include/git2.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +203 -420
- data/vendor/libgit2/src/README.md +12 -0
- data/vendor/libgit2/src/cli/CMakeLists.txt +56 -0
- data/vendor/libgit2/src/cli/README.md +26 -0
- data/vendor/libgit2/src/{branch.h → cli/cmd.c} +10 -8
- data/vendor/libgit2/src/cli/cmd.h +37 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +202 -0
- data/vendor/libgit2/src/cli/cmd_clone.c +190 -0
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +152 -0
- data/vendor/libgit2/src/cli/cmd_help.c +85 -0
- data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
- data/vendor/libgit2/src/cli/cmd_init.c +102 -0
- data/vendor/libgit2/src/cli/common.c +168 -0
- data/vendor/libgit2/src/cli/common.h +63 -0
- data/vendor/libgit2/src/cli/error.h +51 -0
- data/vendor/libgit2/src/cli/main.c +134 -0
- data/vendor/libgit2/src/cli/opt.c +695 -0
- data/vendor/libgit2/src/cli/opt.h +367 -0
- data/vendor/libgit2/src/cli/opt_usage.c +263 -0
- data/vendor/libgit2/src/cli/opt_usage.h +40 -0
- data/vendor/libgit2/src/cli/progress.c +395 -0
- data/vendor/libgit2/src/cli/progress.h +129 -0
- data/vendor/libgit2/src/cli/sighandler.h +20 -0
- data/vendor/libgit2/src/cli/unix/sighandler.c +37 -0
- data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
- data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +140 -0
- data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +2 -2
- data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
- data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +32 -34
- data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
- data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +48 -31
- data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +25 -20
- data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +6 -4
- data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +87 -46
- data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +5 -9
- data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +152 -57
- data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +1 -0
- data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -2
- data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
- data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
- data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
- data/vendor/libgit2/src/libgit2/branch.h +31 -0
- data/vendor/libgit2/src/libgit2/buf.c +126 -0
- data/vendor/libgit2/src/libgit2/buf.h +50 -0
- data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +22 -17
- data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +7 -9
- data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +107 -91
- data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -2
- data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +14 -15
- data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +254 -203
- data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +4 -1
- data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +296 -77
- data/vendor/libgit2/src/libgit2/commit.h +87 -0
- data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +246 -135
- data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +33 -8
- data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +17 -7
- data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +1 -0
- data/vendor/libgit2/src/libgit2/common.h +55 -0
- data/vendor/libgit2/src/{config.c → libgit2/config.c} +490 -360
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/{config.h → libgit2/config.h} +24 -6
- data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +8 -10
- data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +4 -5
- data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +212 -183
- data/vendor/libgit2/src/libgit2/config_list.c +285 -0
- data/vendor/libgit2/src/libgit2/config_list.h +32 -0
- data/vendor/libgit2/src/libgit2/config_mem.c +374 -0
- data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +37 -32
- data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +24 -31
- data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
- data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +62 -51
- data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +44 -14
- data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +8 -10
- data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +46 -55
- data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +5 -5
- data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +45 -27
- data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +70 -20
- data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
- data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +22 -6
- data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +192 -105
- data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
- data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
- data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +49 -16
- data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
- data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +1 -1
- data/vendor/libgit2/src/{email.c → libgit2/email.c} +58 -40
- data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
- data/vendor/libgit2/src/{transports/ssh.h → libgit2/experimental.h.in} +3 -4
- data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +105 -30
- data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -3
- data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +30 -28
- data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +132 -58
- data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
- data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +3 -3
- data/vendor/libgit2/src/libgit2/grafts.c +270 -0
- data/vendor/libgit2/src/libgit2/grafts.h +35 -0
- data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
- data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +44 -39
- data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
- data/vendor/libgit2/src/{index.c → libgit2/index.c} +460 -276
- data/vendor/libgit2/src/{index.h → libgit2/index.h} +21 -5
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +208 -124
- data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +102 -71
- data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +8 -5
- data/vendor/libgit2/src/libgit2/libgit2.c +268 -0
- data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +39 -37
- data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +83 -73
- data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
- data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +4 -4
- data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -5
- data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
- data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +174 -112
- data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +17 -6
- data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +53 -57
- data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +9 -2
- data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +29 -37
- data/vendor/libgit2/src/{object.c → libgit2/object.c} +166 -35
- data/vendor/libgit2/src/{object.h → libgit2/object.h} +17 -2
- data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +261 -88
- data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
- data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
- data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +67 -22
- data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +162 -89
- data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +171 -92
- data/vendor/libgit2/src/libgit2/oid.h +284 -0
- data/vendor/libgit2/src/libgit2/oidarray.c +89 -0
- data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +5 -1
- data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +126 -66
- data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +28 -12
- data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +146 -111
- data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +45 -25
- data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +8 -4
- data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +1 -1
- data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
- data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +8 -1
- data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +51 -16
- data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
- data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +42 -34
- data/vendor/libgit2/src/libgit2/path.c +375 -0
- data/vendor/libgit2/src/libgit2/path.h +68 -0
- data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +7 -7
- data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
- data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
- data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
- data/vendor/libgit2/src/{push.c → libgit2/push.c} +116 -60
- data/vendor/libgit2/src/{push.h → libgit2/push.h} +5 -16
- data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
- data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
- data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +147 -147
- data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +639 -254
- data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +8 -7
- data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +3 -2
- data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +67 -39
- data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +8 -3
- data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +60 -38
- data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +13 -2
- data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +821 -454
- data/vendor/libgit2/src/libgit2/remote.h +101 -0
- data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +1377 -594
- data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +43 -12
- data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
- data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +18 -22
- data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +76 -44
- data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +48 -19
- data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +3 -3
- data/vendor/libgit2/src/{libgit2.c → libgit2/settings.c} +162 -95
- data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +6 -2
- data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +144 -21
- data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -2
- data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +243 -68
- data/vendor/libgit2/src/{status.c → libgit2/status.c} +5 -2
- data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
- data/vendor/libgit2/src/libgit2/strarray.h +25 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +62 -67
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +41 -24
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +2 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +11 -3
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +6 -3
- 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 +428 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +3 -1
- data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +79 -19
- data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +5 -0
- data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +279 -220
- data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +10 -11
- data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
- data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +55 -18
- data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +74 -43
- data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
- data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
- data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
- data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +7 -7
- data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +27 -21
- data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +4 -1
- data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +14 -11
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +3 -5
- data/vendor/libgit2/src/{transports/auth_negotiate.c → libgit2/transports/auth_gssapi.c} +44 -45
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +1 -2
- data/vendor/libgit2/src/{transports/auth_ntlm.c → libgit2/transports/auth_ntlmclient.c} +22 -22
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +1 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +16 -19
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +49 -24
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +0 -11
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +188 -134
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +159 -127
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +142 -165
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +56 -36
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +307 -74
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +297 -97
- data/vendor/libgit2/src/libgit2/transports/ssh.c +85 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
- data/vendor/libgit2/src/{transports/ssh.c → libgit2/transports/ssh_libssh2.c} +414 -268
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +101 -75
- data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +30 -20
- data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +7 -5
- data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +128 -110
- data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +7 -6
- data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +160 -121
- data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
- data/vendor/libgit2/src/util/CMakeLists.txt +77 -0
- data/vendor/libgit2/src/{alloc.c → util/alloc.c} +69 -7
- data/vendor/libgit2/src/util/alloc.h +65 -0
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/util/allocators/debugalloc.h +17 -0
- data/vendor/libgit2/src/util/allocators/failalloc.c +32 -0
- data/vendor/libgit2/src/util/allocators/failalloc.h +17 -0
- data/vendor/libgit2/src/util/allocators/stdalloc.c +37 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +50 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{array.h → util/array.h} +25 -19
- data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
- data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +5 -1
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/{date.c → util/date.c} +35 -33
- data/vendor/libgit2/src/util/date.h +45 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{errors.h → util/errors.h} +22 -19
- data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +35 -30
- data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +21 -8
- data/vendor/libgit2/src/{path.c → util/fs_path.c} +591 -615
- data/vendor/libgit2/src/{path.h → util/fs_path.h} +257 -181
- data/vendor/libgit2/src/{futils.c → util/futils.c} +144 -95
- data/vendor/libgit2/src/{futils.h → util/futils.h} +40 -18
- data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +33 -2
- data/vendor/libgit2/src/{common.h → util/git2_util.h} +26 -59
- data/vendor/libgit2/src/util/hash/builtin.c +53 -0
- data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +3 -3
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
- data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
- data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
- data/vendor/libgit2/src/util/hash/openssl.c +347 -0
- data/vendor/libgit2/src/util/hash/openssl.h +61 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
- data/vendor/libgit2/src/util/hash/sha.h +73 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
- data/vendor/libgit2/src/util/hash/win32.c +549 -0
- data/vendor/libgit2/src/util/hash/win32.h +60 -0
- data/vendor/libgit2/src/util/hash.c +158 -0
- data/vendor/libgit2/src/util/hash.h +61 -0
- data/vendor/libgit2/src/util/hashmap.h +424 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/{integer.h → util/integer.h} +3 -1
- data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
- data/vendor/libgit2/src/util/net.c +1160 -0
- data/vendor/libgit2/src/{net.h → util/net.h} +45 -4
- data/vendor/libgit2/src/{pool.c → util/pool.c} +1 -1
- data/vendor/libgit2/src/{pool.h → util/pool.h} +6 -1
- data/vendor/libgit2/src/{posix.c → util/posix.c} +57 -3
- data/vendor/libgit2/src/{posix.h → util/posix.h} +26 -1
- data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +3 -3
- data/vendor/libgit2/src/util/process.h +222 -0
- data/vendor/libgit2/src/util/rand.c +230 -0
- data/vendor/libgit2/src/util/rand.h +37 -0
- data/vendor/libgit2/src/{regexp.c → util/regexp.c} +5 -5
- data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
- data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
- data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
- data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +15 -14
- data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +5 -5
- data/vendor/libgit2/src/util/staticstr.h +66 -0
- data/vendor/libgit2/src/{buffer.c → util/str.c} +159 -153
- data/vendor/libgit2/src/util/str.h +357 -0
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
- data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
- data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
- data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
- data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -6
- data/vendor/libgit2/src/util/unix/process.c +629 -0
- data/vendor/libgit2/src/{unix → util/unix}/realpath.c +24 -8
- data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
- data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
- data/vendor/libgit2/src/{util.c → util/util.c} +24 -19
- data/vendor/libgit2/src/{util.h → util/util.h} +30 -81
- data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
- data/vendor/libgit2/src/{vector.c → util/vector.c} +3 -3
- data/vendor/libgit2/src/{vector.h → util/vector.h} +4 -4
- data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/error.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +148 -17
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
- data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
- data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +42 -35
- data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
- data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
- data/vendor/libgit2/src/util/win32/utf-conv.c +144 -0
- data/vendor/libgit2/src/util/win32/utf-conv.h +127 -0
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
- data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
- data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
- metadata +431 -362
- data/vendor/libgit2/cmake/FindIconv.cmake +0 -45
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
- data/vendor/libgit2/deps/http-parser/COPYING +0 -23
- data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
- data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
- data/vendor/libgit2/deps/zlib/COPYING +0 -27
- data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
- data/vendor/libgit2/src/alloc.h +0 -40
- data/vendor/libgit2/src/allocators/failalloc.c +0 -92
- data/vendor/libgit2/src/allocators/failalloc.h +0 -23
- data/vendor/libgit2/src/allocators/stdalloc.c +0 -150
- data/vendor/libgit2/src/allocators/win32_leakcheck.c +0 -118
- data/vendor/libgit2/src/buffer.h +0 -374
- data/vendor/libgit2/src/commit.h +0 -46
- data/vendor/libgit2/src/config_entries.c +0 -237
- data/vendor/libgit2/src/config_entries.h +0 -24
- data/vendor/libgit2/src/config_mem.c +0 -220
- data/vendor/libgit2/src/errors.c +0 -238
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
- data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
- data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
- data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
- data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
- data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
- data/vendor/libgit2/src/hash/sha1.h +0 -38
- data/vendor/libgit2/src/hash.c +0 -110
- data/vendor/libgit2/src/hash.h +0 -46
- data/vendor/libgit2/src/idxmap.c +0 -157
- data/vendor/libgit2/src/idxmap.h +0 -177
- data/vendor/libgit2/src/khash.h +0 -615
- data/vendor/libgit2/src/libgit2.h +0 -15
- data/vendor/libgit2/src/message.h +0 -17
- data/vendor/libgit2/src/net.c +0 -540
- data/vendor/libgit2/src/netops.c +0 -125
- data/vendor/libgit2/src/netops.h +0 -68
- data/vendor/libgit2/src/offmap.c +0 -101
- data/vendor/libgit2/src/offmap.h +0 -133
- data/vendor/libgit2/src/oid.h +0 -51
- data/vendor/libgit2/src/oidarray.c +0 -43
- data/vendor/libgit2/src/oidmap.c +0 -107
- data/vendor/libgit2/src/oidmap.h +0 -128
- data/vendor/libgit2/src/remote.h +0 -55
- data/vendor/libgit2/src/streams/socket.c +0 -239
- data/vendor/libgit2/src/strmap.c +0 -100
- data/vendor/libgit2/src/strmap.h +0 -131
- data/vendor/libgit2/src/sysdir.c +0 -347
- data/vendor/libgit2/src/threadstate.c +0 -84
- data/vendor/libgit2/src/threadstate.h +0 -24
- data/vendor/libgit2/src/win32/findfile.c +0 -230
- data/vendor/libgit2/src/win32/findfile.h +0 -19
- data/vendor/libgit2/src/win32/utf-conv.c +0 -146
- data/vendor/libgit2/src/win32/utf-conv.h +0 -60
- /data/vendor/libgit2/{src → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src → deps}/xdiff/xtypes.h +0 -0
- /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
- /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
- /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
- /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
- /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
- /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
- /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
- /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
- /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
- /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
- /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
- /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
- /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
- /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
- /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
- /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
- /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
- /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
- /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
- /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
- /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
- /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
- /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
- /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
- /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
- /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
- /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
- /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
- /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
@@ -0,0 +1,70 @@
|
|
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_ctype_compat_h__
|
8
|
+
#define INCLUDE_ctype_compat_h__
|
9
|
+
|
10
|
+
/*
|
11
|
+
* The Microsoft C runtime (MSVCRT) may take a heavy lock on the
|
12
|
+
* locale in order to figure out how the `ctype` functions work.
|
13
|
+
* This is deeply slow. Provide our own to avoid that.
|
14
|
+
*/
|
15
|
+
|
16
|
+
#ifdef GIT_WIN32
|
17
|
+
|
18
|
+
GIT_INLINE(int) git__tolower(int c)
|
19
|
+
{
|
20
|
+
return (c >= 'A' && c <= 'Z') ? (c + 32) : c;
|
21
|
+
}
|
22
|
+
|
23
|
+
GIT_INLINE(int) git__toupper(int c)
|
24
|
+
{
|
25
|
+
return (c >= 'a' && c <= 'z') ? (c - 32) : c;
|
26
|
+
}
|
27
|
+
|
28
|
+
GIT_INLINE(bool) git__isalpha(int c)
|
29
|
+
{
|
30
|
+
return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'));
|
31
|
+
}
|
32
|
+
|
33
|
+
GIT_INLINE(bool) git__isdigit(int c)
|
34
|
+
{
|
35
|
+
return (c >= '0' && c <= '9');
|
36
|
+
}
|
37
|
+
|
38
|
+
GIT_INLINE(bool) git__isalnum(int c)
|
39
|
+
{
|
40
|
+
return git__isalpha(c) || git__isdigit(c);
|
41
|
+
}
|
42
|
+
|
43
|
+
GIT_INLINE(bool) git__isspace(int c)
|
44
|
+
{
|
45
|
+
return (c == ' ' || c == '\t' || c == '\n' || c == '\f' || c == '\r' || c == '\v');
|
46
|
+
}
|
47
|
+
|
48
|
+
GIT_INLINE(bool) git__isxdigit(int c)
|
49
|
+
{
|
50
|
+
return ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'));
|
51
|
+
}
|
52
|
+
|
53
|
+
GIT_INLINE(bool) git__isprint(int c)
|
54
|
+
{
|
55
|
+
return (c >= ' ' && c <= '~');
|
56
|
+
}
|
57
|
+
|
58
|
+
#else
|
59
|
+
# define git__tolower(a) tolower((unsigned char)(a))
|
60
|
+
# define git__toupper(a) toupper((unsigned char)(a))
|
61
|
+
|
62
|
+
# define git__isalpha(a) (!!isalpha((unsigned char)(a)))
|
63
|
+
# define git__isdigit(a) (!!isdigit((unsigned char)(a)))
|
64
|
+
# define git__isalnum(a) (!!isalnum((unsigned char)(a)))
|
65
|
+
# define git__isspace(a) (!!isspace((unsigned char)(a)))
|
66
|
+
# define git__isxdigit(a) (!!isxdigit((unsigned char)(a)))
|
67
|
+
# define git__isprint(a) (!!isprint((unsigned char)(a)))
|
68
|
+
#endif
|
69
|
+
|
70
|
+
#endif
|
@@ -1,18 +1,19 @@
|
|
1
1
|
/*
|
2
|
-
*
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
3
|
*
|
4
|
-
*
|
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.
|
5
6
|
*/
|
6
7
|
|
7
|
-
#include "
|
8
|
+
#include "git2_util.h"
|
8
9
|
|
9
10
|
#ifndef GIT_WIN32
|
10
11
|
#include <sys/time.h>
|
11
12
|
#endif
|
12
13
|
|
13
14
|
#include "util.h"
|
14
|
-
#include "cache.h"
|
15
15
|
#include "posix.h"
|
16
|
+
#include "date.h"
|
16
17
|
|
17
18
|
#include <ctype.h>
|
18
19
|
#include <time.h>
|
@@ -128,9 +129,9 @@ static size_t match_string(const char *date, const char *str)
|
|
128
129
|
for (i = 0; *date; date++, str++, i++) {
|
129
130
|
if (*date == *str)
|
130
131
|
continue;
|
131
|
-
if (
|
132
|
+
if (git__toupper(*date) == git__toupper(*str))
|
132
133
|
continue;
|
133
|
-
if (!
|
134
|
+
if (!git__isalnum(*date))
|
134
135
|
break;
|
135
136
|
return 0;
|
136
137
|
}
|
@@ -142,7 +143,7 @@ static int skip_alpha(const char *date)
|
|
142
143
|
int i = 0;
|
143
144
|
do {
|
144
145
|
i++;
|
145
|
-
} while (
|
146
|
+
} while (git__isalpha(date[i]));
|
146
147
|
return i;
|
147
148
|
}
|
148
149
|
|
@@ -250,7 +251,7 @@ static size_t match_multi_number(unsigned long num, char c, const char *date, ch
|
|
250
251
|
|
251
252
|
num2 = strtol(end+1, &end, 10);
|
252
253
|
num3 = -1;
|
253
|
-
if (*end == c &&
|
254
|
+
if (*end == c && git__isdigit(end[1]))
|
254
255
|
num3 = strtol(end+1, &end, 10);
|
255
256
|
|
256
257
|
/* Time? Date? */
|
@@ -348,7 +349,7 @@ static size_t match_digit(const char *date, struct tm *tm, int *offset, int *tm_
|
|
348
349
|
case '.':
|
349
350
|
case '/':
|
350
351
|
case '-':
|
351
|
-
if (
|
352
|
+
if (git__isdigit(end[1])) {
|
352
353
|
size_t match = match_multi_number(num, *end, date, end, tm);
|
353
354
|
if (match)
|
354
355
|
return match;
|
@@ -363,7 +364,7 @@ static size_t match_digit(const char *date, struct tm *tm, int *offset, int *tm_
|
|
363
364
|
n = 0;
|
364
365
|
do {
|
365
366
|
n++;
|
366
|
-
} while (
|
367
|
+
} while (git__isdigit(date[n]));
|
367
368
|
|
368
369
|
/* Four-digit year or a timezone? */
|
369
370
|
if (n == 4) {
|
@@ -513,11 +514,11 @@ static int parse_date_basic(const char *date, git_time_t *timestamp, int *offset
|
|
513
514
|
if (!c || c == '\n')
|
514
515
|
break;
|
515
516
|
|
516
|
-
if (
|
517
|
+
if (git__isalpha(c))
|
517
518
|
match = match_alpha(date, &tm, offset);
|
518
|
-
else if (
|
519
|
+
else if (git__isdigit(c))
|
519
520
|
match = match_digit(date, &tm, offset, &tm_gmt);
|
520
|
-
else if ((c == '-' || c == '+') &&
|
521
|
+
else if ((c == '-' || c == '+') && git__isdigit(date[1]))
|
521
522
|
match = match_tz(date, offset);
|
522
523
|
|
523
524
|
if (!match) {
|
@@ -681,7 +682,7 @@ static const char *approxidate_alpha(const char *date, struct tm *tm, struct tm
|
|
681
682
|
const char *end = date;
|
682
683
|
int i;
|
683
684
|
|
684
|
-
while (
|
685
|
+
while (git__isalpha(*++end))
|
685
686
|
/* scan to non-alpha */;
|
686
687
|
|
687
688
|
for (i = 0; i < 12; i++) {
|
@@ -782,7 +783,7 @@ static const char *approxidate_digit(const char *date, struct tm *tm, int *num)
|
|
782
783
|
case '.':
|
783
784
|
case '/':
|
784
785
|
case '-':
|
785
|
-
if (
|
786
|
+
if (git__isdigit(end[1])) {
|
786
787
|
size_t match = match_multi_number(number, *end, date, end, tm);
|
787
788
|
if (match)
|
788
789
|
return date + match;
|
@@ -842,22 +843,22 @@ static git_time_t approxidate_str(const char *date,
|
|
842
843
|
if (!c)
|
843
844
|
break;
|
844
845
|
date++;
|
845
|
-
if (
|
846
|
+
if (git__isdigit(c)) {
|
846
847
|
pending_number(&tm, &number);
|
847
848
|
date = approxidate_digit(date-1, &tm, &number);
|
848
849
|
touched = 1;
|
849
850
|
continue;
|
850
851
|
}
|
851
|
-
if (
|
852
|
+
if (git__isalpha(c))
|
852
853
|
date = approxidate_alpha(date-1, &tm, &now, &number, &touched);
|
853
854
|
}
|
854
855
|
pending_number(&tm, &number);
|
855
856
|
if (!touched)
|
856
|
-
*error_ret = 1;
|
857
|
+
*error_ret = -1;
|
857
858
|
return update_tm(&tm, &now, 0);
|
858
859
|
}
|
859
860
|
|
860
|
-
int
|
861
|
+
int git_date_offset_parse(git_time_t *out, int *out_offset, const char *date)
|
861
862
|
{
|
862
863
|
time_t time_sec;
|
863
864
|
git_time_t timestamp;
|
@@ -865,6 +866,7 @@ int git__date_parse(git_time_t *out, const char *date)
|
|
865
866
|
|
866
867
|
if (!parse_date_basic(date, ×tamp, &offset)) {
|
867
868
|
*out = timestamp;
|
869
|
+
*out_offset = offset;
|
868
870
|
return 0;
|
869
871
|
}
|
870
872
|
|
@@ -872,34 +874,34 @@ int git__date_parse(git_time_t *out, const char *date)
|
|
872
874
|
return -1;
|
873
875
|
|
874
876
|
*out = approxidate_str(date, time_sec, &error_ret);
|
875
|
-
|
877
|
+
return error_ret;
|
876
878
|
}
|
877
879
|
|
878
|
-
int
|
880
|
+
int git_date_parse(git_time_t *out, const char *date)
|
881
|
+
{
|
882
|
+
int offset;
|
883
|
+
|
884
|
+
return git_date_offset_parse(out, &offset, date);
|
885
|
+
}
|
886
|
+
|
887
|
+
int git_date_rfc2822_fmt(git_str *out, git_time_t time, int offset)
|
879
888
|
{
|
880
|
-
int written;
|
881
|
-
struct tm gmt;
|
882
889
|
time_t t;
|
890
|
+
struct tm gmt;
|
883
891
|
|
884
892
|
GIT_ASSERT_ARG(out);
|
885
|
-
GIT_ASSERT_ARG(date);
|
886
893
|
|
887
|
-
t = (time_t) (
|
894
|
+
t = (time_t) (time + offset * 60);
|
888
895
|
|
889
|
-
if (p_gmtime_r
|
896
|
+
if (p_gmtime_r(&t, &gmt) == NULL)
|
890
897
|
return -1;
|
891
898
|
|
892
|
-
|
899
|
+
return git_str_printf(out, "%.3s, %u %.3s %.4u %02u:%02u:%02u %+03d%02d",
|
893
900
|
weekday_names[gmt.tm_wday],
|
894
901
|
gmt.tm_mday,
|
895
902
|
month_names[gmt.tm_mon],
|
896
903
|
gmt.tm_year + 1900,
|
897
904
|
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;
|
905
|
+
offset / 60, offset % 60);
|
904
906
|
}
|
905
907
|
|
@@ -0,0 +1,45 @@
|
|
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 with a timezone offset.
|
15
|
+
*
|
16
|
+
* Sample valid input:
|
17
|
+
* - "yesterday"
|
18
|
+
* - "July 17, 2003"
|
19
|
+
* - "2003-7-17 08:23i+03"
|
20
|
+
*/
|
21
|
+
extern int git_date_offset_parse(git_time_t *out, int *out_offset, const char *date);
|
22
|
+
|
23
|
+
/*
|
24
|
+
* Parse a string into a value as a git_time_t.
|
25
|
+
*
|
26
|
+
* Timezone offset is ignored.
|
27
|
+
*
|
28
|
+
* Sample valid input:
|
29
|
+
* - "yesterday"
|
30
|
+
* - "July 17, 2003"
|
31
|
+
* - "2003-7-17 08:23"
|
32
|
+
*/
|
33
|
+
extern int git_date_parse(git_time_t *out, const char *date);
|
34
|
+
|
35
|
+
/*
|
36
|
+
* Format a git_time as a RFC2822 string
|
37
|
+
*
|
38
|
+
* @param out buffer to store formatted date
|
39
|
+
* @param time the time to be formatted
|
40
|
+
* @param offset the timezone offset
|
41
|
+
* @return 0 if successful; -1 on error
|
42
|
+
*/
|
43
|
+
extern int git_date_rfc2822_fmt(git_str *out, git_time_t time, int offset);
|
44
|
+
|
45
|
+
#endif
|
@@ -0,0 +1,401 @@
|
|
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
|
+
|
8
|
+
#include "git2_util.h"
|
9
|
+
|
10
|
+
#include "errors.h"
|
11
|
+
#include "posix.h"
|
12
|
+
#include "str.h"
|
13
|
+
#include "runtime.h"
|
14
|
+
|
15
|
+
/*
|
16
|
+
* Some static error data that is used when we're out of memory, TLS
|
17
|
+
* has not been setup, or TLS has failed.
|
18
|
+
*/
|
19
|
+
|
20
|
+
static git_error oom_error = {
|
21
|
+
"Out of memory",
|
22
|
+
GIT_ERROR_NOMEMORY
|
23
|
+
};
|
24
|
+
|
25
|
+
static git_error uninitialized_error = {
|
26
|
+
"library has not been initialized",
|
27
|
+
GIT_ERROR_INVALID
|
28
|
+
};
|
29
|
+
|
30
|
+
static git_error tlsdata_error = {
|
31
|
+
"thread-local data initialization failure",
|
32
|
+
GIT_ERROR_THREAD
|
33
|
+
};
|
34
|
+
|
35
|
+
static git_error no_error = {
|
36
|
+
"no error",
|
37
|
+
GIT_ERROR_NONE
|
38
|
+
};
|
39
|
+
|
40
|
+
#define IS_STATIC_ERROR(err) \
|
41
|
+
((err) == &oom_error || (err) == &uninitialized_error || \
|
42
|
+
(err) == &tlsdata_error || (err) == &no_error)
|
43
|
+
|
44
|
+
/* Per-thread error state (TLS) */
|
45
|
+
|
46
|
+
static git_tlsdata_key tls_key;
|
47
|
+
|
48
|
+
struct error_threadstate {
|
49
|
+
/* The error message buffer. */
|
50
|
+
git_str message;
|
51
|
+
|
52
|
+
/* Error information, set by `git_error_set` and friends. */
|
53
|
+
git_error error;
|
54
|
+
|
55
|
+
/*
|
56
|
+
* The last error to occur; points to the error member of this
|
57
|
+
* struct _or_ a static error.
|
58
|
+
*/
|
59
|
+
git_error *last;
|
60
|
+
};
|
61
|
+
|
62
|
+
static void threadstate_dispose(struct error_threadstate *threadstate)
|
63
|
+
{
|
64
|
+
if (!threadstate)
|
65
|
+
return;
|
66
|
+
|
67
|
+
git_str_dispose(&threadstate->message);
|
68
|
+
}
|
69
|
+
|
70
|
+
static struct error_threadstate *threadstate_get(void)
|
71
|
+
{
|
72
|
+
struct error_threadstate *threadstate;
|
73
|
+
|
74
|
+
if ((threadstate = git_tlsdata_get(tls_key)) != NULL)
|
75
|
+
return threadstate;
|
76
|
+
|
77
|
+
/*
|
78
|
+
* Avoid git__malloc here, since if it fails, it sets an error
|
79
|
+
* message, which requires thread state, which would allocate
|
80
|
+
* here, which would fail, which would set an error message...
|
81
|
+
*/
|
82
|
+
|
83
|
+
if ((threadstate = git__allocator.gmalloc(
|
84
|
+
sizeof(struct error_threadstate),
|
85
|
+
__FILE__, __LINE__)) == NULL)
|
86
|
+
return NULL;
|
87
|
+
|
88
|
+
memset(threadstate, 0, sizeof(struct error_threadstate));
|
89
|
+
|
90
|
+
if (git_str_init(&threadstate->message, 0) < 0) {
|
91
|
+
git__allocator.gfree(threadstate);
|
92
|
+
return NULL;
|
93
|
+
}
|
94
|
+
|
95
|
+
git_tlsdata_set(tls_key, threadstate);
|
96
|
+
return threadstate;
|
97
|
+
}
|
98
|
+
|
99
|
+
static void GIT_SYSTEM_CALL threadstate_free(void *threadstate)
|
100
|
+
{
|
101
|
+
threadstate_dispose(threadstate);
|
102
|
+
git__free(threadstate);
|
103
|
+
}
|
104
|
+
|
105
|
+
static void git_error_global_shutdown(void)
|
106
|
+
{
|
107
|
+
struct error_threadstate *threadstate;
|
108
|
+
|
109
|
+
threadstate = git_tlsdata_get(tls_key);
|
110
|
+
git_tlsdata_set(tls_key, NULL);
|
111
|
+
|
112
|
+
threadstate_dispose(threadstate);
|
113
|
+
git__free(threadstate);
|
114
|
+
|
115
|
+
git_tlsdata_dispose(tls_key);
|
116
|
+
}
|
117
|
+
|
118
|
+
int git_error_global_init(void)
|
119
|
+
{
|
120
|
+
if (git_tlsdata_init(&tls_key, &threadstate_free) != 0)
|
121
|
+
return -1;
|
122
|
+
|
123
|
+
return git_runtime_shutdown_register(git_error_global_shutdown);
|
124
|
+
}
|
125
|
+
|
126
|
+
static void set_error_from_buffer(int error_class)
|
127
|
+
{
|
128
|
+
struct error_threadstate *threadstate = threadstate_get();
|
129
|
+
git_error *error;
|
130
|
+
git_str *buf;
|
131
|
+
|
132
|
+
if (!threadstate)
|
133
|
+
return;
|
134
|
+
|
135
|
+
error = &threadstate->error;
|
136
|
+
buf = &threadstate->message;
|
137
|
+
|
138
|
+
error->message = buf->ptr;
|
139
|
+
error->klass = error_class;
|
140
|
+
|
141
|
+
threadstate->last = error;
|
142
|
+
}
|
143
|
+
|
144
|
+
static void set_error(int error_class, char *string)
|
145
|
+
{
|
146
|
+
struct error_threadstate *threadstate = threadstate_get();
|
147
|
+
git_str *buf;
|
148
|
+
|
149
|
+
if (!threadstate)
|
150
|
+
return;
|
151
|
+
|
152
|
+
buf = &threadstate->message;
|
153
|
+
|
154
|
+
git_str_clear(buf);
|
155
|
+
|
156
|
+
if (string)
|
157
|
+
git_str_puts(buf, string);
|
158
|
+
|
159
|
+
if (!git_str_oom(buf))
|
160
|
+
set_error_from_buffer(error_class);
|
161
|
+
}
|
162
|
+
|
163
|
+
void git_error_set_oom(void)
|
164
|
+
{
|
165
|
+
struct error_threadstate *threadstate = threadstate_get();
|
166
|
+
|
167
|
+
if (!threadstate)
|
168
|
+
return;
|
169
|
+
|
170
|
+
threadstate->last = &oom_error;
|
171
|
+
}
|
172
|
+
|
173
|
+
void git_error_set(int error_class, const char *fmt, ...)
|
174
|
+
{
|
175
|
+
va_list ap;
|
176
|
+
|
177
|
+
va_start(ap, fmt);
|
178
|
+
git_error_vset(error_class, fmt, ap);
|
179
|
+
va_end(ap);
|
180
|
+
}
|
181
|
+
|
182
|
+
void git_error_vset(int error_class, const char *fmt, va_list ap)
|
183
|
+
{
|
184
|
+
#ifdef GIT_WIN32
|
185
|
+
DWORD win32_error_code = (error_class == GIT_ERROR_OS) ? GetLastError() : 0;
|
186
|
+
#endif
|
187
|
+
|
188
|
+
struct error_threadstate *threadstate = threadstate_get();
|
189
|
+
int error_code = (error_class == GIT_ERROR_OS) ? errno : 0;
|
190
|
+
git_str *buf;
|
191
|
+
|
192
|
+
if (!threadstate)
|
193
|
+
return;
|
194
|
+
|
195
|
+
buf = &threadstate->message;
|
196
|
+
|
197
|
+
git_str_clear(buf);
|
198
|
+
|
199
|
+
if (fmt) {
|
200
|
+
git_str_vprintf(buf, fmt, ap);
|
201
|
+
if (error_class == GIT_ERROR_OS)
|
202
|
+
git_str_PUTS(buf, ": ");
|
203
|
+
}
|
204
|
+
|
205
|
+
if (error_class == GIT_ERROR_OS) {
|
206
|
+
#ifdef GIT_WIN32
|
207
|
+
char *win32_error = git_win32_get_error_message(win32_error_code);
|
208
|
+
if (win32_error) {
|
209
|
+
git_str_puts(buf, win32_error);
|
210
|
+
git__free(win32_error);
|
211
|
+
|
212
|
+
SetLastError(0);
|
213
|
+
}
|
214
|
+
else
|
215
|
+
#endif
|
216
|
+
if (error_code)
|
217
|
+
git_str_puts(buf, strerror(error_code));
|
218
|
+
|
219
|
+
if (error_code)
|
220
|
+
errno = 0;
|
221
|
+
}
|
222
|
+
|
223
|
+
if (!git_str_oom(buf))
|
224
|
+
set_error_from_buffer(error_class);
|
225
|
+
}
|
226
|
+
|
227
|
+
int git_error_set_str(int error_class, const char *string)
|
228
|
+
{
|
229
|
+
struct error_threadstate *threadstate = threadstate_get();
|
230
|
+
git_str *buf;
|
231
|
+
|
232
|
+
GIT_ASSERT_ARG(string);
|
233
|
+
|
234
|
+
if (!threadstate)
|
235
|
+
return -1;
|
236
|
+
|
237
|
+
buf = &threadstate->message;
|
238
|
+
|
239
|
+
git_str_clear(buf);
|
240
|
+
git_str_puts(buf, string);
|
241
|
+
|
242
|
+
if (git_str_oom(buf))
|
243
|
+
return -1;
|
244
|
+
|
245
|
+
set_error_from_buffer(error_class);
|
246
|
+
return 0;
|
247
|
+
}
|
248
|
+
|
249
|
+
void git_error_clear(void)
|
250
|
+
{
|
251
|
+
struct error_threadstate *threadstate = threadstate_get();
|
252
|
+
|
253
|
+
if (!threadstate)
|
254
|
+
return;
|
255
|
+
|
256
|
+
if (threadstate->last != NULL) {
|
257
|
+
set_error(0, NULL);
|
258
|
+
threadstate->last = NULL;
|
259
|
+
}
|
260
|
+
|
261
|
+
errno = 0;
|
262
|
+
#ifdef GIT_WIN32
|
263
|
+
SetLastError(0);
|
264
|
+
#endif
|
265
|
+
}
|
266
|
+
|
267
|
+
bool git_error_exists(void)
|
268
|
+
{
|
269
|
+
struct error_threadstate *threadstate;
|
270
|
+
|
271
|
+
if ((threadstate = threadstate_get()) == NULL)
|
272
|
+
return true;
|
273
|
+
|
274
|
+
return threadstate->last != NULL;
|
275
|
+
}
|
276
|
+
|
277
|
+
const git_error *git_error_last(void)
|
278
|
+
{
|
279
|
+
struct error_threadstate *threadstate;
|
280
|
+
|
281
|
+
/* If the library is not initialized, return a static error. */
|
282
|
+
if (!git_runtime_init_count())
|
283
|
+
return &uninitialized_error;
|
284
|
+
|
285
|
+
if ((threadstate = threadstate_get()) == NULL)
|
286
|
+
return &tlsdata_error;
|
287
|
+
|
288
|
+
if (!threadstate->last)
|
289
|
+
return &no_error;
|
290
|
+
|
291
|
+
return threadstate->last;
|
292
|
+
}
|
293
|
+
|
294
|
+
int git_error_save(git_error **out)
|
295
|
+
{
|
296
|
+
struct error_threadstate *threadstate = threadstate_get();
|
297
|
+
git_error *error, *dup;
|
298
|
+
|
299
|
+
if (!threadstate) {
|
300
|
+
*out = &tlsdata_error;
|
301
|
+
return -1;
|
302
|
+
}
|
303
|
+
|
304
|
+
error = threadstate->last;
|
305
|
+
|
306
|
+
if (!error || error == &no_error) {
|
307
|
+
*out = &no_error;
|
308
|
+
return 0;
|
309
|
+
} else if (IS_STATIC_ERROR(error)) {
|
310
|
+
*out = error;
|
311
|
+
return 0;
|
312
|
+
}
|
313
|
+
|
314
|
+
if ((dup = git__malloc(sizeof(git_error))) == NULL) {
|
315
|
+
*out = &oom_error;
|
316
|
+
return -1;
|
317
|
+
}
|
318
|
+
|
319
|
+
dup->klass = error->klass;
|
320
|
+
dup->message = git__strdup(error->message);
|
321
|
+
|
322
|
+
if (!dup->message) {
|
323
|
+
*out = &oom_error;
|
324
|
+
return -1;
|
325
|
+
}
|
326
|
+
|
327
|
+
*out = dup;
|
328
|
+
return 0;
|
329
|
+
}
|
330
|
+
|
331
|
+
int git_error_restore(git_error *error)
|
332
|
+
{
|
333
|
+
struct error_threadstate *threadstate = threadstate_get();
|
334
|
+
|
335
|
+
GIT_ASSERT_ARG(error);
|
336
|
+
|
337
|
+
if (IS_STATIC_ERROR(error) && threadstate)
|
338
|
+
threadstate->last = error;
|
339
|
+
else
|
340
|
+
set_error(error->klass, error->message);
|
341
|
+
|
342
|
+
git_error_free(error);
|
343
|
+
return 0;
|
344
|
+
}
|
345
|
+
|
346
|
+
void git_error_free(git_error *error)
|
347
|
+
{
|
348
|
+
if (!error)
|
349
|
+
return;
|
350
|
+
|
351
|
+
if (IS_STATIC_ERROR(error))
|
352
|
+
return;
|
353
|
+
|
354
|
+
git__free(error->message);
|
355
|
+
git__free(error);
|
356
|
+
}
|
357
|
+
|
358
|
+
int git_error_system_last(void)
|
359
|
+
{
|
360
|
+
#ifdef GIT_WIN32
|
361
|
+
return GetLastError();
|
362
|
+
#else
|
363
|
+
return errno;
|
364
|
+
#endif
|
365
|
+
}
|
366
|
+
|
367
|
+
void git_error_system_set(int code)
|
368
|
+
{
|
369
|
+
#ifdef GIT_WIN32
|
370
|
+
SetLastError(code);
|
371
|
+
#else
|
372
|
+
errno = code;
|
373
|
+
#endif
|
374
|
+
}
|
375
|
+
|
376
|
+
/* Deprecated error values and functions */
|
377
|
+
|
378
|
+
#ifndef GIT_DEPRECATE_HARD
|
379
|
+
|
380
|
+
#include "git2/deprecated.h"
|
381
|
+
|
382
|
+
const git_error *giterr_last(void)
|
383
|
+
{
|
384
|
+
return git_error_last();
|
385
|
+
}
|
386
|
+
|
387
|
+
void giterr_clear(void)
|
388
|
+
{
|
389
|
+
git_error_clear();
|
390
|
+
}
|
391
|
+
|
392
|
+
void giterr_set_str(int error_class, const char *string)
|
393
|
+
{
|
394
|
+
git_error_set_str(error_class, string);
|
395
|
+
}
|
396
|
+
|
397
|
+
void giterr_set_oom(void)
|
398
|
+
{
|
399
|
+
git_error_set_oom();
|
400
|
+
}
|
401
|
+
#endif
|