rugged 1.6.3 → 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/ext/rugged/rugged_allocator.c +0 -54
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +25 -17
- data/vendor/libgit2/COPYING +195 -1
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +4 -4
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +34 -6
- data/vendor/libgit2/cmake/SelectHashes.cmake +32 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
- data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
- 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 +1 -1
- 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 +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
- 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 +1 -0
- 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/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/git-xdiff.h +4 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.c +19 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.c +3 -3
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xhistogram.c +7 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmerge.c +22 -20
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xpatience.c +21 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.c +13 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.c +18 -1
- data/vendor/libgit2/{src/libgit2 → 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 +5 -27
- data/vendor/libgit2/deps/zlib/crc32.c +94 -167
- data/vendor/libgit2/deps/zlib/deflate.c +358 -435
- data/vendor/libgit2/deps/zlib/deflate.h +41 -10
- data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
- data/vendor/libgit2/deps/zlib/infback.c +17 -30
- data/vendor/libgit2/deps/zlib/inffast.c +1 -4
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +36 -102
- 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 +287 -352
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +202 -202
- data/vendor/libgit2/deps/zlib/zutil.c +18 -44
- data/vendor/libgit2/deps/zlib/zutil.h +13 -33
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +27 -6
- data/vendor/libgit2/include/git2/attr.h +17 -4
- data/vendor/libgit2/include/git2/blame.h +133 -28
- data/vendor/libgit2/include/git2/blob.h +71 -28
- data/vendor/libgit2/include/git2/branch.h +22 -15
- data/vendor/libgit2/include/git2/buffer.h +6 -4
- data/vendor/libgit2/include/git2/cert.h +2 -1
- data/vendor/libgit2/include/git2/checkout.h +83 -32
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +25 -9
- data/vendor/libgit2/include/git2/commit.h +132 -3
- data/vendor/libgit2/include/git2/common.h +138 -56
- data/vendor/libgit2/include/git2/config.h +93 -23
- data/vendor/libgit2/include/git2/credential.h +30 -2
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +133 -3
- data/vendor/libgit2/include/git2/describe.h +13 -1
- data/vendor/libgit2/include/git2/diff.h +77 -9
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +49 -74
- data/vendor/libgit2/include/git2/filter.h +14 -7
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +3 -2
- data/vendor/libgit2/include/git2/ignore.h +10 -0
- data/vendor/libgit2/include/git2/index.h +100 -6
- data/vendor/libgit2/include/git2/indexer.h +21 -4
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +46 -1
- data/vendor/libgit2/include/git2/message.h +2 -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 +9 -8
- data/vendor/libgit2/include/git2/odb.h +91 -49
- data/vendor/libgit2/include/git2/odb_backend.h +80 -52
- data/vendor/libgit2/include/git2/oid.h +24 -25
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +13 -1
- data/vendor/libgit2/include/git2/patch.h +2 -3
- data/vendor/libgit2/include/git2/pathspec.h +9 -0
- data/vendor/libgit2/include/git2/proxy.h +10 -0
- data/vendor/libgit2/include/git2/rebase.h +9 -6
- data/vendor/libgit2/include/git2/refdb.h +2 -2
- data/vendor/libgit2/include/git2/reflog.h +3 -2
- data/vendor/libgit2/include/git2/refs.h +9 -6
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +112 -18
- data/vendor/libgit2/include/git2/repository.h +61 -15
- data/vendor/libgit2/include/git2/reset.h +16 -3
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +3 -3
- data/vendor/libgit2/include/git2/revwalk.h +3 -2
- data/vendor/libgit2/include/git2/signature.h +46 -1
- data/vendor/libgit2/include/git2/stash.h +17 -3
- data/vendor/libgit2/include/git2/status.h +10 -6
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -3
- data/vendor/libgit2/include/git2/submodule.h +20 -9
- 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 +109 -58
- 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 +7 -3
- 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 +8 -1
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +25 -2
- data/vendor/libgit2/include/git2/sys/transport.h +44 -5
- data/vendor/libgit2/include/git2/tag.h +3 -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 +16 -5
- data/vendor/libgit2/include/git2/types.h +19 -3
- data/vendor/libgit2/include/git2/version.h +44 -8
- data/vendor/libgit2/include/git2/worktree.h +19 -7
- data/vendor/libgit2/src/CMakeLists.txt +40 -15
- data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
- data/vendor/libgit2/src/cli/cmd.c +1 -1
- data/vendor/libgit2/src/cli/cmd.h +4 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
- data/vendor/libgit2/src/cli/cmd_clone.c +27 -13
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
- data/vendor/libgit2/src/cli/cmd_help.c +6 -7
- 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 +1 -1
- data/vendor/libgit2/src/cli/main.c +52 -24
- data/vendor/libgit2/src/cli/opt.c +29 -3
- data/vendor/libgit2/src/cli/opt.h +21 -3
- data/vendor/libgit2/src/cli/opt_usage.c +102 -33
- data/vendor/libgit2/src/cli/opt_usage.h +6 -1
- data/vendor/libgit2/src/cli/progress.c +60 -10
- data/vendor/libgit2/src/cli/progress.h +16 -4
- data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
- data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
- data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +27 -27
- data/vendor/libgit2/src/libgit2/annotated_commit.c +2 -2
- data/vendor/libgit2/src/libgit2/annotated_commit.h +1 -1
- data/vendor/libgit2/src/libgit2/apply.c +14 -16
- data/vendor/libgit2/src/libgit2/attr.c +30 -13
- data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
- data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
- data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
- data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
- data/vendor/libgit2/src/libgit2/blame.c +152 -59
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- data/vendor/libgit2/src/libgit2/blame_git.c +0 -1
- data/vendor/libgit2/src/libgit2/branch.c +2 -2
- data/vendor/libgit2/src/libgit2/cache.c +22 -17
- data/vendor/libgit2/src/libgit2/cache.h +7 -9
- data/vendor/libgit2/src/libgit2/checkout.c +34 -24
- data/vendor/libgit2/src/libgit2/checkout.h +0 -2
- data/vendor/libgit2/src/libgit2/cherrypick.c +4 -5
- data/vendor/libgit2/src/libgit2/clone.c +186 -164
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +123 -9
- data/vendor/libgit2/src/libgit2/commit_graph.c +166 -88
- data/vendor/libgit2/src/libgit2/commit_graph.h +21 -6
- data/vendor/libgit2/src/libgit2/commit_list.c +12 -5
- data/vendor/libgit2/src/libgit2/commit_list.h +1 -0
- data/vendor/libgit2/src/libgit2/config.c +394 -300
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/libgit2/config.h +9 -4
- data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
- data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
- data/vendor/libgit2/src/libgit2/config_file.c +113 -96
- 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 +194 -40
- data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
- data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
- data/vendor/libgit2/src/libgit2/describe.c +34 -31
- data/vendor/libgit2/src/libgit2/diff.c +17 -8
- data/vendor/libgit2/src/libgit2/diff.h +6 -6
- data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
- data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
- data/vendor/libgit2/src/libgit2/diff_file.c +7 -7
- data/vendor/libgit2/src/libgit2/diff_generate.c +39 -18
- data/vendor/libgit2/src/libgit2/diff_parse.c +22 -6
- data/vendor/libgit2/src/libgit2/diff_print.c +88 -13
- data/vendor/libgit2/src/libgit2/diff_tform.c +40 -12
- data/vendor/libgit2/src/libgit2/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/libgit2/email.c +5 -3
- data/vendor/libgit2/src/libgit2/fetch.c +39 -9
- data/vendor/libgit2/src/libgit2/fetch.h +0 -2
- data/vendor/libgit2/src/libgit2/fetchhead.c +11 -9
- data/vendor/libgit2/src/libgit2/filter.c +5 -5
- data/vendor/libgit2/src/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/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ident.c +3 -3
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +392 -208
- data/vendor/libgit2/src/libgit2/index.h +16 -3
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/libgit2/indexer.c +44 -41
- data/vendor/libgit2/src/libgit2/iterator.c +34 -13
- data/vendor/libgit2/src/libgit2/iterator.h +3 -0
- data/vendor/libgit2/src/libgit2/libgit2.c +155 -331
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +56 -46
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/merge_file.c +0 -2
- data/vendor/libgit2/src/libgit2/midx.c +86 -44
- data/vendor/libgit2/src/libgit2/midx.h +13 -3
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/notes.c +9 -8
- data/vendor/libgit2/src/libgit2/object.c +42 -16
- data/vendor/libgit2/src/libgit2/object.h +6 -0
- data/vendor/libgit2/src/libgit2/odb.c +16 -9
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +28 -7
- data/vendor/libgit2/src/libgit2/oid.c +35 -2
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/oidarray.c +49 -3
- data/vendor/libgit2/src/libgit2/oidarray.h +5 -1
- data/vendor/libgit2/src/libgit2/pack-objects.c +77 -43
- data/vendor/libgit2/src/libgit2/pack-objects.h +17 -6
- data/vendor/libgit2/src/libgit2/pack.c +33 -27
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/parse.c +7 -4
- data/vendor/libgit2/src/libgit2/parse.h +1 -1
- data/vendor/libgit2/src/libgit2/patch.h +7 -1
- data/vendor/libgit2/src/libgit2/patch_generate.c +24 -5
- data/vendor/libgit2/src/libgit2/patch_parse.c +18 -10
- data/vendor/libgit2/src/libgit2/path.c +1 -1
- data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
- data/vendor/libgit2/src/libgit2/push.c +81 -30
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/reader.c +1 -1
- data/vendor/libgit2/src/libgit2/rebase.c +72 -84
- data/vendor/libgit2/src/libgit2/refdb_fs.c +146 -70
- data/vendor/libgit2/src/libgit2/reflog.c +1 -2
- data/vendor/libgit2/src/libgit2/reflog.h +2 -0
- data/vendor/libgit2/src/libgit2/refs.c +34 -8
- data/vendor/libgit2/src/libgit2/refs.h +6 -1
- data/vendor/libgit2/src/libgit2/refspec.c +28 -1
- data/vendor/libgit2/src/libgit2/refspec.h +8 -0
- data/vendor/libgit2/src/libgit2/remote.c +136 -67
- data/vendor/libgit2/src/libgit2/remote.h +1 -0
- data/vendor/libgit2/src/libgit2/repository.c +789 -330
- data/vendor/libgit2/src/libgit2/repository.h +22 -3
- data/vendor/libgit2/src/libgit2/reset.c +2 -2
- data/vendor/libgit2/src/libgit2/revert.c +9 -13
- data/vendor/libgit2/src/libgit2/revparse.c +6 -3
- data/vendor/libgit2/src/libgit2/revwalk.c +36 -11
- data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
- data/vendor/libgit2/src/libgit2/settings.c +468 -0
- data/vendor/libgit2/src/libgit2/settings.h +6 -2
- data/vendor/libgit2/src/libgit2/signature.c +132 -15
- data/vendor/libgit2/src/libgit2/signature.h +0 -1
- data/vendor/libgit2/src/libgit2/stash.c +9 -8
- data/vendor/libgit2/src/libgit2/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -61
- data/vendor/libgit2/src/libgit2/streams/openssl.c +40 -23
- data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
- 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 +237 -51
- data/vendor/libgit2/src/libgit2/streams/socket.h +3 -1
- data/vendor/libgit2/src/libgit2/streams/stransport.c +79 -19
- data/vendor/libgit2/src/libgit2/streams/tls.c +5 -0
- data/vendor/libgit2/src/libgit2/submodule.c +106 -63
- data/vendor/libgit2/src/libgit2/submodule.h +9 -10
- data/vendor/libgit2/src/libgit2/tag.c +1 -1
- data/vendor/libgit2/src/libgit2/trailer.c +6 -6
- data/vendor/libgit2/src/libgit2/transaction.c +26 -20
- data/vendor/libgit2/src/libgit2/transaction.h +4 -1
- data/vendor/libgit2/src/libgit2/transport.c +4 -1
- data/vendor/libgit2/src/libgit2/transports/auth.h +1 -2
- data/vendor/libgit2/src/libgit2/transports/{auth_negotiate.c → auth_gssapi.c} +32 -32
- data/vendor/libgit2/src/libgit2/transports/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/auth_ntlm.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/{auth_ntlm.c → auth_ntlmclient.c} +12 -12
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/git.c +7 -8
- data/vendor/libgit2/src/libgit2/transports/http.c +8 -4
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +117 -72
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/libgit2/transports/local.c +21 -11
- data/vendor/libgit2/src/libgit2/transports/smart.c +50 -32
- data/vendor/libgit2/src/libgit2/transports/smart.h +26 -9
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +139 -18
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +209 -57
- data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
- 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/libgit2/transports/ssh_libssh2.c +1126 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/libgit2/transports/winhttp.c +48 -21
- data/vendor/libgit2/src/libgit2/tree-cache.c +26 -16
- data/vendor/libgit2/src/libgit2/tree-cache.h +5 -3
- data/vendor/libgit2/src/libgit2/tree.c +35 -27
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +39 -27
- data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
- data/vendor/libgit2/src/util/alloc.c +69 -7
- data/vendor/libgit2/src/util/alloc.h +34 -9
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
- data/vendor/libgit2/src/util/allocators/failalloc.c +0 -60
- data/vendor/libgit2/src/util/allocators/failalloc.h +0 -6
- data/vendor/libgit2/src/util/allocators/stdalloc.c +2 -115
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +0 -68
- data/vendor/libgit2/src/util/array.h +24 -18
- data/vendor/libgit2/src/util/cc-compat.h +4 -0
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/util/date.c +22 -14
- data/vendor/libgit2/src/util/date.h +12 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
- data/vendor/libgit2/src/util/filebuf.c +6 -1
- data/vendor/libgit2/src/util/filebuf.h +19 -6
- data/vendor/libgit2/src/util/fs_path.c +16 -5
- data/vendor/libgit2/src/util/fs_path.h +23 -0
- data/vendor/libgit2/src/util/futils.c +14 -10
- data/vendor/libgit2/src/util/futils.h +13 -4
- data/vendor/libgit2/src/util/git2_features.h.in +21 -4
- data/vendor/libgit2/src/util/git2_util.h +6 -0
- data/vendor/libgit2/src/util/hash/openssl.c +152 -0
- data/vendor/libgit2/src/util/hash/openssl.h +17 -1
- data/vendor/libgit2/src/util/hash/sha.h +4 -1
- data/vendor/libgit2/src/util/hashmap.h +424 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/util/integer.h +3 -1
- data/vendor/libgit2/src/util/net.c +318 -161
- data/vendor/libgit2/src/util/net.h +27 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -0
- data/vendor/libgit2/src/util/posix.c +54 -0
- data/vendor/libgit2/src/util/posix.h +22 -0
- data/vendor/libgit2/src/util/pqueue.h +1 -1
- data/vendor/libgit2/src/util/process.h +222 -0
- data/vendor/libgit2/src/util/rand.c +6 -10
- data/vendor/libgit2/src/util/regexp.c +1 -1
- data/vendor/libgit2/src/util/sortedcache.c +14 -13
- data/vendor/libgit2/src/util/sortedcache.h +3 -3
- data/vendor/libgit2/src/util/staticstr.h +66 -0
- data/vendor/libgit2/src/util/str.c +2 -2
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/util/unix/posix.h +0 -2
- data/vendor/libgit2/src/util/unix/process.c +629 -0
- data/vendor/libgit2/src/util/unix/realpath.c +23 -5
- data/vendor/libgit2/src/util/util.c +17 -12
- data/vendor/libgit2/src/util/util.h +28 -54
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/error.c +1 -1
- data/vendor/libgit2/src/util/win32/path_w32.c +8 -8
- data/vendor/libgit2/src/util/win32/posix_w32.c +30 -7
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- data/vendor/libgit2/src/util/win32/utf-conv.c +73 -75
- data/vendor/libgit2/src/util/win32/utf-conv.h +81 -14
- data/vendor/libgit2/src/util/win32/w32_util.c +1 -1
- metadata +72 -49
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +0 -17
- 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/libgit2/config_entries.c +0 -237
- data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
- data/vendor/libgit2/src/libgit2/errors.c +0 -238
- data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
- data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
- data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
- data/vendor/libgit2/src/libgit2/netops.c +0 -124
- data/vendor/libgit2/src/libgit2/netops.h +0 -68
- data/vendor/libgit2/src/libgit2/offmap.c +0 -101
- data/vendor/libgit2/src/libgit2/offmap.h +0 -133
- data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
- data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
- data/vendor/libgit2/src/libgit2/threadstate.c +0 -84
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -24
- data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
- data/vendor/libgit2/src/util/khash.h +0 -615
- data/vendor/libgit2/src/util/strmap.c +0 -100
- data/vendor/libgit2/src/util/strmap.h +0 -131
- /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiff.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xinclude.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xtypes.h +0 -0
@@ -9,6 +9,17 @@
|
|
9
9
|
#ifndef PRIVATE_UTIL_H__
|
10
10
|
#define PRIVATE_UTIL_H__
|
11
11
|
|
12
|
+
#include <stddef.h>
|
13
|
+
#include <stdint.h>
|
14
|
+
|
15
|
+
#if defined(_MSC_VER)
|
16
|
+
# define NTLM_INLINE(type) static __inline type
|
17
|
+
#elif defined(__GNUC__)
|
18
|
+
# define NTLM_INLINE(type) static __inline__ type
|
19
|
+
#else
|
20
|
+
# define NTLM_INLINE(type) static type
|
21
|
+
#endif
|
22
|
+
|
12
23
|
extern void ntlm_memzero(void *data, size_t size);
|
13
24
|
extern uint64_t ntlm_htonll(uint64_t value);
|
14
25
|
|
@@ -19,13 +19,13 @@ THE BASIC LIBRARY FUNCTIONS
|
|
19
19
|
---------------------------
|
20
20
|
|
21
21
|
Written by: Philip Hazel
|
22
|
-
Email local part:
|
23
|
-
Email domain:
|
22
|
+
Email local part: Philip.Hazel
|
23
|
+
Email domain: gmail.com
|
24
24
|
|
25
25
|
University of Cambridge Computing Service,
|
26
26
|
Cambridge, England.
|
27
27
|
|
28
|
-
Copyright (c) 1997-
|
28
|
+
Copyright (c) 1997-2021 University of Cambridge
|
29
29
|
All rights reserved.
|
30
30
|
|
31
31
|
|
@@ -36,7 +36,7 @@ Written by: Zoltan Herczeg
|
|
36
36
|
Email local part: hzmester
|
37
37
|
Email domain: freemail.hu
|
38
38
|
|
39
|
-
Copyright(c) 2010-
|
39
|
+
Copyright(c) 2010-2021 Zoltan Herczeg
|
40
40
|
All rights reserved.
|
41
41
|
|
42
42
|
|
@@ -47,7 +47,7 @@ Written by: Zoltan Herczeg
|
|
47
47
|
Email local part: hzmester
|
48
48
|
Email domain: freemail.hu
|
49
49
|
|
50
|
-
Copyright(c) 2009-
|
50
|
+
Copyright(c) 2009-2021 Zoltan Herczeg
|
51
51
|
All rights reserved.
|
52
52
|
|
53
53
|
|
@@ -42,9 +42,9 @@ POSSIBILITY OF SUCH DAMAGE.
|
|
42
42
|
/* The current PCRE version information. */
|
43
43
|
|
44
44
|
#define PCRE_MAJOR 8
|
45
|
-
#define PCRE_MINOR
|
45
|
+
#define PCRE_MINOR 45
|
46
46
|
#define PCRE_PRERELEASE
|
47
|
-
#define PCRE_DATE
|
47
|
+
#define PCRE_DATE 2021-06-15
|
48
48
|
|
49
49
|
#define PCRE_EXP_DECL extern
|
50
50
|
|
@@ -6,7 +6,7 @@
|
|
6
6
|
and semantics are as close as possible to those of the Perl 5 language.
|
7
7
|
|
8
8
|
Written by Philip Hazel
|
9
|
-
Copyright (c) 1997-
|
9
|
+
Copyright (c) 1997-2021 University of Cambridge
|
10
10
|
|
11
11
|
-----------------------------------------------------------------------------
|
12
12
|
Redistribution and use in source and binary forms, with or without
|
@@ -9104,6 +9104,8 @@ pcre_uchar cworkspace[COMPILE_WORK_SIZE];
|
|
9104
9104
|
similar way to cworkspace, it can be expanded using malloc() if necessary. */
|
9105
9105
|
|
9106
9106
|
named_group named_groups[NAMED_GROUP_LIST_SIZE];
|
9107
|
+
cd->named_groups = named_groups;
|
9108
|
+
cd->named_group_list_size = NAMED_GROUP_LIST_SIZE;
|
9107
9109
|
|
9108
9110
|
/* Set this early so that early errors get offset 0. */
|
9109
9111
|
|
@@ -9377,8 +9379,6 @@ cd->hwm = cworkspace;
|
|
9377
9379
|
cd->iscondassert = FALSE;
|
9378
9380
|
cd->start_workspace = cworkspace;
|
9379
9381
|
cd->workspace_size = COMPILE_WORK_SIZE;
|
9380
|
-
cd->named_groups = named_groups;
|
9381
|
-
cd->named_group_list_size = NAMED_GROUP_LIST_SIZE;
|
9382
9382
|
cd->start_pattern = (const pcre_uchar *)pattern;
|
9383
9383
|
cd->end_pattern = (const pcre_uchar *)(pattern + STRLEN_UC((const pcre_uchar *)pattern));
|
9384
9384
|
cd->req_varyopt = 0;
|
@@ -9489,6 +9489,7 @@ if (cd->names_found > 0)
|
|
9489
9489
|
add_name(cd, ng->name, ng->length, ng->number);
|
9490
9490
|
if (cd->named_group_list_size > NAMED_GROUP_LIST_SIZE)
|
9491
9491
|
(PUBL(free))((void *)cd->named_groups);
|
9492
|
+
cd->named_group_list_size = 0; /* So we don't free it twice */
|
9492
9493
|
}
|
9493
9494
|
|
9494
9495
|
/* Set up a starting, non-extracting bracket, then compile the expression. On
|
@@ -9639,6 +9640,8 @@ if (errorcode != 0)
|
|
9639
9640
|
{
|
9640
9641
|
(PUBL(free))(re);
|
9641
9642
|
PCRE_EARLY_ERROR_RETURN:
|
9643
|
+
if (cd->named_group_list_size > NAMED_GROUP_LIST_SIZE)
|
9644
|
+
(PUBL(free))((void *)cd->named_groups);
|
9642
9645
|
*erroroffset = (int)(ptr - (const pcre_uchar *)pattern);
|
9643
9646
|
PCRE_EARLY_ERROR_RETURN2:
|
9644
9647
|
*errorptr = find_error_text(errorcode);
|
@@ -6,7 +6,7 @@
|
|
6
6
|
and semantics are as close as possible to those of the Perl 5 language.
|
7
7
|
|
8
8
|
Written by Philip Hazel
|
9
|
-
Copyright (c) 1997-
|
9
|
+
Copyright (c) 1997-2021 University of Cambridge
|
10
10
|
|
11
11
|
-----------------------------------------------------------------------------
|
12
12
|
Redistribution and use in source and binary forms, with or without
|
@@ -758,7 +758,7 @@ for (;;)
|
|
758
758
|
md->mark = NULL; /* In case previously set by assertion */
|
759
759
|
RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode] + ecode[1], offset_top, md,
|
760
760
|
eptrb, RM55);
|
761
|
-
if ((rrc == MATCH_MATCH || rrc == MATCH_ACCEPT) &&
|
761
|
+
if ((rrc == MATCH_MATCH || rrc == MATCH_ACCEPT || rrc == MATCH_KETRPOS) &&
|
762
762
|
md->mark == NULL) md->mark = ecode + 2;
|
763
763
|
|
764
764
|
/* A return of MATCH_SKIP_ARG means that matching failed at SKIP with an
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
file(GLOB SRC_XDIFF "*.c" "*.h")
|
3
|
+
list(SORT SRC_XDIFF)
|
4
|
+
|
5
|
+
add_library(xdiff OBJECT ${SRC_XDIFF})
|
6
|
+
target_include_directories(xdiff SYSTEM PRIVATE
|
7
|
+
"${PROJECT_SOURCE_DIR}/include"
|
8
|
+
"${PROJECT_SOURCE_DIR}/src/util"
|
9
|
+
"${PROJECT_BINARY_DIR}/src/util"
|
10
|
+
${LIBGIT2_SYSTEM_INCLUDES}
|
11
|
+
${LIBGIT2_DEPENDENCY_INCLUDES})
|
12
|
+
|
13
|
+
# the xdiff dependency is not (yet) warning-free, disable warnings
|
14
|
+
# as errors for the xdiff sources until we've sorted them out
|
15
|
+
if(MSVC)
|
16
|
+
set_source_files_properties(xdiffi.c PROPERTIES COMPILE_FLAGS -WX-)
|
17
|
+
set_source_files_properties(xemit.c PROPERTIES COMPILE_FLAGS -WX-)
|
18
|
+
set_source_files_properties(xhistogram.c PROPERTIES COMPILE_FLAGS -WX-)
|
19
|
+
set_source_files_properties(xmerge.c PROPERTIES COMPILE_FLAGS -WX-)
|
20
|
+
set_source_files_properties(xutils.c PROPERTIES COMPILE_FLAGS -WX-)
|
21
|
+
set_source_files_properties(xpatience.c PROPERTIES COMPILE_FLAGS -WX-)
|
22
|
+
else()
|
23
|
+
set_source_files_properties(xdiffi.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
|
24
|
+
set_source_files_properties(xemit.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
|
25
|
+
set_source_files_properties(xhistogram.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
26
|
+
set_source_files_properties(xutils.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
27
|
+
set_source_files_properties(xpatience.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
28
|
+
endif()
|
@@ -27,11 +27,14 @@
|
|
27
27
|
# endif
|
28
28
|
#endif
|
29
29
|
|
30
|
+
#define XDL_UNUSED GIT_UNUSED_ARG
|
31
|
+
|
30
32
|
#define xdl_malloc(x) git__malloc(x)
|
33
|
+
#define xdl_calloc(n, sz) git__calloc(n, sz)
|
31
34
|
#define xdl_free(ptr) git__free(ptr)
|
32
35
|
#define xdl_realloc(ptr, x) git__realloc(ptr, x)
|
33
36
|
|
34
|
-
#define XDL_BUG(msg) GIT_ASSERT(msg)
|
37
|
+
#define XDL_BUG(msg) GIT_ASSERT(!msg)
|
35
38
|
|
36
39
|
#define xdl_regex_t git_regexp
|
37
40
|
#define xdl_regmatch_t git_regmatch
|
@@ -315,16 +315,19 @@ int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
|
315
315
|
long *kvd, *kvdf, *kvdb;
|
316
316
|
xdalgoenv_t xenv;
|
317
317
|
diffdata_t dd1, dd2;
|
318
|
+
int res;
|
318
319
|
|
319
|
-
if (
|
320
|
-
return
|
321
|
-
|
322
|
-
if (XDF_DIFF_ALG(xpp->flags) == XDF_HISTOGRAM_DIFF)
|
323
|
-
return xdl_do_histogram_diff(mf1, mf2, xpp, xe);
|
320
|
+
if (xdl_prepare_env(mf1, mf2, xpp, xe) < 0)
|
321
|
+
return -1;
|
324
322
|
|
325
|
-
if (
|
323
|
+
if (XDF_DIFF_ALG(xpp->flags) == XDF_PATIENCE_DIFF) {
|
324
|
+
res = xdl_do_patience_diff(xpp, xe);
|
325
|
+
goto out;
|
326
|
+
}
|
326
327
|
|
327
|
-
|
328
|
+
if (XDF_DIFF_ALG(xpp->flags) == XDF_HISTOGRAM_DIFF) {
|
329
|
+
res = xdl_do_histogram_diff(xpp, xe);
|
330
|
+
goto out;
|
328
331
|
}
|
329
332
|
|
330
333
|
/*
|
@@ -334,7 +337,7 @@ int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
|
334
337
|
* One is to store the forward path and one to store the backward path.
|
335
338
|
*/
|
336
339
|
ndiags = xe->xdf1.nreff + xe->xdf2.nreff + 3;
|
337
|
-
if (!(kvd
|
340
|
+
if (!XDL_ALLOC_ARRAY(kvd, 2 * ndiags + 2)) {
|
338
341
|
|
339
342
|
xdl_free_env(xe);
|
340
343
|
return -1;
|
@@ -359,17 +362,15 @@ int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
|
359
362
|
dd2.rchg = xe->xdf2.rchg;
|
360
363
|
dd2.rindex = xe->xdf2.rindex;
|
361
364
|
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
xdl_free(kvd);
|
366
|
-
xdl_free_env(xe);
|
367
|
-
return -1;
|
368
|
-
}
|
369
|
-
|
365
|
+
res = xdl_recs_cmp(&dd1, 0, dd1.nrec, &dd2, 0, dd2.nrec,
|
366
|
+
kvdf, kvdb, (xpp->flags & XDF_NEED_MINIMAL) != 0,
|
367
|
+
&xenv);
|
370
368
|
xdl_free(kvd);
|
369
|
+
out:
|
370
|
+
if (res < 0)
|
371
|
+
xdl_free_env(xe);
|
371
372
|
|
372
|
-
return
|
373
|
+
return res;
|
373
374
|
}
|
374
375
|
|
375
376
|
|
@@ -972,7 +973,7 @@ void xdl_free_script(xdchange_t *xscr) {
|
|
972
973
|
}
|
973
974
|
}
|
974
975
|
|
975
|
-
static int xdl_call_hunk_func(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
|
976
|
+
static int xdl_call_hunk_func(xdfenv_t *xe XDL_UNUSED, xdchange_t *xscr, xdemitcb_t *ecb,
|
976
977
|
xdemitconf_t const *xecfg)
|
977
978
|
{
|
978
979
|
xdchange_t *xch, *xche;
|
@@ -56,9 +56,7 @@ int xdl_build_script(xdfenv_t *xe, xdchange_t **xscr);
|
|
56
56
|
void xdl_free_script(xdchange_t *xscr);
|
57
57
|
int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
|
58
58
|
xdemitconf_t const *xecfg);
|
59
|
-
int xdl_do_patience_diff(
|
60
|
-
|
61
|
-
int xdl_do_histogram_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
62
|
-
xdfenv_t *env);
|
59
|
+
int xdl_do_patience_diff(xpparam_t const *xpp, xdfenv_t *env);
|
60
|
+
int xdl_do_histogram_diff(xpparam_t const *xpp, xdfenv_t *env);
|
63
61
|
|
64
62
|
#endif /* #if !defined(XDIFFI_H) */
|
@@ -65,7 +65,7 @@ xdchange_t *xdl_get_hunk(xdchange_t **xscr, xdemitconf_t const *xecfg)
|
|
65
65
|
*xscr = xch;
|
66
66
|
}
|
67
67
|
|
68
|
-
if (
|
68
|
+
if (!*xscr)
|
69
69
|
return NULL;
|
70
70
|
|
71
71
|
lxch = *xscr;
|
@@ -95,7 +95,7 @@ xdchange_t *xdl_get_hunk(xdchange_t **xscr, xdemitconf_t const *xecfg)
|
|
95
95
|
}
|
96
96
|
|
97
97
|
|
98
|
-
static long def_ff(const char *rec, long len, char *buf, long sz
|
98
|
+
static long def_ff(const char *rec, long len, char *buf, long sz)
|
99
99
|
{
|
100
100
|
if (len > 0 &&
|
101
101
|
(isalpha((unsigned char)*rec) || /* identifier? */
|
@@ -117,7 +117,7 @@ static long match_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri,
|
|
117
117
|
const char *rec;
|
118
118
|
long len = xdl_get_rec(xdf, ri, &rec);
|
119
119
|
if (!xecfg->find_func)
|
120
|
-
return def_ff(rec, len, buf, sz
|
120
|
+
return def_ff(rec, len, buf, sz);
|
121
121
|
return xecfg->find_func(rec, len, buf, sz, xecfg->find_func_priv);
|
122
122
|
}
|
123
123
|
|
@@ -251,7 +251,7 @@ static int find_lcs(xpparam_t const *xpp, xdfenv_t *env,
|
|
251
251
|
int line1, int count1, int line2, int count2)
|
252
252
|
{
|
253
253
|
int b_ptr;
|
254
|
-
int
|
254
|
+
int ret = -1;
|
255
255
|
struct histindex index;
|
256
256
|
|
257
257
|
memset(&index, 0, sizeof(index));
|
@@ -265,23 +265,16 @@ static int find_lcs(xpparam_t const *xpp, xdfenv_t *env,
|
|
265
265
|
index.rcha.head = NULL;
|
266
266
|
|
267
267
|
index.table_bits = xdl_hashbits(count1);
|
268
|
-
|
269
|
-
|
270
|
-
if (!(index.records = (struct record **) xdl_malloc(sz)))
|
268
|
+
index.records_size = 1 << index.table_bits;
|
269
|
+
if (!XDL_CALLOC_ARRAY(index.records, index.records_size))
|
271
270
|
goto cleanup;
|
272
|
-
memset(index.records, 0, sz);
|
273
271
|
|
274
|
-
|
275
|
-
|
276
|
-
if (!(index.line_map = (struct record **) xdl_malloc(sz)))
|
272
|
+
index.line_map_size = count1;
|
273
|
+
if (!XDL_CALLOC_ARRAY(index.line_map, index.line_map_size))
|
277
274
|
goto cleanup;
|
278
|
-
memset(index.line_map, 0, sz);
|
279
275
|
|
280
|
-
|
281
|
-
sz *= sizeof(unsigned int);
|
282
|
-
if (!(index.next_ptrs = (unsigned int *) xdl_malloc(sz)))
|
276
|
+
if (!XDL_CALLOC_ARRAY(index.next_ptrs, index.line_map_size))
|
283
277
|
goto cleanup;
|
284
|
-
memset(index.next_ptrs, 0, sz);
|
285
278
|
|
286
279
|
/* lines / 4 + 1 comes from xprepare.c:xdl_prepare_ctx() */
|
287
280
|
if (xdl_cha_init(&index.rcha, sizeof(struct record), count1 / 4 + 1) < 0)
|
@@ -369,12 +362,8 @@ out:
|
|
369
362
|
return result;
|
370
363
|
}
|
371
364
|
|
372
|
-
int xdl_do_histogram_diff(
|
373
|
-
xpparam_t const *xpp, xdfenv_t *env)
|
365
|
+
int xdl_do_histogram_diff(xpparam_t const *xpp, xdfenv_t *env)
|
374
366
|
{
|
375
|
-
if (xdl_prepare_env(file1, file2, xpp, env) < 0)
|
376
|
-
return -1;
|
377
|
-
|
378
367
|
return histogram_diff(xpp, env,
|
379
368
|
env->xdf1.dstart + 1, env->xdf1.dend - env->xdf1.dstart + 1,
|
380
369
|
env->xdf2.dstart + 1, env->xdf2.dend - env->xdf2.dstart + 1);
|
@@ -34,7 +34,6 @@
|
|
34
34
|
#define XDL_ADDBITS(v,b) ((v) + ((v) >> (b)))
|
35
35
|
#define XDL_MASKBITS(b) ((1UL << (b)) - 1)
|
36
36
|
#define XDL_HASHLONG(v,b) (XDL_ADDBITS((unsigned long)(v), b) & XDL_MASKBITS(b))
|
37
|
-
#define XDL_PTRFREE(p) do { if (p) { xdl_free(p); (p) = NULL; } } while (0)
|
38
37
|
#define XDL_LE32_PUT(p, v) \
|
39
38
|
do { \
|
40
39
|
unsigned char *__p = (unsigned char *) (p); \
|
@@ -50,5 +49,23 @@ do { \
|
|
50
49
|
((unsigned long) __p[2]) << 16 | ((unsigned long) __p[3]) << 24; \
|
51
50
|
} while (0)
|
52
51
|
|
52
|
+
/* Allocate an array of nr elements, returns NULL on failure */
|
53
|
+
#define XDL_ALLOC_ARRAY(p, nr) \
|
54
|
+
((p) = SIZE_MAX / sizeof(*(p)) >= (size_t)(nr) \
|
55
|
+
? xdl_malloc((nr) * sizeof(*(p))) \
|
56
|
+
: NULL)
|
57
|
+
|
58
|
+
/* Allocate an array of nr zeroed out elements, returns NULL on failure */
|
59
|
+
#define XDL_CALLOC_ARRAY(p, nr) ((p) = xdl_calloc(nr, sizeof(*(p))))
|
60
|
+
|
61
|
+
/*
|
62
|
+
* Ensure array p can accommodate at least nr elements, growing the
|
63
|
+
* array and updating alloc (which is the number of allocated
|
64
|
+
* elements) as necessary. Frees p and returns -1 on failure, returns
|
65
|
+
* 0 on success
|
66
|
+
*/
|
67
|
+
#define XDL_ALLOC_GROW(p, nr, alloc) \
|
68
|
+
(-!((nr) <= (alloc) || \
|
69
|
+
((p) = xdl_alloc_grow_helper((p), (nr), &(alloc), sizeof(*(p))))))
|
53
70
|
|
54
71
|
#endif /* #if !defined(XMACROS_H) */
|
@@ -684,42 +684,42 @@ static int xdl_do_merge(xdfenv_t *xe1, xdchange_t *xscr1,
|
|
684
684
|
int xdl_merge(mmfile_t *orig, mmfile_t *mf1, mmfile_t *mf2,
|
685
685
|
xmparam_t const *xmp, mmbuffer_t *result)
|
686
686
|
{
|
687
|
-
xdchange_t *xscr1, *xscr2;
|
687
|
+
xdchange_t *xscr1 = NULL, *xscr2 = NULL;
|
688
688
|
xdfenv_t xe1, xe2;
|
689
|
-
int status;
|
689
|
+
int status = -1;
|
690
690
|
xpparam_t const *xpp = &xmp->xpp;
|
691
691
|
|
692
692
|
result->ptr = NULL;
|
693
693
|
result->size = 0;
|
694
694
|
|
695
|
-
if (xdl_do_diff(orig, mf1, xpp, &xe1) < 0)
|
695
|
+
if (xdl_do_diff(orig, mf1, xpp, &xe1) < 0)
|
696
696
|
return -1;
|
697
|
-
|
698
|
-
if (xdl_do_diff(orig, mf2, xpp, &xe2) < 0)
|
699
|
-
|
700
|
-
|
701
|
-
}
|
697
|
+
|
698
|
+
if (xdl_do_diff(orig, mf2, xpp, &xe2) < 0)
|
699
|
+
goto free_xe1; /* avoid double free of xe2 */
|
700
|
+
|
702
701
|
if (xdl_change_compact(&xe1.xdf1, &xe1.xdf2, xpp->flags) < 0 ||
|
703
702
|
xdl_change_compact(&xe1.xdf2, &xe1.xdf1, xpp->flags) < 0 ||
|
704
|
-
xdl_build_script(&xe1, &xscr1) < 0)
|
705
|
-
|
706
|
-
|
707
|
-
}
|
703
|
+
xdl_build_script(&xe1, &xscr1) < 0)
|
704
|
+
goto out;
|
705
|
+
|
708
706
|
if (xdl_change_compact(&xe2.xdf1, &xe2.xdf2, xpp->flags) < 0 ||
|
709
707
|
xdl_change_compact(&xe2.xdf2, &xe2.xdf1, xpp->flags) < 0 ||
|
710
|
-
xdl_build_script(&xe2, &xscr2) < 0)
|
711
|
-
|
712
|
-
|
713
|
-
xdl_free_env(&xe2);
|
714
|
-
return -1;
|
715
|
-
}
|
716
|
-
status = 0;
|
708
|
+
xdl_build_script(&xe2, &xscr2) < 0)
|
709
|
+
goto out;
|
710
|
+
|
717
711
|
if (!xscr1) {
|
718
712
|
result->ptr = xdl_malloc(mf2->size);
|
713
|
+
if (!result->ptr)
|
714
|
+
goto out;
|
715
|
+
status = 0;
|
719
716
|
memcpy(result->ptr, mf2->ptr, mf2->size);
|
720
717
|
result->size = mf2->size;
|
721
718
|
} else if (!xscr2) {
|
722
719
|
result->ptr = xdl_malloc(mf1->size);
|
720
|
+
if (!result->ptr)
|
721
|
+
goto out;
|
722
|
+
status = 0;
|
723
723
|
memcpy(result->ptr, mf1->ptr, mf1->size);
|
724
724
|
result->size = mf1->size;
|
725
725
|
} else {
|
@@ -727,11 +727,13 @@ int xdl_merge(mmfile_t *orig, mmfile_t *mf1, mmfile_t *mf2,
|
|
727
727
|
&xe2, xscr2,
|
728
728
|
xmp, result);
|
729
729
|
}
|
730
|
+
out:
|
730
731
|
xdl_free_script(xscr1);
|
731
732
|
xdl_free_script(xscr2);
|
732
733
|
|
733
|
-
xdl_free_env(&xe1);
|
734
734
|
xdl_free_env(&xe2);
|
735
|
+
free_xe1:
|
736
|
+
xdl_free_env(&xe1);
|
735
737
|
|
736
738
|
return status;
|
737
739
|
}
|
@@ -69,7 +69,6 @@ struct hashmap {
|
|
69
69
|
} *entries, *first, *last;
|
70
70
|
/* were common records found? */
|
71
71
|
unsigned long has_matches;
|
72
|
-
mmfile_t *file1, *file2;
|
73
72
|
xdfenv_t *env;
|
74
73
|
xpparam_t const *xpp;
|
75
74
|
};
|
@@ -139,23 +138,17 @@ static void insert_record(xpparam_t const *xpp, int line, struct hashmap *map,
|
|
139
138
|
*
|
140
139
|
* It is assumed that env has been prepared using xdl_prepare().
|
141
140
|
*/
|
142
|
-
static int fill_hashmap(
|
143
|
-
xpparam_t const *xpp, xdfenv_t *env,
|
141
|
+
static int fill_hashmap(xpparam_t const *xpp, xdfenv_t *env,
|
144
142
|
struct hashmap *result,
|
145
143
|
int line1, int count1, int line2, int count2)
|
146
144
|
{
|
147
|
-
result->file1 = file1;
|
148
|
-
result->file2 = file2;
|
149
145
|
result->xpp = xpp;
|
150
146
|
result->env = env;
|
151
147
|
|
152
148
|
/* We know exactly how large we want the hash map */
|
153
149
|
result->alloc = count1 * 2;
|
154
|
-
result->entries
|
155
|
-
xdl_malloc(result->alloc * sizeof(struct entry));
|
156
|
-
if (!result->entries)
|
150
|
+
if (!XDL_CALLOC_ARRAY(result->entries, result->alloc))
|
157
151
|
return -1;
|
158
|
-
memset(result->entries, 0, result->alloc * sizeof(struct entry));
|
159
152
|
|
160
153
|
/* First, fill with entries from the first file */
|
161
154
|
while (count1--)
|
@@ -198,9 +191,9 @@ static int binary_search(struct entry **sequence, int longest,
|
|
198
191
|
* item per sequence length: the sequence with the smallest last
|
199
192
|
* element (in terms of line2).
|
200
193
|
*/
|
201
|
-
static
|
194
|
+
static int find_longest_common_sequence(struct hashmap *map, struct entry **res)
|
202
195
|
{
|
203
|
-
struct entry **sequence
|
196
|
+
struct entry **sequence;
|
204
197
|
int longest = 0, i;
|
205
198
|
struct entry *entry;
|
206
199
|
|
@@ -211,6 +204,9 @@ static struct entry *find_longest_common_sequence(struct hashmap *map)
|
|
211
204
|
*/
|
212
205
|
int anchor_i = -1;
|
213
206
|
|
207
|
+
if (!XDL_ALLOC_ARRAY(sequence, map->nr))
|
208
|
+
return -1;
|
209
|
+
|
214
210
|
for (entry = map->first; entry; entry = entry->next) {
|
215
211
|
if (!entry->line2 || entry->line2 == NON_UNIQUE)
|
216
212
|
continue;
|
@@ -230,8 +226,9 @@ static struct entry *find_longest_common_sequence(struct hashmap *map)
|
|
230
226
|
|
231
227
|
/* No common unique lines were found */
|
232
228
|
if (!longest) {
|
229
|
+
*res = NULL;
|
233
230
|
xdl_free(sequence);
|
234
|
-
return
|
231
|
+
return 0;
|
235
232
|
}
|
236
233
|
|
237
234
|
/* Iterate starting at the last element, adjusting the "next" members */
|
@@ -241,8 +238,9 @@ static struct entry *find_longest_common_sequence(struct hashmap *map)
|
|
241
238
|
entry->previous->next = entry;
|
242
239
|
entry = entry->previous;
|
243
240
|
}
|
241
|
+
*res = entry;
|
244
242
|
xdl_free(sequence);
|
245
|
-
return
|
243
|
+
return 0;
|
246
244
|
}
|
247
245
|
|
248
246
|
static int match(struct hashmap *map, int line1, int line2)
|
@@ -252,8 +250,7 @@ static int match(struct hashmap *map, int line1, int line2)
|
|
252
250
|
return record1->ha == record2->ha;
|
253
251
|
}
|
254
252
|
|
255
|
-
static int patience_diff(
|
256
|
-
xpparam_t const *xpp, xdfenv_t *env,
|
253
|
+
static int patience_diff(xpparam_t const *xpp, xdfenv_t *env,
|
257
254
|
int line1, int count1, int line2, int count2);
|
258
255
|
|
259
256
|
static int walk_common_sequence(struct hashmap *map, struct entry *first,
|
@@ -284,8 +281,7 @@ static int walk_common_sequence(struct hashmap *map, struct entry *first,
|
|
284
281
|
|
285
282
|
/* Recurse */
|
286
283
|
if (next1 > line1 || next2 > line2) {
|
287
|
-
if (patience_diff(map->
|
288
|
-
map->xpp, map->env,
|
284
|
+
if (patience_diff(map->xpp, map->env,
|
289
285
|
line1, next1 - line1,
|
290
286
|
line2, next2 - line2))
|
291
287
|
return -1;
|
@@ -324,8 +320,7 @@ static int fall_back_to_classic_diff(struct hashmap *map,
|
|
324
320
|
*
|
325
321
|
* This function assumes that env was prepared with xdl_prepare_env().
|
326
322
|
*/
|
327
|
-
static int patience_diff(
|
328
|
-
xpparam_t const *xpp, xdfenv_t *env,
|
323
|
+
static int patience_diff(xpparam_t const *xpp, xdfenv_t *env,
|
329
324
|
int line1, int count1, int line2, int count2)
|
330
325
|
{
|
331
326
|
struct hashmap map;
|
@@ -344,7 +339,7 @@ static int patience_diff(mmfile_t *file1, mmfile_t *file2,
|
|
344
339
|
}
|
345
340
|
|
346
341
|
memset(&map, 0, sizeof(map));
|
347
|
-
if (fill_hashmap(
|
342
|
+
if (fill_hashmap(xpp, env, &map,
|
348
343
|
line1, count1, line2, count2))
|
349
344
|
return -1;
|
350
345
|
|
@@ -358,25 +353,21 @@ static int patience_diff(mmfile_t *file1, mmfile_t *file2,
|
|
358
353
|
return 0;
|
359
354
|
}
|
360
355
|
|
361
|
-
|
356
|
+
result = find_longest_common_sequence(&map, &first);
|
357
|
+
if (result)
|
358
|
+
goto out;
|
362
359
|
if (first)
|
363
360
|
result = walk_common_sequence(&map, first,
|
364
361
|
line1, count1, line2, count2);
|
365
362
|
else
|
366
363
|
result = fall_back_to_classic_diff(&map,
|
367
364
|
line1, count1, line2, count2);
|
368
|
-
|
365
|
+
out:
|
369
366
|
xdl_free(map.entries);
|
370
367
|
return result;
|
371
368
|
}
|
372
369
|
|
373
|
-
int xdl_do_patience_diff(
|
374
|
-
xpparam_t const *xpp, xdfenv_t *env)
|
370
|
+
int xdl_do_patience_diff(xpparam_t const *xpp, xdfenv_t *env)
|
375
371
|
{
|
376
|
-
|
377
|
-
return -1;
|
378
|
-
|
379
|
-
/* environment is cleaned up in xdl_diff() */
|
380
|
-
return patience_diff(file1, file2, xpp, env,
|
381
|
-
1, env->xdf1.nrec, 1, env->xdf2.nrec);
|
372
|
+
return patience_diff(xpp, env, 1, env->xdf1.nrec, 1, env->xdf2.nrec);
|
382
373
|
}
|