rugged 0.27.7 → 0.27.10
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/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +99 -51
- data/vendor/libgit2/COPYING +28 -0
- data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
- data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
- data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
- data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
- data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
- data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
- data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
- data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
- data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
- data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
- data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
- data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
- data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
- data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
- data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
- data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
- data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
- data/vendor/libgit2/deps/pcre/COPYING +5 -0
- data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
- data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
- data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
- data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
- data/vendor/libgit2/deps/pcre/config.h.in +57 -0
- data/vendor/libgit2/deps/pcre/pcre.h +641 -0
- data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
- data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
- data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
- data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
- data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
- data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
- data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
- data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
- data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
- data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
- data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
- data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
- data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
- data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
- data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
- data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
- data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
- data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
- data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
- data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
- data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
- data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
- data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
- data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
- data/vendor/libgit2/deps/pcre/ucp.h +224 -0
- data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
- data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/zlib/COPYING +27 -0
- data/vendor/libgit2/deps/zlib/adler32.c +0 -7
- data/vendor/libgit2/deps/zlib/crc32.c +0 -7
- data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
- data/vendor/libgit2/include/git2/apply.h +149 -0
- data/vendor/libgit2/include/git2/attr.h +20 -13
- data/vendor/libgit2/include/git2/blame.h +4 -4
- data/vendor/libgit2/include/git2/blob.h +44 -12
- data/vendor/libgit2/include/git2/buffer.h +20 -26
- data/vendor/libgit2/include/git2/cert.h +135 -0
- data/vendor/libgit2/include/git2/checkout.h +53 -21
- data/vendor/libgit2/include/git2/cherrypick.h +3 -3
- data/vendor/libgit2/include/git2/clone.h +5 -5
- data/vendor/libgit2/include/git2/commit.h +25 -3
- data/vendor/libgit2/include/git2/common.h +35 -10
- data/vendor/libgit2/include/git2/config.h +29 -19
- data/vendor/libgit2/include/git2/cred.h +308 -0
- data/vendor/libgit2/include/git2/deprecated.h +493 -0
- data/vendor/libgit2/include/git2/describe.h +4 -4
- data/vendor/libgit2/include/git2/diff.h +177 -135
- data/vendor/libgit2/include/git2/errors.h +53 -46
- data/vendor/libgit2/include/git2/filter.h +8 -0
- data/vendor/libgit2/include/git2/index.h +74 -52
- data/vendor/libgit2/include/git2/indexer.h +76 -6
- data/vendor/libgit2/include/git2/merge.h +25 -10
- data/vendor/libgit2/include/git2/net.h +0 -5
- data/vendor/libgit2/include/git2/notes.h +1 -1
- data/vendor/libgit2/include/git2/object.h +17 -29
- data/vendor/libgit2/include/git2/odb.h +12 -11
- data/vendor/libgit2/include/git2/odb_backend.h +10 -9
- data/vendor/libgit2/include/git2/oid.h +2 -2
- data/vendor/libgit2/include/git2/pack.h +14 -3
- data/vendor/libgit2/include/git2/proxy.h +5 -3
- data/vendor/libgit2/include/git2/rebase.h +46 -2
- data/vendor/libgit2/include/git2/refs.h +34 -16
- data/vendor/libgit2/include/git2/remote.h +111 -14
- data/vendor/libgit2/include/git2/repository.h +69 -34
- data/vendor/libgit2/include/git2/revert.h +1 -1
- data/vendor/libgit2/include/git2/revwalk.h +7 -7
- data/vendor/libgit2/include/git2/signature.h +2 -2
- data/vendor/libgit2/include/git2/stash.h +5 -5
- data/vendor/libgit2/include/git2/status.h +26 -17
- data/vendor/libgit2/include/git2/submodule.h +23 -6
- data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
- data/vendor/libgit2/include/git2/sys/commit.h +1 -1
- data/vendor/libgit2/include/git2/sys/config.h +13 -13
- data/vendor/libgit2/include/git2/sys/cred.h +90 -0
- data/vendor/libgit2/include/git2/sys/filter.h +6 -6
- data/vendor/libgit2/include/git2/sys/merge.h +3 -3
- data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
- data/vendor/libgit2/include/git2/sys/path.h +14 -5
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
- data/vendor/libgit2/include/git2/sys/repository.h +5 -1
- data/vendor/libgit2/include/git2/sys/stream.h +92 -12
- data/vendor/libgit2/include/git2/sys/transport.h +129 -83
- data/vendor/libgit2/include/git2/tag.h +13 -4
- data/vendor/libgit2/include/git2/trace.h +2 -2
- data/vendor/libgit2/include/git2/transport.h +11 -311
- data/vendor/libgit2/include/git2/tree.h +4 -4
- data/vendor/libgit2/include/git2/types.h +25 -106
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2/worktree.h +5 -5
- data/vendor/libgit2/include/git2.h +4 -0
- data/vendor/libgit2/src/CMakeLists.txt +104 -235
- data/vendor/libgit2/src/alloc.c +14 -18
- data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
- data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
- data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
- data/vendor/libgit2/src/annotated_commit.c +18 -11
- data/vendor/libgit2/src/apply.c +535 -28
- data/vendor/libgit2/src/apply.h +3 -1
- data/vendor/libgit2/src/array.h +2 -2
- data/vendor/libgit2/src/attr.c +77 -71
- data/vendor/libgit2/src/attr_file.c +203 -117
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +49 -51
- data/vendor/libgit2/src/attrcache.h +2 -1
- data/vendor/libgit2/src/blame.c +38 -18
- data/vendor/libgit2/src/blame.h +1 -1
- data/vendor/libgit2/src/blame_git.c +29 -15
- data/vendor/libgit2/src/blob.c +123 -37
- data/vendor/libgit2/src/blob.h +19 -2
- data/vendor/libgit2/src/branch.c +47 -23
- data/vendor/libgit2/src/buf_text.c +7 -6
- data/vendor/libgit2/src/buffer.c +60 -53
- data/vendor/libgit2/src/cache.c +38 -45
- data/vendor/libgit2/src/cache.h +3 -3
- data/vendor/libgit2/src/cc-compat.h +20 -3
- data/vendor/libgit2/src/checkout.c +77 -67
- data/vendor/libgit2/src/cherrypick.c +12 -6
- data/vendor/libgit2/src/clone.c +36 -14
- data/vendor/libgit2/src/clone.h +4 -0
- data/vendor/libgit2/src/commit.c +103 -48
- data/vendor/libgit2/src/commit.h +7 -0
- data/vendor/libgit2/src/commit_list.c +36 -78
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +24 -90
- data/vendor/libgit2/src/config.c +203 -176
- data/vendor/libgit2/src/config.h +8 -20
- data/vendor/libgit2/src/config_backend.h +96 -0
- data/vendor/libgit2/src/config_cache.c +41 -35
- data/vendor/libgit2/src/config_entries.c +229 -0
- data/vendor/libgit2/src/config_entries.h +24 -0
- data/vendor/libgit2/src/config_file.c +422 -680
- data/vendor/libgit2/src/config_mem.c +220 -0
- data/vendor/libgit2/src/config_parse.c +96 -68
- data/vendor/libgit2/src/config_parse.h +15 -14
- data/vendor/libgit2/src/config_snapshot.c +206 -0
- data/vendor/libgit2/src/crlf.c +219 -196
- data/vendor/libgit2/src/delta.c +25 -18
- data/vendor/libgit2/src/describe.c +42 -41
- data/vendor/libgit2/src/diff.c +52 -67
- data/vendor/libgit2/src/diff.h +2 -1
- data/vendor/libgit2/src/diff_driver.c +44 -46
- data/vendor/libgit2/src/diff_file.c +16 -14
- data/vendor/libgit2/src/diff_file.h +1 -1
- data/vendor/libgit2/src/diff_generate.c +158 -103
- data/vendor/libgit2/src/diff_generate.h +3 -3
- data/vendor/libgit2/src/diff_parse.c +4 -4
- data/vendor/libgit2/src/diff_print.c +34 -22
- data/vendor/libgit2/src/diff_stats.c +22 -7
- data/vendor/libgit2/src/diff_tform.c +18 -16
- data/vendor/libgit2/src/diff_xdiff.c +3 -3
- data/vendor/libgit2/src/errors.c +51 -39
- data/vendor/libgit2/src/errors.h +81 -0
- data/vendor/libgit2/src/features.h.in +9 -3
- data/vendor/libgit2/src/fetch.c +8 -3
- data/vendor/libgit2/src/fetchhead.c +12 -12
- data/vendor/libgit2/src/filebuf.c +28 -32
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/filter.c +47 -33
- data/vendor/libgit2/src/filter.h +0 -10
- data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
- data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
- data/vendor/libgit2/src/global.c +35 -55
- data/vendor/libgit2/src/global.h +0 -2
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
- data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
- data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
- data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
- data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
- data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
- data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
- data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
- data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
- data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
- data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
- data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
- data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
- data/vendor/libgit2/src/hash/sha1.h +38 -0
- data/vendor/libgit2/src/hash.c +61 -0
- data/vendor/libgit2/src/hash.h +20 -21
- data/vendor/libgit2/src/hashsig.c +5 -5
- data/vendor/libgit2/src/idxmap.c +107 -61
- data/vendor/libgit2/src/idxmap.h +153 -31
- data/vendor/libgit2/src/ignore.c +38 -42
- data/vendor/libgit2/src/index.c +264 -199
- data/vendor/libgit2/src/index.h +7 -1
- data/vendor/libgit2/src/indexer.c +338 -167
- data/vendor/libgit2/src/integer.h +71 -26
- data/vendor/libgit2/src/iterator.c +134 -62
- data/vendor/libgit2/src/iterator.h +15 -0
- data/vendor/libgit2/src/mailmap.c +8 -8
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +137 -93
- data/vendor/libgit2/src/merge_driver.c +11 -11
- data/vendor/libgit2/src/merge_file.c +2 -2
- data/vendor/libgit2/src/mwindow.c +24 -29
- data/vendor/libgit2/src/mwindow.h +4 -4
- data/vendor/libgit2/src/net.c +184 -0
- data/vendor/libgit2/src/net.h +36 -0
- data/vendor/libgit2/src/netops.c +55 -156
- data/vendor/libgit2/src/netops.h +3 -23
- data/vendor/libgit2/src/notes.c +14 -9
- data/vendor/libgit2/src/object.c +120 -69
- data/vendor/libgit2/src/object.h +22 -9
- data/vendor/libgit2/src/object_api.c +8 -8
- data/vendor/libgit2/src/odb.c +111 -88
- data/vendor/libgit2/src/odb.h +8 -7
- data/vendor/libgit2/src/odb_loose.c +58 -47
- data/vendor/libgit2/src/odb_mempack.c +21 -34
- data/vendor/libgit2/src/odb_pack.c +17 -13
- data/vendor/libgit2/src/offmap.c +53 -35
- data/vendor/libgit2/src/offmap.h +108 -21
- data/vendor/libgit2/src/oid.c +12 -7
- data/vendor/libgit2/src/oidmap.c +49 -47
- data/vendor/libgit2/src/oidmap.h +101 -24
- data/vendor/libgit2/src/pack-objects.c +87 -86
- data/vendor/libgit2/src/pack-objects.h +2 -8
- data/vendor/libgit2/src/pack.c +94 -96
- data/vendor/libgit2/src/pack.h +16 -18
- data/vendor/libgit2/src/parse.c +17 -4
- data/vendor/libgit2/src/parse.h +3 -3
- data/vendor/libgit2/src/patch.c +3 -3
- data/vendor/libgit2/src/patch_generate.c +18 -18
- data/vendor/libgit2/src/patch_parse.c +147 -79
- data/vendor/libgit2/src/path.c +207 -62
- data/vendor/libgit2/src/path.h +14 -0
- data/vendor/libgit2/src/pathspec.c +18 -18
- data/vendor/libgit2/src/pool.c +26 -22
- data/vendor/libgit2/src/pool.h +7 -7
- data/vendor/libgit2/src/posix.c +10 -10
- data/vendor/libgit2/src/posix.h +12 -1
- data/vendor/libgit2/src/proxy.c +8 -3
- data/vendor/libgit2/src/push.c +35 -29
- data/vendor/libgit2/src/push.h +2 -1
- data/vendor/libgit2/src/reader.c +265 -0
- data/vendor/libgit2/src/reader.h +107 -0
- data/vendor/libgit2/src/rebase.c +97 -38
- data/vendor/libgit2/src/refdb.c +15 -3
- data/vendor/libgit2/src/refdb_fs.c +318 -222
- data/vendor/libgit2/src/reflog.c +13 -15
- data/vendor/libgit2/src/refs.c +122 -89
- data/vendor/libgit2/src/refs.h +5 -3
- data/vendor/libgit2/src/refspec.c +27 -33
- data/vendor/libgit2/src/regexp.c +221 -0
- data/vendor/libgit2/src/regexp.h +97 -0
- data/vendor/libgit2/src/remote.c +229 -178
- data/vendor/libgit2/src/remote.h +11 -2
- data/vendor/libgit2/src/repository.c +227 -172
- data/vendor/libgit2/src/repository.h +52 -40
- data/vendor/libgit2/src/reset.c +7 -7
- data/vendor/libgit2/src/revert.c +11 -6
- data/vendor/libgit2/src/revparse.c +46 -46
- data/vendor/libgit2/src/revwalk.c +89 -54
- data/vendor/libgit2/src/revwalk.h +20 -0
- data/vendor/libgit2/src/settings.c +22 -9
- data/vendor/libgit2/src/signature.c +15 -13
- data/vendor/libgit2/src/sortedcache.c +22 -36
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +56 -76
- data/vendor/libgit2/src/status.c +27 -21
- data/vendor/libgit2/src/stream.h +17 -2
- data/vendor/libgit2/src/streams/mbedtls.c +100 -80
- data/vendor/libgit2/src/streams/mbedtls.h +5 -2
- data/vendor/libgit2/src/streams/openssl.c +93 -81
- data/vendor/libgit2/src/streams/openssl.h +5 -2
- data/vendor/libgit2/src/streams/registry.c +118 -0
- data/vendor/libgit2/src/streams/registry.h +19 -0
- data/vendor/libgit2/src/streams/socket.c +55 -30
- data/vendor/libgit2/src/streams/stransport.c +57 -32
- data/vendor/libgit2/src/streams/stransport.h +5 -0
- data/vendor/libgit2/src/streams/tls.c +48 -20
- data/vendor/libgit2/src/streams/tls.h +12 -4
- data/vendor/libgit2/src/strmap.c +47 -74
- data/vendor/libgit2/src/strmap.h +108 -33
- data/vendor/libgit2/src/submodule.c +190 -169
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +25 -15
- data/vendor/libgit2/src/tag.c +39 -26
- data/vendor/libgit2/src/tag.h +2 -1
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +2 -2
- data/vendor/libgit2/src/trailer.c +46 -32
- data/vendor/libgit2/src/transaction.c +30 -29
- data/vendor/libgit2/src/transport.c +3 -3
- data/vendor/libgit2/src/transports/auth.c +14 -10
- data/vendor/libgit2/src/transports/auth.h +10 -3
- data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
- data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
- data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
- data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
- data/vendor/libgit2/src/transports/cred.c +24 -24
- data/vendor/libgit2/src/transports/git.c +25 -30
- data/vendor/libgit2/src/transports/http.c +871 -335
- data/vendor/libgit2/src/transports/http.h +2 -0
- data/vendor/libgit2/src/transports/local.c +28 -28
- data/vendor/libgit2/src/transports/smart.c +64 -46
- data/vendor/libgit2/src/transports/smart.h +5 -6
- data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
- data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
- data/vendor/libgit2/src/transports/ssh.c +76 -65
- data/vendor/libgit2/src/transports/winhttp.c +328 -319
- data/vendor/libgit2/src/tree-cache.c +21 -14
- data/vendor/libgit2/src/tree.c +119 -112
- data/vendor/libgit2/src/tree.h +1 -0
- data/vendor/libgit2/src/unix/map.c +3 -3
- data/vendor/libgit2/src/unix/posix.h +1 -11
- data/vendor/libgit2/src/userdiff.h +3 -1
- data/vendor/libgit2/src/util.c +154 -93
- data/vendor/libgit2/src/util.h +19 -23
- data/vendor/libgit2/src/vector.c +15 -10
- data/vendor/libgit2/src/wildmatch.c +320 -0
- data/vendor/libgit2/src/wildmatch.h +23 -0
- data/vendor/libgit2/src/win32/dir.c +3 -3
- data/vendor/libgit2/src/win32/findfile.c +1 -1
- data/vendor/libgit2/src/win32/map.c +9 -11
- data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
- data/vendor/libgit2/src/win32/path_w32.c +113 -9
- data/vendor/libgit2/src/win32/path_w32.h +18 -29
- data/vendor/libgit2/src/win32/posix.h +1 -4
- data/vendor/libgit2/src/win32/posix_w32.c +69 -44
- data/vendor/libgit2/src/win32/precompiled.h +0 -2
- data/vendor/libgit2/src/win32/thread.c +5 -10
- data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
- data/vendor/libgit2/src/win32/w32_common.h +39 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
- data/vendor/libgit2/src/win32/w32_stack.c +6 -11
- data/vendor/libgit2/src/win32/w32_stack.h +3 -3
- data/vendor/libgit2/src/win32/w32_util.c +27 -64
- data/vendor/libgit2/src/win32/w32_util.h +5 -49
- data/vendor/libgit2/src/worktree.c +44 -30
- data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
- data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
- data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
- data/vendor/libgit2/src/zstream.c +4 -4
- metadata +115 -38
- data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
- data/vendor/libgit2/deps/regex/config.h +0 -7
- data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
- data/vendor/libgit2/deps/regex/regex.c +0 -92
- data/vendor/libgit2/deps/regex/regex.h +0 -582
- data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
- data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
- data/vendor/libgit2/deps/regex/regexec.c +0 -4369
- data/vendor/libgit2/include/git2/inttypes.h +0 -309
- data/vendor/libgit2/include/git2/sys/time.h +0 -31
- data/vendor/libgit2/libgit2.pc.in +0 -13
- data/vendor/libgit2/src/config_file.h +0 -73
- data/vendor/libgit2/src/fnmatch.c +0 -248
- data/vendor/libgit2/src/fnmatch.h +0 -48
- data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
- data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
- data/vendor/libgit2/src/streams/curl.c +0 -385
- data/vendor/libgit2/src/streams/curl.h +0 -17
- /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
data/vendor/libgit2/src/offmap.c
CHANGED
|
@@ -7,11 +7,24 @@
|
|
|
7
7
|
|
|
8
8
|
#include "offmap.h"
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
#define kmalloc git__malloc
|
|
11
|
+
#define kcalloc git__calloc
|
|
12
|
+
#define krealloc git__realloc
|
|
13
|
+
#define kreallocarray git__reallocarray
|
|
14
|
+
#define kfree git__free
|
|
15
|
+
#include "khash.h"
|
|
11
16
|
|
|
12
|
-
|
|
17
|
+
__KHASH_TYPE(off, off64_t, void *)
|
|
18
|
+
|
|
19
|
+
__KHASH_IMPL(off, static kh_inline, off64_t, void *, 1, kh_int64_hash_func, kh_int64_hash_equal)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
int git_offmap_new(git_offmap **out)
|
|
13
23
|
{
|
|
14
|
-
|
|
24
|
+
*out = kh_init(off);
|
|
25
|
+
GIT_ERROR_CHECK_ALLOC(*out);
|
|
26
|
+
|
|
27
|
+
return 0;
|
|
15
28
|
}
|
|
16
29
|
|
|
17
30
|
void git_offmap_free(git_offmap *map)
|
|
@@ -24,60 +37,65 @@ void git_offmap_clear(git_offmap *map)
|
|
|
24
37
|
kh_clear(off, map);
|
|
25
38
|
}
|
|
26
39
|
|
|
27
|
-
size_t
|
|
40
|
+
size_t git_offmap_size(git_offmap *map)
|
|
28
41
|
{
|
|
29
42
|
return kh_size(map);
|
|
30
43
|
}
|
|
31
44
|
|
|
32
|
-
|
|
45
|
+
void *git_offmap_get(git_offmap *map, const off64_t key)
|
|
33
46
|
{
|
|
34
|
-
|
|
47
|
+
size_t idx = kh_get(off, map, key);
|
|
48
|
+
if (idx == kh_end(map) || !kh_exist(map, idx))
|
|
49
|
+
return NULL;
|
|
50
|
+
return kh_val(map, idx);
|
|
35
51
|
}
|
|
36
52
|
|
|
37
|
-
int
|
|
53
|
+
int git_offmap_set(git_offmap *map, const off64_t key, void *value)
|
|
38
54
|
{
|
|
39
|
-
|
|
40
|
-
|
|
55
|
+
size_t idx;
|
|
56
|
+
int rval;
|
|
41
57
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
58
|
+
idx = kh_put(off, map, key, &rval);
|
|
59
|
+
if (rval < 0)
|
|
60
|
+
return -1;
|
|
46
61
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return kh_val(map, idx);
|
|
50
|
-
}
|
|
62
|
+
if (rval == 0)
|
|
63
|
+
kh_key(map, idx) = key;
|
|
51
64
|
|
|
52
|
-
void git_offmap_set_value_at(git_offmap *map, size_t idx, void *value)
|
|
53
|
-
{
|
|
54
65
|
kh_val(map, idx) = value;
|
|
66
|
+
|
|
67
|
+
return 0;
|
|
55
68
|
}
|
|
56
69
|
|
|
57
|
-
|
|
70
|
+
int git_offmap_delete(git_offmap *map, const off64_t key)
|
|
58
71
|
{
|
|
72
|
+
khiter_t idx = kh_get(off, map, key);
|
|
73
|
+
if (idx == kh_end(map))
|
|
74
|
+
return GIT_ENOTFOUND;
|
|
59
75
|
kh_del(off, map, idx);
|
|
76
|
+
return 0;
|
|
60
77
|
}
|
|
61
78
|
|
|
62
|
-
int
|
|
79
|
+
int git_offmap_exists(git_offmap *map, const off64_t key)
|
|
63
80
|
{
|
|
64
|
-
return
|
|
81
|
+
return kh_get(off, map, key) != kh_end(map);
|
|
65
82
|
}
|
|
66
83
|
|
|
67
|
-
void
|
|
84
|
+
int git_offmap_iterate(void **value, git_offmap *map, size_t *iter, off64_t *key)
|
|
68
85
|
{
|
|
69
|
-
|
|
86
|
+
size_t i = *iter;
|
|
70
87
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
kh_key(map, idx) = key;
|
|
74
|
-
kh_val(map, idx) = value;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
88
|
+
while (i < map->n_buckets && !kh_exist(map, i))
|
|
89
|
+
i++;
|
|
77
90
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (
|
|
82
|
-
|
|
91
|
+
if (i >= map->n_buckets)
|
|
92
|
+
return GIT_ITEROVER;
|
|
93
|
+
|
|
94
|
+
if (key)
|
|
95
|
+
*key = kh_key(map, i);
|
|
96
|
+
if (value)
|
|
97
|
+
*value = kh_value(map, i);
|
|
98
|
+
*iter = ++i;
|
|
99
|
+
|
|
100
|
+
return 0;
|
|
83
101
|
}
|
data/vendor/libgit2/src/offmap.h
CHANGED
|
@@ -11,36 +11,123 @@
|
|
|
11
11
|
|
|
12
12
|
#include "git2/types.h"
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
#define krealloc git__realloc
|
|
17
|
-
#define kreallocarray git__reallocarray
|
|
18
|
-
#define kfree git__free
|
|
19
|
-
#include "khash.h"
|
|
14
|
+
/** A map with `off64_t`s as key. */
|
|
15
|
+
typedef struct kh_off_s git_offmap;
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Allocate a new `off64_t` map.
|
|
19
|
+
*
|
|
20
|
+
* @param out Pointer to the map that shall be allocated.
|
|
21
|
+
* @return 0 on success, an error code if allocation has failed.
|
|
22
|
+
*/
|
|
23
|
+
int git_offmap_new(git_offmap **out);
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Free memory associated with the map.
|
|
27
|
+
*
|
|
28
|
+
* Note that this function will _not_ free values added to this
|
|
29
|
+
* map.
|
|
30
|
+
*
|
|
31
|
+
* @param map Pointer to the map that is to be free'd. May be
|
|
32
|
+
* `NULL`.
|
|
33
|
+
*/
|
|
25
34
|
void git_offmap_free(git_offmap *map);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Clear all entries from the map.
|
|
38
|
+
*
|
|
39
|
+
* This function will remove all entries from the associated map.
|
|
40
|
+
* Memory associated with it will not be released, though.
|
|
41
|
+
*
|
|
42
|
+
* @param map Pointer to the map that shall be cleared. May be
|
|
43
|
+
* `NULL`.
|
|
44
|
+
*/
|
|
26
45
|
void git_offmap_clear(git_offmap *map);
|
|
27
46
|
|
|
28
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Return the number of elements in the map.
|
|
49
|
+
*
|
|
50
|
+
* @parameter map map containing the elements
|
|
51
|
+
* @return number of elements in the map
|
|
52
|
+
*/
|
|
53
|
+
size_t git_offmap_size(git_offmap *map);
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Return value associated with the given key.
|
|
57
|
+
*
|
|
58
|
+
* @param map map to search key in
|
|
59
|
+
* @param key key to search for
|
|
60
|
+
* @return value associated with the given key or NULL if the key was not found
|
|
61
|
+
*/
|
|
62
|
+
void *git_offmap_get(git_offmap *map, const off64_t key);
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Set the entry for key to value.
|
|
66
|
+
*
|
|
67
|
+
* If the map has no corresponding entry for the given key, a new
|
|
68
|
+
* entry will be created with the given value. If an entry exists
|
|
69
|
+
* already, its value will be updated to match the given value.
|
|
70
|
+
*
|
|
71
|
+
* @param map map to create new entry in
|
|
72
|
+
* @param key key to set
|
|
73
|
+
* @param value value to associate the key with; may be NULL
|
|
74
|
+
* @return zero if the key was successfully set, a negative error
|
|
75
|
+
* code otherwise
|
|
76
|
+
*/
|
|
77
|
+
int git_offmap_set(git_offmap *map, const off64_t key, void *value);
|
|
29
78
|
|
|
30
|
-
|
|
31
|
-
|
|
79
|
+
/**
|
|
80
|
+
* Delete an entry from the map.
|
|
81
|
+
*
|
|
82
|
+
* Delete the given key and its value from the map. If no such
|
|
83
|
+
* key exists, this will do nothing.
|
|
84
|
+
*
|
|
85
|
+
* @param map map to delete key in
|
|
86
|
+
* @param key key to delete
|
|
87
|
+
* @return `0` if the key has been deleted, GIT_ENOTFOUND if no
|
|
88
|
+
* such key was found, a negative code in case of an
|
|
89
|
+
* error
|
|
90
|
+
*/
|
|
91
|
+
int git_offmap_delete(git_offmap *map, const off64_t key);
|
|
32
92
|
|
|
33
|
-
|
|
93
|
+
/**
|
|
94
|
+
* Check whether a key exists in the given map.
|
|
95
|
+
*
|
|
96
|
+
* @param map map to query for the key
|
|
97
|
+
* @param key key to search for
|
|
98
|
+
* @return 0 if the key has not been found, 1 otherwise
|
|
99
|
+
*/
|
|
100
|
+
int git_offmap_exists(git_offmap *map, const off64_t key);
|
|
34
101
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
102
|
+
/**
|
|
103
|
+
* Iterate over entries of the map.
|
|
104
|
+
*
|
|
105
|
+
* This functions allows to iterate over all key-value entries of
|
|
106
|
+
* the map. The current position is stored in the `iter` variable
|
|
107
|
+
* and should be initialized to `0` before the first call to this
|
|
108
|
+
* function.
|
|
109
|
+
*
|
|
110
|
+
* @param map map to iterate over
|
|
111
|
+
* @param value pointer to the variable where to store the current
|
|
112
|
+
* value. May be NULL.
|
|
113
|
+
* @param iter iterator storing the current position. Initialize
|
|
114
|
+
* with zero previous to the first call.
|
|
115
|
+
* @param key pointer to the variable where to store the current
|
|
116
|
+
* key. May be NULL.
|
|
117
|
+
* @return `0` if the next entry was correctly retrieved.
|
|
118
|
+
* GIT_ITEROVER if no entries are left. A negative error
|
|
119
|
+
* code otherwise.
|
|
120
|
+
*/
|
|
121
|
+
int git_offmap_iterate(void **value, git_offmap *map, size_t *iter, off64_t *key);
|
|
38
122
|
|
|
39
|
-
|
|
40
|
-
void
|
|
41
|
-
|
|
123
|
+
#define git_offmap_foreach(h, kvar, vvar, code) { size_t __i = 0; \
|
|
124
|
+
while (git_offmap_iterate((void **) &(vvar), h, &__i, &(kvar)) == 0) { \
|
|
125
|
+
code; \
|
|
126
|
+
} }
|
|
42
127
|
|
|
43
|
-
#define
|
|
44
|
-
|
|
128
|
+
#define git_offmap_foreach_value(h, vvar, code) { size_t __i = 0; \
|
|
129
|
+
while (git_offmap_iterate((void **) &(vvar), h, &__i, NULL) == 0) { \
|
|
130
|
+
code; \
|
|
131
|
+
} }
|
|
45
132
|
|
|
46
133
|
#endif
|
data/vendor/libgit2/src/oid.c
CHANGED
|
@@ -17,7 +17,7 @@ static char to_hex[] = "0123456789abcdef";
|
|
|
17
17
|
|
|
18
18
|
static int oid_error_invalid(const char *msg)
|
|
19
19
|
{
|
|
20
|
-
|
|
20
|
+
git_error_set(GIT_ERROR_INVALID, "unable to parse OID - %s", msg);
|
|
21
21
|
return -1;
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -237,7 +237,7 @@ int git_oid_streq(const git_oid *oid_a, const char *str)
|
|
|
237
237
|
return git_oid_strcmp(oid_a, str) == 0 ? 0 : -1;
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
-
int
|
|
240
|
+
int git_oid_is_zero(const git_oid *oid_a)
|
|
241
241
|
{
|
|
242
242
|
const unsigned char *a = oid_a->id;
|
|
243
243
|
unsigned int i;
|
|
@@ -247,6 +247,11 @@ int git_oid_iszero(const git_oid *oid_a)
|
|
|
247
247
|
return 1;
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
+
int git_oid_iszero(const git_oid *oid_a)
|
|
251
|
+
{
|
|
252
|
+
return git_oid_is_zero(oid_a);
|
|
253
|
+
}
|
|
254
|
+
|
|
250
255
|
typedef short node_index;
|
|
251
256
|
|
|
252
257
|
typedef union {
|
|
@@ -263,7 +268,7 @@ struct git_oid_shorten {
|
|
|
263
268
|
static int resize_trie(git_oid_shorten *self, size_t new_size)
|
|
264
269
|
{
|
|
265
270
|
self->nodes = git__reallocarray(self->nodes, new_size, sizeof(trie_node));
|
|
266
|
-
|
|
271
|
+
GIT_ERROR_CHECK_ALLOC(self->nodes);
|
|
267
272
|
|
|
268
273
|
if (new_size > self->size) {
|
|
269
274
|
memset(&self->nodes[self->size], 0x0, (new_size - self->size) * sizeof(trie_node));
|
|
@@ -381,7 +386,7 @@ int git_oid_shorten_add(git_oid_shorten *os, const char *text_oid)
|
|
|
381
386
|
node_index idx;
|
|
382
387
|
|
|
383
388
|
if (os->full) {
|
|
384
|
-
|
|
389
|
+
git_error_set(GIT_ERROR_INVALID, "unable to shorten OID - OID set full");
|
|
385
390
|
return -1;
|
|
386
391
|
}
|
|
387
392
|
|
|
@@ -396,7 +401,7 @@ int git_oid_shorten_add(git_oid_shorten *os, const char *text_oid)
|
|
|
396
401
|
trie_node *node;
|
|
397
402
|
|
|
398
403
|
if (c == -1) {
|
|
399
|
-
|
|
404
|
+
git_error_set(GIT_ERROR_INVALID, "unable to shorten OID - invalid hex value");
|
|
400
405
|
return -1;
|
|
401
406
|
}
|
|
402
407
|
|
|
@@ -411,7 +416,7 @@ int git_oid_shorten_add(git_oid_shorten *os, const char *text_oid)
|
|
|
411
416
|
node = push_leaf(os, idx, git__fromhex(tail[0]), &tail[1]);
|
|
412
417
|
if (node == NULL) {
|
|
413
418
|
if (os->full)
|
|
414
|
-
|
|
419
|
+
git_error_set(GIT_ERROR_INVALID, "unable to shorten OID - OID set full");
|
|
415
420
|
return -1;
|
|
416
421
|
}
|
|
417
422
|
}
|
|
@@ -419,7 +424,7 @@ int git_oid_shorten_add(git_oid_shorten *os, const char *text_oid)
|
|
|
419
424
|
if (node->children[c] == 0) {
|
|
420
425
|
if (push_leaf(os, idx, c, &text_oid[i + 1]) == NULL) {
|
|
421
426
|
if (os->full)
|
|
422
|
-
|
|
427
|
+
git_error_set(GIT_ERROR_INVALID, "unable to shorten OID - OID set full");
|
|
423
428
|
return -1;
|
|
424
429
|
}
|
|
425
430
|
break;
|
data/vendor/libgit2/src/oidmap.c
CHANGED
|
@@ -7,6 +7,15 @@
|
|
|
7
7
|
|
|
8
8
|
#include "oidmap.h"
|
|
9
9
|
|
|
10
|
+
#define kmalloc git__malloc
|
|
11
|
+
#define kcalloc git__calloc
|
|
12
|
+
#define krealloc git__realloc
|
|
13
|
+
#define kreallocarray git__reallocarray
|
|
14
|
+
#define kfree git__free
|
|
15
|
+
#include "khash.h"
|
|
16
|
+
|
|
17
|
+
__KHASH_TYPE(oid, const git_oid *, void *)
|
|
18
|
+
|
|
10
19
|
GIT_INLINE(khint_t) git_oidmap_hash(const git_oid *oid)
|
|
11
20
|
{
|
|
12
21
|
khint_t h;
|
|
@@ -16,9 +25,12 @@ GIT_INLINE(khint_t) git_oidmap_hash(const git_oid *oid)
|
|
|
16
25
|
|
|
17
26
|
__KHASH_IMPL(oid, static kh_inline, const git_oid *, void *, 1, git_oidmap_hash, git_oid_equal)
|
|
18
27
|
|
|
19
|
-
git_oidmap
|
|
28
|
+
int git_oidmap_new(git_oidmap **out)
|
|
20
29
|
{
|
|
21
|
-
|
|
30
|
+
*out = kh_init(oid);
|
|
31
|
+
GIT_ERROR_CHECK_ALLOC(*out);
|
|
32
|
+
|
|
33
|
+
return 0;
|
|
22
34
|
}
|
|
23
35
|
|
|
24
36
|
void git_oidmap_free(git_oidmap *map)
|
|
@@ -36,70 +48,60 @@ size_t git_oidmap_size(git_oidmap *map)
|
|
|
36
48
|
return kh_size(map);
|
|
37
49
|
}
|
|
38
50
|
|
|
39
|
-
|
|
51
|
+
void *git_oidmap_get(git_oidmap *map, const git_oid *key)
|
|
40
52
|
{
|
|
41
|
-
|
|
53
|
+
size_t idx = kh_get(oid, map, key);
|
|
54
|
+
if (idx == kh_end(map) || !kh_exist(map, idx))
|
|
55
|
+
return NULL;
|
|
56
|
+
return kh_val(map, idx);
|
|
42
57
|
}
|
|
43
58
|
|
|
44
|
-
int
|
|
59
|
+
int git_oidmap_set(git_oidmap *map, const git_oid *key, void *value)
|
|
45
60
|
{
|
|
46
|
-
|
|
47
|
-
|
|
61
|
+
size_t idx;
|
|
62
|
+
int rval;
|
|
48
63
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
64
|
+
idx = kh_put(oid, map, key, &rval);
|
|
65
|
+
if (rval < 0)
|
|
66
|
+
return -1;
|
|
53
67
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return kh_exist(map, idx);
|
|
57
|
-
}
|
|
68
|
+
if (rval == 0)
|
|
69
|
+
kh_key(map, idx) = key;
|
|
58
70
|
|
|
59
|
-
|
|
60
|
-
{
|
|
61
|
-
return kh_key(map, idx);
|
|
62
|
-
}
|
|
71
|
+
kh_val(map, idx) = value;
|
|
63
72
|
|
|
64
|
-
|
|
65
|
-
{
|
|
66
|
-
kh_key(map, idx) = key;
|
|
73
|
+
return 0;
|
|
67
74
|
}
|
|
68
75
|
|
|
69
|
-
|
|
76
|
+
int git_oidmap_delete(git_oidmap *map, const git_oid *key)
|
|
70
77
|
{
|
|
71
|
-
|
|
78
|
+
khiter_t idx = kh_get(oid, map, key);
|
|
79
|
+
if (idx == kh_end(map))
|
|
80
|
+
return GIT_ENOTFOUND;
|
|
81
|
+
kh_del(oid, map, idx);
|
|
82
|
+
return 0;
|
|
72
83
|
}
|
|
73
84
|
|
|
74
|
-
|
|
85
|
+
int git_oidmap_exists(git_oidmap *map, const git_oid *key)
|
|
75
86
|
{
|
|
76
|
-
|
|
87
|
+
return kh_get(oid, map, key) != kh_end(map);
|
|
77
88
|
}
|
|
78
89
|
|
|
79
|
-
void
|
|
90
|
+
int git_oidmap_iterate(void **value, git_oidmap *map, size_t *iter, const git_oid **key)
|
|
80
91
|
{
|
|
81
|
-
|
|
82
|
-
}
|
|
92
|
+
size_t i = *iter;
|
|
83
93
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return kh_put(oid, map, key, err);
|
|
87
|
-
}
|
|
94
|
+
while (i < map->n_buckets && !kh_exist(map, i))
|
|
95
|
+
i++;
|
|
88
96
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
khiter_t idx = kh_put(oid, map, key, rval);
|
|
97
|
+
if (i >= map->n_buckets)
|
|
98
|
+
return GIT_ITEROVER;
|
|
92
99
|
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
100
|
+
if (key)
|
|
101
|
+
*key = kh_key(map, i);
|
|
102
|
+
if (value)
|
|
103
|
+
*value = kh_value(map, i);
|
|
104
|
+
*iter = ++i;
|
|
99
105
|
|
|
100
|
-
|
|
101
|
-
{
|
|
102
|
-
khiter_t idx = git_oidmap_lookup_index(map, key);
|
|
103
|
-
if (git_oidmap_valid_index(map, idx))
|
|
104
|
-
git_oidmap_delete_at(map, idx);
|
|
106
|
+
return 0;
|
|
105
107
|
}
|
data/vendor/libgit2/src/oidmap.h
CHANGED
|
@@ -11,41 +11,118 @@
|
|
|
11
11
|
|
|
12
12
|
#include "git2/oid.h"
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
#define krealloc git__realloc
|
|
17
|
-
#define kreallocarray git__reallocarray
|
|
18
|
-
#define kfree git__free
|
|
19
|
-
#include "khash.h"
|
|
14
|
+
/** A map with `git_oid`s as key. */
|
|
15
|
+
typedef struct kh_oid_s git_oidmap;
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Allocate a new OID map.
|
|
19
|
+
*
|
|
20
|
+
* @param out Pointer to the map that shall be allocated.
|
|
21
|
+
* @return 0 on success, an error code if allocation has failed.
|
|
22
|
+
*/
|
|
23
|
+
int git_oidmap_new(git_oidmap **out);
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Free memory associated with the map.
|
|
27
|
+
*
|
|
28
|
+
* Note that this function will _not_ free values added to this
|
|
29
|
+
* map.
|
|
30
|
+
*
|
|
31
|
+
* @param map Pointer to the map that is to be free'd. May be
|
|
32
|
+
* `NULL`.
|
|
33
|
+
*/
|
|
25
34
|
void git_oidmap_free(git_oidmap *map);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Clear all entries from the map.
|
|
38
|
+
*
|
|
39
|
+
* This function will remove all entries from the associated map.
|
|
40
|
+
* Memory associated with it will not be released, though.
|
|
41
|
+
*
|
|
42
|
+
* @param map Pointer to the map that shall be cleared. May be
|
|
43
|
+
* `NULL`.
|
|
44
|
+
*/
|
|
26
45
|
void git_oidmap_clear(git_oidmap *map);
|
|
27
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Return the number of elements in the map.
|
|
49
|
+
*
|
|
50
|
+
* @parameter map map containing the elements
|
|
51
|
+
* @return number of elements in the map
|
|
52
|
+
*/
|
|
28
53
|
size_t git_oidmap_size(git_oidmap *map);
|
|
29
54
|
|
|
30
|
-
|
|
31
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Return value associated with the given key.
|
|
57
|
+
*
|
|
58
|
+
* @param map map to search key in
|
|
59
|
+
* @param key key to search for
|
|
60
|
+
* @return value associated with the given key or NULL if the key was not found
|
|
61
|
+
*/
|
|
62
|
+
void *git_oidmap_get(git_oidmap *map, const git_oid *key);
|
|
32
63
|
|
|
33
|
-
|
|
34
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Set the entry for key to value.
|
|
66
|
+
*
|
|
67
|
+
* If the map has no corresponding entry for the given key, a new
|
|
68
|
+
* entry will be created with the given value. If an entry exists
|
|
69
|
+
* already, its value will be updated to match the given value.
|
|
70
|
+
*
|
|
71
|
+
* @param map map to create new entry in
|
|
72
|
+
* @param key key to set
|
|
73
|
+
* @param value value to associate the key with; may be NULL
|
|
74
|
+
* @return zero if the key was successfully set, a negative error
|
|
75
|
+
* code otherwise
|
|
76
|
+
*/
|
|
77
|
+
int git_oidmap_set(git_oidmap *map, const git_oid *key, void *value);
|
|
35
78
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
79
|
+
/**
|
|
80
|
+
* Delete an entry from the map.
|
|
81
|
+
*
|
|
82
|
+
* Delete the given key and its value from the map. If no such
|
|
83
|
+
* key exists, this will do nothing.
|
|
84
|
+
*
|
|
85
|
+
* @param map map to delete key in
|
|
86
|
+
* @param key key to delete
|
|
87
|
+
* @return `0` if the key has been deleted, GIT_ENOTFOUND if no
|
|
88
|
+
* such key was found, a negative code in case of an
|
|
89
|
+
* error
|
|
90
|
+
*/
|
|
91
|
+
int git_oidmap_delete(git_oidmap *map, const git_oid *key);
|
|
41
92
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
93
|
+
/**
|
|
94
|
+
* Check whether a key exists in the given map.
|
|
95
|
+
*
|
|
96
|
+
* @param map map to query for the key
|
|
97
|
+
* @param key key to search for
|
|
98
|
+
* @return 0 if the key has not been found, 1 otherwise
|
|
99
|
+
*/
|
|
100
|
+
int git_oidmap_exists(git_oidmap *map, const git_oid *key);
|
|
45
101
|
|
|
46
|
-
|
|
102
|
+
/**
|
|
103
|
+
* Iterate over entries of the map.
|
|
104
|
+
*
|
|
105
|
+
* This functions allows to iterate over all key-value entries of
|
|
106
|
+
* the map. The current position is stored in the `iter` variable
|
|
107
|
+
* and should be initialized to `0` before the first call to this
|
|
108
|
+
* function.
|
|
109
|
+
*
|
|
110
|
+
* @param map map to iterate over
|
|
111
|
+
* @param value pointer to the variable where to store the current
|
|
112
|
+
* value. May be NULL.
|
|
113
|
+
* @param iter iterator storing the current position. Initialize
|
|
114
|
+
* with zero previous to the first call.
|
|
115
|
+
* @param key pointer to the variable where to store the current
|
|
116
|
+
* key. May be NULL.
|
|
117
|
+
* @return `0` if the next entry was correctly retrieved.
|
|
118
|
+
* GIT_ITEROVER if no entries are left. A negative error
|
|
119
|
+
* code otherwise.
|
|
120
|
+
*/
|
|
121
|
+
int git_oidmap_iterate(void **value, git_oidmap *map, size_t *iter, const git_oid **key);
|
|
47
122
|
|
|
48
|
-
#define
|
|
49
|
-
|
|
123
|
+
#define git_oidmap_foreach_value(h, vvar, code) { size_t __i = 0; \
|
|
124
|
+
while (git_oidmap_iterate((void **) &(vvar), h, &__i, NULL) == 0) { \
|
|
125
|
+
code; \
|
|
126
|
+
} }
|
|
50
127
|
|
|
51
128
|
#endif
|