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
@@ -4,42 +4,42 @@
|
|
4
4
|
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
6
6
|
*/
|
7
|
-
|
7
|
+
|
8
|
+
#include "str.h"
|
8
9
|
#include "posix.h"
|
9
|
-
#include "git2/buffer.h"
|
10
10
|
#include <ctype.h>
|
11
11
|
|
12
|
-
/* Used as default value for
|
13
|
-
* assume ptr is non-NULL and zero terminated even for new
|
12
|
+
/* Used as default value for git_str->ptr so that people can always
|
13
|
+
* assume ptr is non-NULL and zero terminated even for new git_strs.
|
14
14
|
*/
|
15
|
-
char
|
15
|
+
char git_str__initstr[1];
|
16
16
|
|
17
|
-
char
|
17
|
+
char git_str__oom[1];
|
18
18
|
|
19
19
|
#define ENSURE_SIZE(b, d) \
|
20
|
-
if ((b)->ptr ==
|
21
|
-
((d) > (b)->asize &&
|
20
|
+
if ((b)->ptr == git_str__oom || \
|
21
|
+
((d) > (b)->asize && git_str_grow((b), (d)) < 0))\
|
22
22
|
return -1;
|
23
23
|
|
24
24
|
|
25
|
-
int
|
25
|
+
int git_str_init(git_str *buf, size_t initial_size)
|
26
26
|
{
|
27
27
|
buf->asize = 0;
|
28
28
|
buf->size = 0;
|
29
|
-
buf->ptr =
|
29
|
+
buf->ptr = git_str__initstr;
|
30
30
|
|
31
31
|
ENSURE_SIZE(buf, initial_size);
|
32
32
|
|
33
33
|
return 0;
|
34
34
|
}
|
35
35
|
|
36
|
-
int
|
37
|
-
|
36
|
+
int git_str_try_grow(
|
37
|
+
git_str *buf, size_t target_size, bool mark_oom)
|
38
38
|
{
|
39
39
|
char *new_ptr;
|
40
40
|
size_t new_size;
|
41
41
|
|
42
|
-
if (buf->ptr ==
|
42
|
+
if (buf->ptr == git_str__oom)
|
43
43
|
return -1;
|
44
44
|
|
45
45
|
if (buf->asize == 0 && buf->size != 0) {
|
@@ -74,9 +74,9 @@ int git_buf_try_grow(
|
|
74
74
|
|
75
75
|
if (new_size < buf->size) {
|
76
76
|
if (mark_oom) {
|
77
|
-
if (buf->ptr && buf->ptr !=
|
77
|
+
if (buf->ptr && buf->ptr != git_str__initstr)
|
78
78
|
git__free(buf->ptr);
|
79
|
-
buf->ptr =
|
79
|
+
buf->ptr = git_str__oom;
|
80
80
|
}
|
81
81
|
|
82
82
|
git_error_set_oom();
|
@@ -87,9 +87,9 @@ int git_buf_try_grow(
|
|
87
87
|
|
88
88
|
if (!new_ptr) {
|
89
89
|
if (mark_oom) {
|
90
|
-
if (buf->ptr && (buf->ptr !=
|
90
|
+
if (buf->ptr && (buf->ptr != git_str__initstr))
|
91
91
|
git__free(buf->ptr);
|
92
|
-
buf->ptr =
|
92
|
+
buf->ptr = git_str__oom;
|
93
93
|
}
|
94
94
|
return -1;
|
95
95
|
}
|
@@ -105,59 +105,39 @@ int git_buf_try_grow(
|
|
105
105
|
return 0;
|
106
106
|
}
|
107
107
|
|
108
|
-
int
|
108
|
+
int git_str_grow(git_str *buffer, size_t target_size)
|
109
109
|
{
|
110
|
-
return
|
110
|
+
return git_str_try_grow(buffer, target_size, true);
|
111
111
|
}
|
112
112
|
|
113
|
-
int
|
113
|
+
int git_str_grow_by(git_str *buffer, size_t additional_size)
|
114
114
|
{
|
115
115
|
size_t newsize;
|
116
116
|
|
117
117
|
if (GIT_ADD_SIZET_OVERFLOW(&newsize, buffer->size, additional_size)) {
|
118
|
-
buffer->ptr =
|
118
|
+
buffer->ptr = git_str__oom;
|
119
119
|
return -1;
|
120
120
|
}
|
121
121
|
|
122
|
-
return
|
122
|
+
return git_str_try_grow(buffer, newsize, true);
|
123
123
|
}
|
124
124
|
|
125
|
-
void
|
125
|
+
void git_str_dispose(git_str *buf)
|
126
126
|
{
|
127
127
|
if (!buf) return;
|
128
128
|
|
129
|
-
if (buf->asize > 0 && buf->ptr != NULL && buf->ptr !=
|
129
|
+
if (buf->asize > 0 && buf->ptr != NULL && buf->ptr != git_str__oom)
|
130
130
|
git__free(buf->ptr);
|
131
131
|
|
132
|
-
|
133
|
-
}
|
134
|
-
|
135
|
-
#ifndef GIT_DEPRECATE_HARD
|
136
|
-
void git_buf_free(git_buf *buf)
|
137
|
-
{
|
138
|
-
git_buf_dispose(buf);
|
132
|
+
git_str_init(buf, 0);
|
139
133
|
}
|
140
|
-
#endif
|
141
134
|
|
142
|
-
|
143
|
-
{
|
144
|
-
if (buf->ptr == NULL) {
|
145
|
-
GIT_ASSERT_ARG(buf->size == 0 && buf->asize == 0);
|
146
|
-
|
147
|
-
buf->ptr = git_buf__initbuf;
|
148
|
-
} else if (buf->asize > buf->size) {
|
149
|
-
buf->ptr[buf->size] = '\0';
|
150
|
-
}
|
151
|
-
|
152
|
-
return 0;
|
153
|
-
}
|
154
|
-
|
155
|
-
void git_buf_clear(git_buf *buf)
|
135
|
+
void git_str_clear(git_str *buf)
|
156
136
|
{
|
157
137
|
buf->size = 0;
|
158
138
|
|
159
139
|
if (!buf->ptr) {
|
160
|
-
buf->ptr =
|
140
|
+
buf->ptr = git_str__initstr;
|
161
141
|
buf->asize = 0;
|
162
142
|
}
|
163
143
|
|
@@ -165,12 +145,12 @@ void git_buf_clear(git_buf *buf)
|
|
165
145
|
buf->ptr[0] = '\0';
|
166
146
|
}
|
167
147
|
|
168
|
-
int
|
148
|
+
int git_str_set(git_str *buf, const void *data, size_t len)
|
169
149
|
{
|
170
150
|
size_t alloclen;
|
171
151
|
|
172
152
|
if (len == 0 || data == NULL) {
|
173
|
-
|
153
|
+
git_str_clear(buf);
|
174
154
|
} else {
|
175
155
|
if (data != buf->ptr) {
|
176
156
|
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, len, 1);
|
@@ -186,12 +166,12 @@ int git_buf_set(git_buf *buf, const void *data, size_t len)
|
|
186
166
|
return 0;
|
187
167
|
}
|
188
168
|
|
189
|
-
int
|
169
|
+
int git_str_sets(git_str *buf, const char *string)
|
190
170
|
{
|
191
|
-
return
|
171
|
+
return git_str_set(buf, string, string ? strlen(string) : 0);
|
192
172
|
}
|
193
173
|
|
194
|
-
int
|
174
|
+
int git_str_putc(git_str *buf, char c)
|
195
175
|
{
|
196
176
|
size_t new_size;
|
197
177
|
GIT_ERROR_CHECK_ALLOC_ADD(&new_size, buf->size, 2);
|
@@ -201,7 +181,7 @@ int git_buf_putc(git_buf *buf, char c)
|
|
201
181
|
return 0;
|
202
182
|
}
|
203
183
|
|
204
|
-
int
|
184
|
+
int git_str_putcn(git_str *buf, char c, size_t len)
|
205
185
|
{
|
206
186
|
size_t new_size;
|
207
187
|
GIT_ERROR_CHECK_ALLOC_ADD(&new_size, buf->size, len);
|
@@ -213,7 +193,7 @@ int git_buf_putcn(git_buf *buf, char c, size_t len)
|
|
213
193
|
return 0;
|
214
194
|
}
|
215
195
|
|
216
|
-
int
|
196
|
+
int git_str_put(git_str *buf, const char *data, size_t len)
|
217
197
|
{
|
218
198
|
if (len) {
|
219
199
|
size_t new_size;
|
@@ -230,17 +210,43 @@ int git_buf_put(git_buf *buf, const char *data, size_t len)
|
|
230
210
|
return 0;
|
231
211
|
}
|
232
212
|
|
233
|
-
int
|
213
|
+
int git_str_puts(git_str *buf, const char *string)
|
234
214
|
{
|
235
215
|
GIT_ASSERT_ARG(string);
|
236
216
|
|
237
|
-
return
|
217
|
+
return git_str_put(buf, string, strlen(string));
|
218
|
+
}
|
219
|
+
|
220
|
+
static char hex_encode[] = "0123456789abcdef";
|
221
|
+
|
222
|
+
int git_str_encode_hexstr(git_str *str, const char *data, size_t len)
|
223
|
+
{
|
224
|
+
size_t new_size, i;
|
225
|
+
char *s;
|
226
|
+
|
227
|
+
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&new_size, len, 2);
|
228
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&new_size, new_size, 1);
|
229
|
+
|
230
|
+
if (git_str_grow_by(str, new_size) < 0)
|
231
|
+
return -1;
|
232
|
+
|
233
|
+
s = str->ptr + str->size;
|
234
|
+
|
235
|
+
for (i = 0; i < len; i++) {
|
236
|
+
*s++ = hex_encode[(data[i] & 0xf0) >> 4];
|
237
|
+
*s++ = hex_encode[(data[i] & 0x0f)];
|
238
|
+
}
|
239
|
+
|
240
|
+
str->size += (len * 2);
|
241
|
+
str->ptr[str->size] = '\0';
|
242
|
+
|
243
|
+
return 0;
|
238
244
|
}
|
239
245
|
|
240
246
|
static const char base64_encode[] =
|
241
247
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
242
248
|
|
243
|
-
int
|
249
|
+
int git_str_encode_base64(git_str *buf, const char *data, size_t len)
|
244
250
|
{
|
245
251
|
size_t extra = len % 3;
|
246
252
|
uint8_t *write, a, b, c;
|
@@ -302,7 +308,7 @@ static const int8_t base64_decode[] = {
|
|
302
308
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
303
309
|
};
|
304
310
|
|
305
|
-
int
|
311
|
+
int git_str_decode_base64(git_str *buf, const char *base64, size_t len)
|
306
312
|
{
|
307
313
|
size_t i;
|
308
314
|
int8_t a, b, c, d;
|
@@ -342,7 +348,7 @@ int git_buf_decode_base64(git_buf *buf, const char *base64, size_t len)
|
|
342
348
|
static const char base85_encode[] =
|
343
349
|
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~";
|
344
350
|
|
345
|
-
int
|
351
|
+
int git_str_encode_base85(git_str *buf, const char *data, size_t len)
|
346
352
|
{
|
347
353
|
size_t blocks = (len / 4) + !!(len % 4), alloclen;
|
348
354
|
|
@@ -401,8 +407,8 @@ static const int8_t base85_decode[] = {
|
|
401
407
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
402
408
|
};
|
403
409
|
|
404
|
-
int
|
405
|
-
|
410
|
+
int git_str_decode_base85(
|
411
|
+
git_str *buf,
|
406
412
|
const char *base85,
|
407
413
|
size_t base85_len,
|
408
414
|
size_t output_len)
|
@@ -465,8 +471,8 @@ on_error:
|
|
465
471
|
|
466
472
|
#define HEX_DECODE(c) ((c | 32) % 39 - 9)
|
467
473
|
|
468
|
-
int
|
469
|
-
|
474
|
+
int git_str_decode_percent(
|
475
|
+
git_str *buf,
|
470
476
|
const char *str,
|
471
477
|
size_t str_len)
|
472
478
|
{
|
@@ -479,8 +485,8 @@ int git_buf_decode_percent(
|
|
479
485
|
for (str_pos = 0; str_pos < str_len; buf->size++, str_pos++) {
|
480
486
|
if (str[str_pos] == '%' &&
|
481
487
|
str_len > str_pos + 2 &&
|
482
|
-
|
483
|
-
|
488
|
+
git__isxdigit(str[str_pos + 1]) &&
|
489
|
+
git__isxdigit(str[str_pos + 2])) {
|
484
490
|
buf->ptr[buf->size] = (HEX_DECODE(str[str_pos + 1]) << 4) +
|
485
491
|
HEX_DECODE(str[str_pos + 2]);
|
486
492
|
str_pos += 2;
|
@@ -493,7 +499,7 @@ int git_buf_decode_percent(
|
|
493
499
|
return 0;
|
494
500
|
}
|
495
501
|
|
496
|
-
int
|
502
|
+
int git_str_vprintf(git_str *buf, const char *format, va_list ap)
|
497
503
|
{
|
498
504
|
size_t expected_size, new_size;
|
499
505
|
int len;
|
@@ -516,7 +522,7 @@ int git_buf_vprintf(git_buf *buf, const char *format, va_list ap)
|
|
516
522
|
|
517
523
|
if (len < 0) {
|
518
524
|
git__free(buf->ptr);
|
519
|
-
buf->ptr =
|
525
|
+
buf->ptr = git_str__oom;
|
520
526
|
return -1;
|
521
527
|
}
|
522
528
|
|
@@ -533,19 +539,19 @@ int git_buf_vprintf(git_buf *buf, const char *format, va_list ap)
|
|
533
539
|
return 0;
|
534
540
|
}
|
535
541
|
|
536
|
-
int
|
542
|
+
int git_str_printf(git_str *buf, const char *format, ...)
|
537
543
|
{
|
538
544
|
int r;
|
539
545
|
va_list ap;
|
540
546
|
|
541
547
|
va_start(ap, format);
|
542
|
-
r =
|
548
|
+
r = git_str_vprintf(buf, format, ap);
|
543
549
|
va_end(ap);
|
544
550
|
|
545
551
|
return r;
|
546
552
|
}
|
547
553
|
|
548
|
-
int
|
554
|
+
int git_str_copy_cstr(char *data, size_t datasize, const git_str *buf)
|
549
555
|
{
|
550
556
|
size_t copylen;
|
551
557
|
|
@@ -567,12 +573,12 @@ int git_buf_copy_cstr(char *data, size_t datasize, const git_buf *buf)
|
|
567
573
|
return 0;
|
568
574
|
}
|
569
575
|
|
570
|
-
void
|
576
|
+
void git_str_consume_bytes(git_str *buf, size_t len)
|
571
577
|
{
|
572
|
-
|
578
|
+
git_str_consume(buf, buf->ptr + len);
|
573
579
|
}
|
574
580
|
|
575
|
-
void
|
581
|
+
void git_str_consume(git_str *buf, const char *end)
|
576
582
|
{
|
577
583
|
if (end > buf->ptr && end <= buf->ptr + buf->size) {
|
578
584
|
size_t consumed = end - buf->ptr;
|
@@ -582,7 +588,7 @@ void git_buf_consume(git_buf *buf, const char *end)
|
|
582
588
|
}
|
583
589
|
}
|
584
590
|
|
585
|
-
void
|
591
|
+
void git_str_truncate(git_str *buf, size_t len)
|
586
592
|
{
|
587
593
|
if (len >= buf->size)
|
588
594
|
return;
|
@@ -592,49 +598,49 @@ void git_buf_truncate(git_buf *buf, size_t len)
|
|
592
598
|
buf->ptr[buf->size] = '\0';
|
593
599
|
}
|
594
600
|
|
595
|
-
void
|
601
|
+
void git_str_shorten(git_str *buf, size_t amount)
|
596
602
|
{
|
597
603
|
if (buf->size > amount)
|
598
|
-
|
604
|
+
git_str_truncate(buf, buf->size - amount);
|
599
605
|
else
|
600
|
-
|
606
|
+
git_str_clear(buf);
|
601
607
|
}
|
602
608
|
|
603
|
-
void
|
609
|
+
void git_str_truncate_at_char(git_str *buf, char separator)
|
604
610
|
{
|
605
|
-
ssize_t idx =
|
611
|
+
ssize_t idx = git_str_find(buf, separator);
|
606
612
|
if (idx >= 0)
|
607
|
-
|
613
|
+
git_str_truncate(buf, (size_t)idx);
|
608
614
|
}
|
609
615
|
|
610
|
-
void
|
616
|
+
void git_str_rtruncate_at_char(git_str *buf, char separator)
|
611
617
|
{
|
612
|
-
ssize_t idx =
|
613
|
-
|
618
|
+
ssize_t idx = git_str_rfind_next(buf, separator);
|
619
|
+
git_str_truncate(buf, idx < 0 ? 0 : (size_t)idx);
|
614
620
|
}
|
615
621
|
|
616
|
-
void
|
622
|
+
void git_str_swap(git_str *str_a, git_str *str_b)
|
617
623
|
{
|
618
|
-
|
619
|
-
*
|
620
|
-
*
|
624
|
+
git_str t = *str_a;
|
625
|
+
*str_a = *str_b;
|
626
|
+
*str_b = t;
|
621
627
|
}
|
622
628
|
|
623
|
-
char *
|
629
|
+
char *git_str_detach(git_str *buf)
|
624
630
|
{
|
625
631
|
char *data = buf->ptr;
|
626
632
|
|
627
|
-
if (buf->asize == 0 || buf->ptr ==
|
633
|
+
if (buf->asize == 0 || buf->ptr == git_str__oom)
|
628
634
|
return NULL;
|
629
635
|
|
630
|
-
|
636
|
+
git_str_init(buf, 0);
|
631
637
|
|
632
638
|
return data;
|
633
639
|
}
|
634
640
|
|
635
|
-
int
|
641
|
+
int git_str_attach(git_str *buf, char *ptr, size_t asize)
|
636
642
|
{
|
637
|
-
|
643
|
+
git_str_dispose(buf);
|
638
644
|
|
639
645
|
if (ptr) {
|
640
646
|
buf->ptr = ptr;
|
@@ -649,13 +655,13 @@ int git_buf_attach(git_buf *buf, char *ptr, size_t asize)
|
|
649
655
|
return 0;
|
650
656
|
}
|
651
657
|
|
652
|
-
void
|
658
|
+
void git_str_attach_notowned(git_str *buf, const char *ptr, size_t size)
|
653
659
|
{
|
654
|
-
if (
|
655
|
-
|
660
|
+
if (git_str_is_allocated(buf))
|
661
|
+
git_str_dispose(buf);
|
656
662
|
|
657
663
|
if (!size) {
|
658
|
-
|
664
|
+
git_str_init(buf, 0);
|
659
665
|
} else {
|
660
666
|
buf->ptr = (char *)ptr;
|
661
667
|
buf->asize = 0;
|
@@ -663,7 +669,7 @@ void git_buf_attach_notowned(git_buf *buf, const char *ptr, size_t size)
|
|
663
669
|
}
|
664
670
|
}
|
665
671
|
|
666
|
-
int
|
672
|
+
int git_str_join_n(git_str *buf, char separator, int nbuf, ...)
|
667
673
|
{
|
668
674
|
va_list ap;
|
669
675
|
int i;
|
@@ -698,7 +704,7 @@ int git_buf_join_n(git_buf *buf, char separator, int nbuf, ...)
|
|
698
704
|
return 0;
|
699
705
|
|
700
706
|
GIT_ERROR_CHECK_ALLOC_ADD(&total_size, total_size, 1);
|
701
|
-
if (
|
707
|
+
if (git_str_grow_by(buf, total_size) < 0)
|
702
708
|
return -1;
|
703
709
|
|
704
710
|
out = buf->ptr + buf->size;
|
@@ -751,8 +757,8 @@ int git_buf_join_n(git_buf *buf, char separator, int nbuf, ...)
|
|
751
757
|
return 0;
|
752
758
|
}
|
753
759
|
|
754
|
-
int
|
755
|
-
|
760
|
+
int git_str_join(
|
761
|
+
git_str *buf,
|
756
762
|
char separator,
|
757
763
|
const char *str_a,
|
758
764
|
const char *str_b)
|
@@ -800,8 +806,8 @@ int git_buf_join(
|
|
800
806
|
return 0;
|
801
807
|
}
|
802
808
|
|
803
|
-
int
|
804
|
-
|
809
|
+
int git_str_join3(
|
810
|
+
git_str *buf,
|
805
811
|
char separator,
|
806
812
|
const char *str_a,
|
807
813
|
const char *str_b,
|
@@ -860,7 +866,7 @@ int git_buf_join3(
|
|
860
866
|
return 0;
|
861
867
|
}
|
862
868
|
|
863
|
-
void
|
869
|
+
void git_str_rtrim(git_str *buf)
|
864
870
|
{
|
865
871
|
while (buf->size > 0) {
|
866
872
|
if (!git__isspace(buf->ptr[buf->size - 1]))
|
@@ -873,15 +879,15 @@ void git_buf_rtrim(git_buf *buf)
|
|
873
879
|
buf->ptr[buf->size] = '\0';
|
874
880
|
}
|
875
881
|
|
876
|
-
int
|
882
|
+
int git_str_cmp(const git_str *a, const git_str *b)
|
877
883
|
{
|
878
884
|
int result = memcmp(a->ptr, b->ptr, min(a->size, b->size));
|
879
885
|
return (result != 0) ? result :
|
880
886
|
(a->size < b->size) ? -1 : (a->size > b->size) ? 1 : 0;
|
881
887
|
}
|
882
888
|
|
883
|
-
int
|
884
|
-
|
889
|
+
int git_str_splice(
|
890
|
+
git_str *buf,
|
885
891
|
size_t where,
|
886
892
|
size_t nb_to_remove,
|
887
893
|
const char *data,
|
@@ -915,10 +921,10 @@ int git_buf_splice(
|
|
915
921
|
}
|
916
922
|
|
917
923
|
/* Quote per http://marc.info/?l=git&m=112927316408690&w=2 */
|
918
|
-
int
|
924
|
+
int git_str_quote(git_str *buf)
|
919
925
|
{
|
920
926
|
const char whitespace[] = { 'a', 'b', 't', 'n', 'v', 'f', 'r' };
|
921
|
-
|
927
|
+
git_str quoted = GIT_STR_INIT;
|
922
928
|
size_t i = 0;
|
923
929
|
bool quote = false;
|
924
930
|
int error = 0;
|
@@ -938,55 +944,55 @@ int git_buf_quote(git_buf *buf)
|
|
938
944
|
if (!quote)
|
939
945
|
goto done;
|
940
946
|
|
941
|
-
|
942
|
-
|
947
|
+
git_str_putc("ed, '"');
|
948
|
+
git_str_put("ed, buf->ptr, i);
|
943
949
|
|
944
950
|
for (; i < buf->size; i++) {
|
945
951
|
/* whitespace - use the map above, which is ordered by ascii value */
|
946
952
|
if (buf->ptr[i] >= '\a' && buf->ptr[i] <= '\r') {
|
947
|
-
|
948
|
-
|
953
|
+
git_str_putc("ed, '\\');
|
954
|
+
git_str_putc("ed, whitespace[buf->ptr[i] - '\a']);
|
949
955
|
}
|
950
956
|
|
951
957
|
/* double quote and backslash must be escaped */
|
952
958
|
else if (buf->ptr[i] == '"' || buf->ptr[i] == '\\') {
|
953
|
-
|
954
|
-
|
959
|
+
git_str_putc("ed, '\\');
|
960
|
+
git_str_putc("ed, buf->ptr[i]);
|
955
961
|
}
|
956
962
|
|
957
963
|
/* escape anything unprintable as octal */
|
958
964
|
else if (buf->ptr[i] != ' ' &&
|
959
965
|
(buf->ptr[i] < '!' || buf->ptr[i] > '~')) {
|
960
|
-
|
966
|
+
git_str_printf("ed, "\\%03o", (unsigned char)buf->ptr[i]);
|
961
967
|
}
|
962
968
|
|
963
969
|
/* yay, printable! */
|
964
970
|
else {
|
965
|
-
|
971
|
+
git_str_putc("ed, buf->ptr[i]);
|
966
972
|
}
|
967
973
|
}
|
968
974
|
|
969
|
-
|
975
|
+
git_str_putc("ed, '"');
|
970
976
|
|
971
|
-
if (
|
977
|
+
if (git_str_oom("ed)) {
|
972
978
|
error = -1;
|
973
979
|
goto done;
|
974
980
|
}
|
975
981
|
|
976
|
-
|
982
|
+
git_str_swap("ed, buf);
|
977
983
|
|
978
984
|
done:
|
979
|
-
|
985
|
+
git_str_dispose("ed);
|
980
986
|
return error;
|
981
987
|
}
|
982
988
|
|
983
989
|
/* Unquote per http://marc.info/?l=git&m=112927316408690&w=2 */
|
984
|
-
int
|
990
|
+
int git_str_unquote(git_str *buf)
|
985
991
|
{
|
986
992
|
size_t i, j;
|
987
993
|
char ch;
|
988
994
|
|
989
|
-
|
995
|
+
git_str_rtrim(buf);
|
990
996
|
|
991
997
|
if (buf->size < 2 || buf->ptr[0] != '"' || buf->ptr[buf->size-1] != '"')
|
992
998
|
goto invalid;
|
@@ -1055,8 +1061,8 @@ invalid:
|
|
1055
1061
|
return -1;
|
1056
1062
|
}
|
1057
1063
|
|
1058
|
-
int
|
1059
|
-
|
1064
|
+
int git_str_puts_escaped(
|
1065
|
+
git_str *buf,
|
1060
1066
|
const char *string,
|
1061
1067
|
const char *esc_chars,
|
1062
1068
|
const char *esc_with)
|
@@ -1079,7 +1085,7 @@ int git_buf_puts_escaped(
|
|
1079
1085
|
}
|
1080
1086
|
|
1081
1087
|
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, total, 1);
|
1082
|
-
if (
|
1088
|
+
if (git_str_grow_by(buf, alloclen) < 0)
|
1083
1089
|
return -1;
|
1084
1090
|
|
1085
1091
|
for (scan = string; *scan; ) {
|
@@ -1105,12 +1111,12 @@ int git_buf_puts_escaped(
|
|
1105
1111
|
return 0;
|
1106
1112
|
}
|
1107
1113
|
|
1108
|
-
void
|
1114
|
+
void git_str_unescape(git_str *buf)
|
1109
1115
|
{
|
1110
1116
|
buf->size = git__unescape(buf->ptr);
|
1111
1117
|
}
|
1112
1118
|
|
1113
|
-
int
|
1119
|
+
int git_str_crlf_to_lf(git_str *tgt, const git_str *src)
|
1114
1120
|
{
|
1115
1121
|
const char *scan = src->ptr;
|
1116
1122
|
const char *scan_end = src->ptr + src->size;
|
@@ -1121,11 +1127,11 @@ int git_buf_crlf_to_lf(git_buf *tgt, const git_buf *src)
|
|
1121
1127
|
GIT_ASSERT(tgt != src);
|
1122
1128
|
|
1123
1129
|
if (!next)
|
1124
|
-
return
|
1130
|
+
return git_str_set(tgt, src->ptr, src->size);
|
1125
1131
|
|
1126
1132
|
/* reduce reallocs while in the loop */
|
1127
1133
|
GIT_ERROR_CHECK_ALLOC_ADD(&new_size, src->size, 1);
|
1128
|
-
if (
|
1134
|
+
if (git_str_grow(tgt, new_size) < 0)
|
1129
1135
|
return -1;
|
1130
1136
|
|
1131
1137
|
out = tgt->ptr;
|
@@ -1157,7 +1163,7 @@ int git_buf_crlf_to_lf(git_buf *tgt, const git_buf *src)
|
|
1157
1163
|
return 0;
|
1158
1164
|
}
|
1159
1165
|
|
1160
|
-
int
|
1166
|
+
int git_str_lf_to_crlf(git_str *tgt, const git_str *src)
|
1161
1167
|
{
|
1162
1168
|
const char *start = src->ptr;
|
1163
1169
|
const char *end = start + src->size;
|
@@ -1168,12 +1174,12 @@ int git_buf_lf_to_crlf(git_buf *tgt, const git_buf *src)
|
|
1168
1174
|
GIT_ASSERT(tgt != src);
|
1169
1175
|
|
1170
1176
|
if (!next)
|
1171
|
-
return
|
1177
|
+
return git_str_set(tgt, src->ptr, src->size);
|
1172
1178
|
|
1173
1179
|
/* attempt to reduce reallocs while in the loop */
|
1174
1180
|
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, src->size, src->size >> 4);
|
1175
1181
|
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, alloclen, 1);
|
1176
|
-
if (
|
1182
|
+
if (git_str_grow(tgt, alloclen) < 0)
|
1177
1183
|
return -1;
|
1178
1184
|
tgt->size = 0;
|
1179
1185
|
|
@@ -1185,7 +1191,7 @@ int git_buf_lf_to_crlf(git_buf *tgt, const git_buf *src)
|
|
1185
1191
|
copylen--;
|
1186
1192
|
|
1187
1193
|
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, copylen, 3);
|
1188
|
-
if (
|
1194
|
+
if (git_str_grow_by(tgt, alloclen) < 0)
|
1189
1195
|
return -1;
|
1190
1196
|
|
1191
1197
|
if (copylen) {
|
@@ -1198,21 +1204,21 @@ int git_buf_lf_to_crlf(git_buf *tgt, const git_buf *src)
|
|
1198
1204
|
}
|
1199
1205
|
|
1200
1206
|
tgt->ptr[tgt->size] = '\0';
|
1201
|
-
return
|
1207
|
+
return git_str_put(tgt, scan, end - scan);
|
1202
1208
|
}
|
1203
1209
|
|
1204
|
-
int
|
1210
|
+
int git_str_common_prefix(git_str *buf, char *const *const strings, size_t count)
|
1205
1211
|
{
|
1206
1212
|
size_t i;
|
1207
1213
|
const char *str, *pfx;
|
1208
1214
|
|
1209
|
-
|
1215
|
+
git_str_clear(buf);
|
1210
1216
|
|
1211
1217
|
if (!strings || !count)
|
1212
1218
|
return 0;
|
1213
1219
|
|
1214
1220
|
/* initialize common prefix to first string */
|
1215
|
-
if (
|
1221
|
+
if (git_str_sets(buf, strings[0]) < 0)
|
1216
1222
|
return -1;
|
1217
1223
|
|
1218
1224
|
/* go through the rest of the strings, truncating to shared prefix */
|
@@ -1223,7 +1229,7 @@ int git_buf_common_prefix(git_buf *buf, char *const *const strings, size_t count
|
|
1223
1229
|
str++, pfx++)
|
1224
1230
|
/* scanning */;
|
1225
1231
|
|
1226
|
-
|
1232
|
+
git_str_truncate(buf, pfx - buf->ptr);
|
1227
1233
|
|
1228
1234
|
if (!buf->size)
|
1229
1235
|
break;
|
@@ -1232,15 +1238,15 @@ int git_buf_common_prefix(git_buf *buf, char *const *const strings, size_t count
|
|
1232
1238
|
return 0;
|
1233
1239
|
}
|
1234
1240
|
|
1235
|
-
int
|
1241
|
+
int git_str_is_binary(const git_str *buf)
|
1236
1242
|
{
|
1237
1243
|
const char *scan = buf->ptr, *end = buf->ptr + buf->size;
|
1238
|
-
|
1244
|
+
git_str_bom_t bom;
|
1239
1245
|
int printable = 0, nonprintable = 0;
|
1240
1246
|
|
1241
|
-
scan +=
|
1247
|
+
scan += git_str_detect_bom(&bom, buf);
|
1242
1248
|
|
1243
|
-
if (bom >
|
1249
|
+
if (bom > GIT_STR_BOM_UTF8)
|
1244
1250
|
return 1;
|
1245
1251
|
|
1246
1252
|
while (scan < end) {
|
@@ -1260,17 +1266,17 @@ int git_buf_is_binary(const git_buf *buf)
|
|
1260
1266
|
return ((printable >> 7) < nonprintable);
|
1261
1267
|
}
|
1262
1268
|
|
1263
|
-
int
|
1269
|
+
int git_str_contains_nul(const git_str *buf)
|
1264
1270
|
{
|
1265
1271
|
return (memchr(buf->ptr, '\0', buf->size) != NULL);
|
1266
1272
|
}
|
1267
1273
|
|
1268
|
-
int
|
1274
|
+
int git_str_detect_bom(git_str_bom_t *bom, const git_str *buf)
|
1269
1275
|
{
|
1270
1276
|
const char *ptr;
|
1271
1277
|
size_t len;
|
1272
1278
|
|
1273
|
-
*bom =
|
1279
|
+
*bom = GIT_STR_BOM_NONE;
|
1274
1280
|
/* need at least 2 bytes to look for any BOM */
|
1275
1281
|
if (buf->size < 2)
|
1276
1282
|
return 0;
|
@@ -1281,19 +1287,19 @@ int git_buf_detect_bom(git_buf_bom_t *bom, const git_buf *buf)
|
|
1281
1287
|
switch (*ptr++) {
|
1282
1288
|
case 0:
|
1283
1289
|
if (len >= 4 && ptr[0] == 0 && ptr[1] == '\xFE' && ptr[2] == '\xFF') {
|
1284
|
-
*bom =
|
1290
|
+
*bom = GIT_STR_BOM_UTF32_BE;
|
1285
1291
|
return 4;
|
1286
1292
|
}
|
1287
1293
|
break;
|
1288
1294
|
case '\xEF':
|
1289
1295
|
if (len >= 3 && ptr[0] == '\xBB' && ptr[1] == '\xBF') {
|
1290
|
-
*bom =
|
1296
|
+
*bom = GIT_STR_BOM_UTF8;
|
1291
1297
|
return 3;
|
1292
1298
|
}
|
1293
1299
|
break;
|
1294
1300
|
case '\xFE':
|
1295
1301
|
if (*ptr == '\xFF') {
|
1296
|
-
*bom =
|
1302
|
+
*bom = GIT_STR_BOM_UTF16_BE;
|
1297
1303
|
return 2;
|
1298
1304
|
}
|
1299
1305
|
break;
|
@@ -1301,10 +1307,10 @@ int git_buf_detect_bom(git_buf_bom_t *bom, const git_buf *buf)
|
|
1301
1307
|
if (*ptr != '\xFE')
|
1302
1308
|
break;
|
1303
1309
|
if (len >= 4 && ptr[1] == 0 && ptr[2] == 0) {
|
1304
|
-
*bom =
|
1310
|
+
*bom = GIT_STR_BOM_UTF32_LE;
|
1305
1311
|
return 4;
|
1306
1312
|
} else {
|
1307
|
-
*bom =
|
1313
|
+
*bom = GIT_STR_BOM_UTF16_LE;
|
1308
1314
|
return 2;
|
1309
1315
|
}
|
1310
1316
|
break;
|
@@ -1315,8 +1321,8 @@ int git_buf_detect_bom(git_buf_bom_t *bom, const git_buf *buf)
|
|
1315
1321
|
return 0;
|
1316
1322
|
}
|
1317
1323
|
|
1318
|
-
bool
|
1319
|
-
|
1324
|
+
bool git_str_gather_text_stats(
|
1325
|
+
git_str_text_stats *stats, const git_str *buf, bool skip_bom)
|
1320
1326
|
{
|
1321
1327
|
const char *scan = buf->ptr, *end = buf->ptr + buf->size;
|
1322
1328
|
int skip;
|
@@ -1324,7 +1330,7 @@ bool git_buf_gather_text_stats(
|
|
1324
1330
|
memset(stats, 0, sizeof(*stats));
|
1325
1331
|
|
1326
1332
|
/* BOM detection */
|
1327
|
-
skip =
|
1333
|
+
skip = git_str_detect_bom(&stats->bom, buf);
|
1328
1334
|
if (skip_bom)
|
1329
1335
|
scan += skip;
|
1330
1336
|
|