rugged 1.7.2 → 1.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/rugged/extconf.rb +4 -4
- data/ext/rugged/rugged.c +12 -1
- data/ext/rugged/rugged_blame.c +22 -6
- data/ext/rugged/rugged_blob.c +24 -9
- data/ext/rugged/rugged_branch.c +10 -7
- data/ext/rugged/rugged_branch_collection.c +8 -6
- data/ext/rugged/rugged_commit.c +7 -6
- data/ext/rugged/rugged_config.c +20 -11
- data/ext/rugged/rugged_diff.c +26 -12
- data/ext/rugged/rugged_diff_hunk.c +2 -1
- data/ext/rugged/rugged_index.c +39 -29
- data/ext/rugged/rugged_note.c +7 -6
- data/ext/rugged/rugged_object.c +3 -2
- data/ext/rugged/rugged_patch.c +23 -9
- data/ext/rugged/rugged_rebase.c +22 -10
- data/ext/rugged/rugged_reference.c +22 -13
- data/ext/rugged/rugged_reference_collection.c +9 -7
- data/ext/rugged/rugged_remote.c +23 -12
- data/ext/rugged/rugged_remote_collection.c +11 -9
- data/ext/rugged/rugged_repo.c +60 -45
- data/ext/rugged/rugged_revwalk.c +22 -12
- data/ext/rugged/rugged_submodule.c +23 -20
- data/ext/rugged/rugged_submodule_collection.c +20 -9
- data/ext/rugged/rugged_tag.c +6 -4
- data/ext/rugged/rugged_tag_collection.c +7 -5
- data/ext/rugged/rugged_tree.c +27 -15
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +3 -0
- data/vendor/libgit2/CMakeLists.txt +23 -10
- data/vendor/libgit2/COPYING +195 -1
- data/vendor/libgit2/cmake/DefaultCFlags.cmake +4 -1
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +17 -8
- data/vendor/libgit2/cmake/SelectHashes.cmake +28 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
- data/vendor/libgit2/cmake/SelectSSH.cmake +30 -19
- 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 +3 -3
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +1 -1
- data/vendor/libgit2/deps/xdiff/xmerge.c +16 -12
- 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 +120 -63
- 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 +134 -4
- data/vendor/libgit2/include/git2/describe.h +13 -1
- data/vendor/libgit2/include/git2/diff.h +38 -8
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +46 -73
- 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 -15
- 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 +50 -3
- 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 +23 -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 +12 -3
- 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 +113 -25
- data/vendor/libgit2/include/git2/repository.h +57 -21
- 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 -0
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +103 -62
- 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 +43 -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 +11 -2
- data/vendor/libgit2/include/git2/sys/transport.h +25 -4
- 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 +46 -8
- data/vendor/libgit2/include/git2/worktree.h +16 -6
- data/vendor/libgit2/src/CMakeLists.txt +6 -4
- data/vendor/libgit2/src/cli/CMakeLists.txt +3 -4
- 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 +5 -7
- 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 +31 -5
- 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 +51 -2
- data/vendor/libgit2/src/cli/progress.h +12 -0
- 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 +55 -21
- data/vendor/libgit2/src/libgit2/apply.c +10 -13
- data/vendor/libgit2/src/libgit2/attr.c +30 -13
- data/vendor/libgit2/src/libgit2/attr_file.c +17 -5
- 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 +130 -44
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- 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 +1 -2
- data/vendor/libgit2/src/libgit2/clone.c +192 -166
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +93 -1
- data/vendor/libgit2/src/libgit2/commit_graph.c +68 -58
- data/vendor/libgit2/src/libgit2/commit_graph.h +1 -2
- data/vendor/libgit2/src/libgit2/config.c +390 -299
- 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 +101 -89
- 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 +195 -40
- data/vendor/libgit2/src/libgit2/config_parse.c +12 -10
- data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
- data/vendor/libgit2/src/libgit2/delta.c +5 -1
- data/vendor/libgit2/src/libgit2/describe.c +24 -24
- data/vendor/libgit2/src/libgit2/diff.c +1 -1
- data/vendor/libgit2/src/libgit2/diff_driver.c +13 -20
- data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
- data/vendor/libgit2/src/libgit2/diff_generate.c +3 -3
- data/vendor/libgit2/src/libgit2/diff_parse.c +2 -2
- data/vendor/libgit2/src/libgit2/diff_print.c +65 -9
- data/vendor/libgit2/src/libgit2/diff_stats.c +19 -12
- data/vendor/libgit2/src/libgit2/diff_tform.c +36 -8
- data/vendor/libgit2/src/libgit2/email.c +1 -0
- data/vendor/libgit2/src/libgit2/fetch.c +5 -3
- data/vendor/libgit2/src/libgit2/fetchhead.c +1 -1
- 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 +18 -20
- data/vendor/libgit2/src/libgit2/grafts.h +0 -1
- data/vendor/libgit2/src/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +76 -98
- data/vendor/libgit2/src/libgit2/index.h +5 -2
- 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 +36 -40
- data/vendor/libgit2/src/libgit2/iterator.c +14 -8
- data/vendor/libgit2/src/libgit2/libgit2.c +153 -368
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +43 -38
- data/vendor/libgit2/src/libgit2/merge.h +4 -0
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/merge_file.c +43 -30
- data/vendor/libgit2/src/libgit2/message.c +1 -1
- data/vendor/libgit2/src/libgit2/midx.c +30 -18
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/object.c +6 -5
- data/vendor/libgit2/src/libgit2/odb.c +7 -10
- data/vendor/libgit2/src/libgit2/odb_loose.c +24 -14
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +13 -5
- data/vendor/libgit2/src/libgit2/oid.c +36 -10
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/pack-objects.c +59 -34
- data/vendor/libgit2/src/libgit2/pack-objects.h +12 -4
- data/vendor/libgit2/src/libgit2/pack.c +33 -24
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/patch_parse.c +2 -2
- 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 +79 -28
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/refdb_fs.c +128 -61
- 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 +41 -13
- 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 +125 -62
- data/vendor/libgit2/src/libgit2/remote.h +0 -1
- data/vendor/libgit2/src/libgit2/repository.c +235 -54
- data/vendor/libgit2/src/libgit2/repository.h +10 -6
- data/vendor/libgit2/src/libgit2/revert.c +1 -2
- data/vendor/libgit2/src/libgit2/revparse.c +2 -2
- data/vendor/libgit2/src/libgit2/revwalk.c +13 -10
- 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/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -60
- data/vendor/libgit2/src/libgit2/streams/openssl.c +32 -7
- 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/socket.c +30 -0
- data/vendor/libgit2/src/libgit2/streams/stransport.c +39 -7
- data/vendor/libgit2/src/libgit2/submodule.c +118 -68
- data/vendor/libgit2/src/libgit2/submodule.h +6 -7
- data/vendor/libgit2/src/libgit2/tag.c +4 -2
- 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_sspi.c +2 -0
- data/vendor/libgit2/src/libgit2/transports/credential.c +2 -2
- data/vendor/libgit2/src/libgit2/transports/git.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/http.c +1 -2
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +124 -81
- 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 +16 -8
- data/vendor/libgit2/src/libgit2/transports/smart.c +25 -13
- data/vendor/libgit2/src/libgit2/transports/smart.h +4 -2
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +5 -5
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +55 -10
- data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +386 -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 +35 -7
- data/vendor/libgit2/src/libgit2/tree.c +34 -26
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +14 -17
- data/vendor/libgit2/src/util/CMakeLists.txt +7 -10
- data/vendor/libgit2/src/util/alloc.c +4 -1
- 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/stdalloc.c +0 -10
- data/vendor/libgit2/src/util/array.h +18 -17
- data/vendor/libgit2/src/util/cc-compat.h +2 -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/fs_path.c +81 -10
- data/vendor/libgit2/src/util/fs_path.h +29 -0
- data/vendor/libgit2/src/util/futils.c +6 -5
- data/vendor/libgit2/src/util/futils.h +24 -7
- data/vendor/libgit2/src/util/git2_features.h.in +12 -1
- data/vendor/libgit2/src/util/git2_util.h +6 -0
- data/vendor/libgit2/src/util/hash/builtin.c +14 -4
- data/vendor/libgit2/src/util/hash/openssl.c +148 -0
- data/vendor/libgit2/src/util/hash/openssl.h +17 -1
- data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +8 -6
- data/vendor/libgit2/src/util/hash/sha.h +4 -1
- data/vendor/libgit2/src/util/hashmap.h +425 -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 +17 -11
- data/vendor/libgit2/src/util/net.h +2 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -0
- data/vendor/libgit2/src/util/pqueue.h +1 -1
- data/vendor/libgit2/src/util/process.h +223 -0
- data/vendor/libgit2/src/util/rand.c +1 -7
- data/vendor/libgit2/src/util/regexp.c +1 -1
- data/vendor/libgit2/src/util/runtime.c +2 -2
- data/vendor/libgit2/src/util/sortedcache.c +14 -13
- data/vendor/libgit2/src/util/sortedcache.h +3 -3
- data/vendor/libgit2/src/util/str.c +20 -8
- data/vendor/libgit2/src/util/str.h +5 -3
- 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 +706 -0
- data/vendor/libgit2/src/util/unix/realpath.c +23 -5
- data/vendor/libgit2/src/util/util.c +18 -5
- data/vendor/libgit2/src/util/util.h +5 -38
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/path_w32.c +81 -5
- data/vendor/libgit2/src/util/win32/posix_w32.c +29 -6
- data/vendor/libgit2/src/util/win32/process.c +522 -0
- metadata +60 -32
- 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 -293
- 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/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 -97
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -22
- 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
|
@@ -16,17 +16,35 @@
|
|
|
16
16
|
|
|
17
17
|
char *p_realpath(const char *pathname, char *resolved)
|
|
18
18
|
{
|
|
19
|
-
char *
|
|
20
|
-
|
|
19
|
+
char *result;
|
|
20
|
+
|
|
21
|
+
if ((result = realpath(pathname, resolved)) == NULL)
|
|
21
22
|
return NULL;
|
|
22
23
|
|
|
23
24
|
#ifdef __OpenBSD__
|
|
24
25
|
/* The OpenBSD realpath function behaves differently,
|
|
25
26
|
* figure out if the file exists */
|
|
26
|
-
if (access(
|
|
27
|
-
|
|
27
|
+
if (access(result, F_OK) < 0) {
|
|
28
|
+
if (!resolved)
|
|
29
|
+
free(result);
|
|
30
|
+
|
|
31
|
+
return NULL;
|
|
32
|
+
}
|
|
28
33
|
#endif
|
|
29
|
-
|
|
34
|
+
|
|
35
|
+
/*
|
|
36
|
+
* If resolved == NULL, the system has allocated the result
|
|
37
|
+
* string. We need to strdup this into _our_ allocator pool
|
|
38
|
+
* so that callers can free it with git__free.
|
|
39
|
+
*/
|
|
40
|
+
if (!resolved) {
|
|
41
|
+
char *dup = git__strdup(result);
|
|
42
|
+
free(result);
|
|
43
|
+
|
|
44
|
+
result = dup;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return result;
|
|
30
48
|
}
|
|
31
49
|
|
|
32
50
|
#endif
|
|
@@ -269,13 +269,26 @@ int git__prefixncmp_icase(const char *str, size_t str_n, const char *prefix)
|
|
|
269
269
|
return prefixcmp(str, str_n, prefix, true);
|
|
270
270
|
}
|
|
271
271
|
|
|
272
|
-
int
|
|
272
|
+
static int suffixcmp(const char *str, const char *suffix, bool icase)
|
|
273
273
|
{
|
|
274
274
|
size_t a = strlen(str);
|
|
275
275
|
size_t b = strlen(suffix);
|
|
276
|
+
|
|
276
277
|
if (a < b)
|
|
277
278
|
return -1;
|
|
278
|
-
|
|
279
|
+
|
|
280
|
+
return icase ? strcasecmp(str + (a - b), suffix) :
|
|
281
|
+
strcmp(str + (a - b), suffix);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
int git__suffixcmp(const char *str, const char *suffix)
|
|
285
|
+
{
|
|
286
|
+
return suffixcmp(str, suffix, false);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
int git__suffixcmp_icase(const char *str, const char *suffix)
|
|
290
|
+
{
|
|
291
|
+
return suffixcmp(str, suffix, true);
|
|
279
292
|
}
|
|
280
293
|
|
|
281
294
|
char *git__strtok(char **end, const char *sep)
|
|
@@ -323,7 +336,7 @@ char *git__strsep(char **end, const char *sep)
|
|
|
323
336
|
|
|
324
337
|
size_t git__linenlen(const char *buffer, size_t buffer_len)
|
|
325
338
|
{
|
|
326
|
-
char *nl = memchr(buffer, '\n', buffer_len);
|
|
339
|
+
const char *nl = memchr(buffer, '\n', buffer_len);
|
|
327
340
|
return nl ? (size_t)(nl - buffer) + 1 : buffer_len;
|
|
328
341
|
}
|
|
329
342
|
|
|
@@ -623,12 +636,12 @@ int git__bsearch_r(
|
|
|
623
636
|
*/
|
|
624
637
|
int git__strcmp_cb(const void *a, const void *b)
|
|
625
638
|
{
|
|
626
|
-
return
|
|
639
|
+
return git__strcmp((const char *)a, (const char *)b);
|
|
627
640
|
}
|
|
628
641
|
|
|
629
642
|
int git__strcasecmp_cb(const void *a, const void *b)
|
|
630
643
|
{
|
|
631
|
-
return
|
|
644
|
+
return git__strcasecmp((const char *)a, (const char *)b);
|
|
632
645
|
}
|
|
633
646
|
|
|
634
647
|
int git__parse_bool(int *out, const char *value)
|
|
@@ -7,15 +7,15 @@
|
|
|
7
7
|
#ifndef INCLUDE_util_h__
|
|
8
8
|
#define INCLUDE_util_h__
|
|
9
9
|
|
|
10
|
-
#ifndef GIT_WIN32
|
|
11
|
-
# include <ctype.h>
|
|
12
|
-
#endif
|
|
13
|
-
|
|
14
10
|
#include "str.h"
|
|
15
11
|
#include "git2_util.h"
|
|
16
12
|
#include "strnlen.h"
|
|
17
13
|
#include "thread.h"
|
|
18
14
|
|
|
15
|
+
#ifndef GIT_WIN32
|
|
16
|
+
# include <ctype.h>
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
19
|
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
|
|
20
20
|
#define bitsizeof(x) (CHAR_BIT * sizeof(x))
|
|
21
21
|
#define MSB(x, bits) ((x) & (~UINT64_C(0) << (bitsizeof(x) - (bits))))
|
|
@@ -57,6 +57,7 @@ extern int git__prefixcmp_icase(const char *str, const char *prefix);
|
|
|
57
57
|
extern int git__prefixncmp(const char *str, size_t str_n, const char *prefix);
|
|
58
58
|
extern int git__prefixncmp_icase(const char *str, size_t str_n, const char *prefix);
|
|
59
59
|
extern int git__suffixcmp(const char *str, const char *suffix);
|
|
60
|
+
extern int git__suffixcmp_icase(const char *str, const char *suffix);
|
|
60
61
|
|
|
61
62
|
GIT_INLINE(int) git__signum(int val)
|
|
62
63
|
{
|
|
@@ -83,15 +84,6 @@ extern char *git__strsep(char **end, const char *sep);
|
|
|
83
84
|
extern void git__strntolower(char *str, size_t len);
|
|
84
85
|
extern void git__strtolower(char *str);
|
|
85
86
|
|
|
86
|
-
#ifdef GIT_WIN32
|
|
87
|
-
GIT_INLINE(int) git__tolower(int c)
|
|
88
|
-
{
|
|
89
|
-
return (c >= 'A' && c <= 'Z') ? (c + 32) : c;
|
|
90
|
-
}
|
|
91
|
-
#else
|
|
92
|
-
# define git__tolower(a) tolower(a)
|
|
93
|
-
#endif
|
|
94
|
-
|
|
95
87
|
extern size_t git__linenlen(const char *buffer, size_t buffer_len);
|
|
96
88
|
|
|
97
89
|
GIT_INLINE(const char *) git__next_line(const char *s)
|
|
@@ -249,26 +241,6 @@ GIT_INLINE(size_t) git__size_t_powerof2(size_t v)
|
|
|
249
241
|
return git__size_t_bitmask(v) + 1;
|
|
250
242
|
}
|
|
251
243
|
|
|
252
|
-
GIT_INLINE(bool) git__isupper(int c)
|
|
253
|
-
{
|
|
254
|
-
return (c >= 'A' && c <= 'Z');
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
GIT_INLINE(bool) git__isalpha(int c)
|
|
258
|
-
{
|
|
259
|
-
return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'));
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
GIT_INLINE(bool) git__isdigit(int c)
|
|
263
|
-
{
|
|
264
|
-
return (c >= '0' && c <= '9');
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
GIT_INLINE(bool) git__isspace(int c)
|
|
268
|
-
{
|
|
269
|
-
return (c == ' ' || c == '\t' || c == '\n' || c == '\f' || c == '\r' || c == '\v');
|
|
270
|
-
}
|
|
271
|
-
|
|
272
244
|
GIT_INLINE(bool) git__isspace_nonlf(int c)
|
|
273
245
|
{
|
|
274
246
|
return (c == ' ' || c == '\t' || c == '\f' || c == '\r' || c == '\v');
|
|
@@ -279,11 +251,6 @@ GIT_INLINE(bool) git__iswildcard(int c)
|
|
|
279
251
|
return (c == '*' || c == '?' || c == '[');
|
|
280
252
|
}
|
|
281
253
|
|
|
282
|
-
GIT_INLINE(bool) git__isxdigit(int c)
|
|
283
|
-
{
|
|
284
|
-
return ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'));
|
|
285
|
-
}
|
|
286
|
-
|
|
287
254
|
/*
|
|
288
255
|
* Parse a string value as a boolean, just like Core Git does.
|
|
289
256
|
*
|
|
@@ -76,7 +76,7 @@ int git_vector_dup(git_vector *v, const git_vector *src, git_vector_cmp cmp)
|
|
|
76
76
|
return 0;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
void
|
|
79
|
+
void git_vector_dispose(git_vector *v)
|
|
80
80
|
{
|
|
81
81
|
if (!v)
|
|
82
82
|
return;
|
|
@@ -88,7 +88,7 @@ void git_vector_free(git_vector *v)
|
|
|
88
88
|
v->_alloc_size = 0;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
void
|
|
91
|
+
void git_vector_dispose_deep(git_vector *v)
|
|
92
92
|
{
|
|
93
93
|
size_t i;
|
|
94
94
|
|
|
@@ -100,7 +100,7 @@ void git_vector_free_deep(git_vector *v)
|
|
|
100
100
|
v->contents[i] = NULL;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
|
|
103
|
+
git_vector_dispose(v);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
int git_vector_init(git_vector *v, size_t initial_size, git_vector_cmp cmp)
|
|
@@ -28,8 +28,8 @@ typedef struct git_vector {
|
|
|
28
28
|
|
|
29
29
|
GIT_WARN_UNUSED_RESULT int git_vector_init(
|
|
30
30
|
git_vector *v, size_t initial_size, git_vector_cmp cmp);
|
|
31
|
-
void
|
|
32
|
-
void
|
|
31
|
+
void git_vector_dispose(git_vector *v);
|
|
32
|
+
void git_vector_dispose_deep(git_vector *v); /* free each entry and self */
|
|
33
33
|
void git_vector_clear(git_vector *v);
|
|
34
34
|
GIT_WARN_UNUSED_RESULT int git_vector_dup(
|
|
35
35
|
git_vector *v, const git_vector *src, git_vector_cmp cmp);
|
|
@@ -153,6 +153,7 @@ int git_win32_path_canonicalize(git_win32_path path)
|
|
|
153
153
|
|
|
154
154
|
static int git_win32_path_join(
|
|
155
155
|
git_win32_path dest,
|
|
156
|
+
size_t *dest_len,
|
|
156
157
|
const wchar_t *one,
|
|
157
158
|
size_t one_len,
|
|
158
159
|
const wchar_t *two,
|
|
@@ -176,6 +177,9 @@ static int git_win32_path_join(
|
|
|
176
177
|
memcpy(dest + one_len + backslash, two, two_len * sizeof(wchar_t));
|
|
177
178
|
dest[one_len + backslash + two_len] = L'\0';
|
|
178
179
|
|
|
180
|
+
if (dest_len)
|
|
181
|
+
*dest_len = one_len + backslash + two_len;
|
|
182
|
+
|
|
179
183
|
return 0;
|
|
180
184
|
}
|
|
181
185
|
|
|
@@ -253,21 +257,92 @@ static void win32_path_iter_dispose(struct win32_path_iter *iter)
|
|
|
253
257
|
iter->current_dir = NULL;
|
|
254
258
|
}
|
|
255
259
|
|
|
260
|
+
struct executable_suffix {
|
|
261
|
+
const wchar_t *suffix;
|
|
262
|
+
size_t len;
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
static struct executable_suffix suffixes[] = { { NULL, 0 }, { L".exe", 4 }, { L".cmd", 4 } };
|
|
266
|
+
|
|
267
|
+
static bool has_executable_suffix(wchar_t *exe, size_t exe_len)
|
|
268
|
+
{
|
|
269
|
+
size_t i;
|
|
270
|
+
|
|
271
|
+
for (i = 0; i < ARRAY_SIZE(suffixes); i++) {
|
|
272
|
+
struct executable_suffix *suffix = &suffixes[i];
|
|
273
|
+
|
|
274
|
+
if (!suffix->len)
|
|
275
|
+
continue;
|
|
276
|
+
|
|
277
|
+
if (exe_len < suffix->len)
|
|
278
|
+
continue;
|
|
279
|
+
|
|
280
|
+
if (memcmp(&exe[exe_len - suffix->len], suffix->suffix, suffix->len) == 0)
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
return false;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
static int is_executable(git_win32_path path, size_t path_len, bool suffixed)
|
|
288
|
+
{
|
|
289
|
+
size_t i;
|
|
290
|
+
|
|
291
|
+
/*
|
|
292
|
+
* if the given name has an executable suffix, then try looking for it
|
|
293
|
+
* directly. in all cases, append executable extensions
|
|
294
|
+
* (".exe", ".cmd"...)
|
|
295
|
+
*/
|
|
296
|
+
for (i = suffixed ? 0 : 1; i < ARRAY_SIZE(suffixes); i++) {
|
|
297
|
+
struct executable_suffix *suffix = &suffixes[i];
|
|
298
|
+
|
|
299
|
+
if (suffix->len) {
|
|
300
|
+
if (path_len + suffix->len > MAX_PATH)
|
|
301
|
+
continue;
|
|
302
|
+
|
|
303
|
+
wcscat(path, suffix->suffix);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (_waccess(path, 0) == 0)
|
|
307
|
+
return true;
|
|
308
|
+
|
|
309
|
+
path[path_len] = L'\0';
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
return false;
|
|
313
|
+
}
|
|
314
|
+
|
|
256
315
|
int git_win32_path_find_executable(git_win32_path fullpath, wchar_t *exe)
|
|
257
316
|
{
|
|
258
317
|
struct win32_path_iter path_iter;
|
|
259
318
|
const wchar_t *dir;
|
|
260
|
-
size_t dir_len, exe_len
|
|
261
|
-
bool found = false;
|
|
319
|
+
size_t dir_len, exe_len, fullpath_len;
|
|
320
|
+
bool suffixed = false, found = false;
|
|
321
|
+
|
|
322
|
+
if ((exe_len = wcslen(exe)) > MAX_PATH)
|
|
323
|
+
goto done;
|
|
324
|
+
|
|
325
|
+
/* see if the given executable has an executable suffix; if so we will
|
|
326
|
+
* look for the explicit name directly, as well as with added suffixes.
|
|
327
|
+
*/
|
|
328
|
+
suffixed = has_executable_suffix(exe, exe_len);
|
|
329
|
+
|
|
330
|
+
/* For fully-qualified paths we do not look in PATH */
|
|
331
|
+
if (wcschr(exe, L'\\') != NULL || wcschr(exe, L'/') != NULL) {
|
|
332
|
+
if ((found = is_executable(exe, exe_len, suffixed)))
|
|
333
|
+
wcscpy(fullpath, exe);
|
|
334
|
+
|
|
335
|
+
goto done;
|
|
336
|
+
}
|
|
262
337
|
|
|
263
338
|
if (win32_path_iter_init(&path_iter) < 0)
|
|
264
339
|
return -1;
|
|
265
340
|
|
|
266
|
-
while (win32_path_iter_next(&dir, &dir_len, &path_iter) != GIT_ITEROVER) {
|
|
267
|
-
if (git_win32_path_join(fullpath, dir, dir_len, exe, exe_len) < 0)
|
|
341
|
+
while (win32_path_iter_next(&dir, &dir_len, &path_iter) != GIT_ITEROVER && !found) {
|
|
342
|
+
if (git_win32_path_join(fullpath, &fullpath_len, dir, dir_len, exe, exe_len) < 0)
|
|
268
343
|
continue;
|
|
269
344
|
|
|
270
|
-
if (
|
|
345
|
+
if (is_executable(fullpath, fullpath_len, suffixed)) {
|
|
271
346
|
found = true;
|
|
272
347
|
break;
|
|
273
348
|
}
|
|
@@ -275,6 +350,7 @@ int git_win32_path_find_executable(git_win32_path fullpath, wchar_t *exe)
|
|
|
275
350
|
|
|
276
351
|
win32_path_iter_dispose(&path_iter);
|
|
277
352
|
|
|
353
|
+
done:
|
|
278
354
|
if (found)
|
|
279
355
|
return 0;
|
|
280
356
|
|
|
@@ -770,6 +770,7 @@ int p_rmdir(const char *path)
|
|
|
770
770
|
* handle to the directory." This sounds like what everybody else calls
|
|
771
771
|
* EBUSY. Let's convert appropriate error codes.
|
|
772
772
|
*/
|
|
773
|
+
case ERROR_ACCESS_DENIED:
|
|
773
774
|
case ERROR_SHARING_VIOLATION:
|
|
774
775
|
errno = EBUSY;
|
|
775
776
|
break;
|
|
@@ -787,13 +788,19 @@ int p_rmdir(const char *path)
|
|
|
787
788
|
char *p_realpath(const char *orig_path, char *buffer)
|
|
788
789
|
{
|
|
789
790
|
git_win32_path orig_path_w, buffer_w;
|
|
791
|
+
DWORD long_len;
|
|
790
792
|
|
|
791
793
|
if (git_win32_path_from_utf8(orig_path_w, orig_path) < 0)
|
|
792
794
|
return NULL;
|
|
793
795
|
|
|
794
|
-
/*
|
|
796
|
+
/*
|
|
797
|
+
* POSIX realpath performs two functions: first, it turns relative
|
|
798
|
+
* paths into absolute paths. For this, we need GetFullPathName.
|
|
799
|
+
*
|
|
800
|
+
* Note that if the path provided is a relative path, then the current directory
|
|
795
801
|
* is used to resolve the path -- which is a concurrency issue because the current
|
|
796
|
-
* directory is a process-wide variable.
|
|
802
|
+
* directory is a process-wide variable.
|
|
803
|
+
*/
|
|
797
804
|
if (!GetFullPathNameW(orig_path_w, GIT_WIN_PATH_UTF16, buffer_w, NULL)) {
|
|
798
805
|
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
|
|
799
806
|
errno = ENAMETOOLONG;
|
|
@@ -803,9 +810,26 @@ char *p_realpath(const char *orig_path, char *buffer)
|
|
|
803
810
|
return NULL;
|
|
804
811
|
}
|
|
805
812
|
|
|
806
|
-
/*
|
|
807
|
-
|
|
808
|
-
|
|
813
|
+
/*
|
|
814
|
+
* Then, the path is canonicalized. eg, on macOS,
|
|
815
|
+
* "/TMP" -> "/private/tmp". For this, we need GetLongPathName.
|
|
816
|
+
*/
|
|
817
|
+
if ((long_len = GetLongPathNameW(buffer_w, buffer_w, GIT_WIN_PATH_UTF16)) == 0) {
|
|
818
|
+
DWORD error = GetLastError();
|
|
819
|
+
|
|
820
|
+
if (error == ERROR_FILE_NOT_FOUND ||
|
|
821
|
+
error == ERROR_PATH_NOT_FOUND)
|
|
822
|
+
errno = ENOENT;
|
|
823
|
+
else if (error == ERROR_ACCESS_DENIED)
|
|
824
|
+
errno = EPERM;
|
|
825
|
+
else
|
|
826
|
+
errno = EINVAL;
|
|
827
|
+
|
|
828
|
+
return NULL;
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
if (long_len > GIT_WIN_PATH_UTF16) {
|
|
832
|
+
errno = ENAMETOOLONG;
|
|
809
833
|
return NULL;
|
|
810
834
|
}
|
|
811
835
|
|
|
@@ -821,7 +845,6 @@ char *p_realpath(const char *orig_path, char *buffer)
|
|
|
821
845
|
return NULL;
|
|
822
846
|
|
|
823
847
|
git_fs_path_mkposix(buffer);
|
|
824
|
-
|
|
825
848
|
return buffer;
|
|
826
849
|
}
|
|
827
850
|
|