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.
Files changed (443) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/rugged_allocator.c +0 -54
  3. data/lib/rugged/version.rb +1 -1
  4. data/vendor/libgit2/AUTHORS +1 -0
  5. data/vendor/libgit2/CMakeLists.txt +25 -17
  6. data/vendor/libgit2/COPYING +195 -1
  7. data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
  8. data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
  9. data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
  10. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +4 -4
  11. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
  12. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +34 -6
  13. data/vendor/libgit2/cmake/SelectHashes.cmake +32 -11
  14. data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
  15. data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
  16. data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
  17. data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
  18. data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
  19. data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  20. data/vendor/libgit2/deps/llhttp/api.c +510 -0
  21. data/vendor/libgit2/deps/llhttp/http.c +170 -0
  22. data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
  23. data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
  24. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
  25. data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
  26. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
  27. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
  28. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
  29. data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
  30. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
  31. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
  32. data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
  33. data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
  34. data/vendor/libgit2/deps/pcre/CMakeLists.txt +1 -0
  35. data/vendor/libgit2/deps/pcre/LICENCE +5 -5
  36. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  37. data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
  38. data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
  39. data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
  40. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/git-xdiff.h +4 -1
  41. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.c +19 -18
  42. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.h +2 -4
  43. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.c +3 -3
  44. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xhistogram.c +7 -18
  45. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmacros.h +18 -1
  46. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmerge.c +22 -20
  47. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xpatience.c +21 -30
  48. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.c +13 -30
  49. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.c +18 -1
  50. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.h +2 -1
  51. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
  52. data/vendor/libgit2/deps/zlib/LICENSE +22 -0
  53. data/vendor/libgit2/deps/zlib/adler32.c +5 -27
  54. data/vendor/libgit2/deps/zlib/crc32.c +94 -167
  55. data/vendor/libgit2/deps/zlib/deflate.c +358 -435
  56. data/vendor/libgit2/deps/zlib/deflate.h +41 -10
  57. data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
  58. data/vendor/libgit2/deps/zlib/infback.c +17 -30
  59. data/vendor/libgit2/deps/zlib/inffast.c +1 -4
  60. data/vendor/libgit2/deps/zlib/inffast.h +1 -1
  61. data/vendor/libgit2/deps/zlib/inflate.c +36 -102
  62. data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
  63. data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
  64. data/vendor/libgit2/deps/zlib/trees.c +287 -352
  65. data/vendor/libgit2/deps/zlib/zconf.h +23 -14
  66. data/vendor/libgit2/deps/zlib/zlib.h +202 -202
  67. data/vendor/libgit2/deps/zlib/zutil.c +18 -44
  68. data/vendor/libgit2/deps/zlib/zutil.h +13 -33
  69. data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
  70. data/vendor/libgit2/include/git2/apply.h +27 -6
  71. data/vendor/libgit2/include/git2/attr.h +17 -4
  72. data/vendor/libgit2/include/git2/blame.h +133 -28
  73. data/vendor/libgit2/include/git2/blob.h +71 -28
  74. data/vendor/libgit2/include/git2/branch.h +22 -15
  75. data/vendor/libgit2/include/git2/buffer.h +6 -4
  76. data/vendor/libgit2/include/git2/cert.h +2 -1
  77. data/vendor/libgit2/include/git2/checkout.h +83 -32
  78. data/vendor/libgit2/include/git2/cherrypick.h +10 -3
  79. data/vendor/libgit2/include/git2/clone.h +25 -9
  80. data/vendor/libgit2/include/git2/commit.h +132 -3
  81. data/vendor/libgit2/include/git2/common.h +138 -56
  82. data/vendor/libgit2/include/git2/config.h +93 -23
  83. data/vendor/libgit2/include/git2/credential.h +30 -2
  84. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  85. data/vendor/libgit2/include/git2/deprecated.h +133 -3
  86. data/vendor/libgit2/include/git2/describe.h +13 -1
  87. data/vendor/libgit2/include/git2/diff.h +77 -9
  88. data/vendor/libgit2/include/git2/email.h +9 -29
  89. data/vendor/libgit2/include/git2/errors.h +49 -74
  90. data/vendor/libgit2/include/git2/filter.h +14 -7
  91. data/vendor/libgit2/include/git2/global.h +8 -1
  92. data/vendor/libgit2/include/git2/graph.h +3 -2
  93. data/vendor/libgit2/include/git2/ignore.h +10 -0
  94. data/vendor/libgit2/include/git2/index.h +100 -6
  95. data/vendor/libgit2/include/git2/indexer.h +21 -4
  96. data/vendor/libgit2/include/git2/mailmap.h +7 -1
  97. data/vendor/libgit2/include/git2/merge.h +46 -1
  98. data/vendor/libgit2/include/git2/message.h +2 -2
  99. data/vendor/libgit2/include/git2/net.h +3 -1
  100. data/vendor/libgit2/include/git2/notes.h +9 -6
  101. data/vendor/libgit2/include/git2/object.h +9 -8
  102. data/vendor/libgit2/include/git2/odb.h +91 -49
  103. data/vendor/libgit2/include/git2/odb_backend.h +80 -52
  104. data/vendor/libgit2/include/git2/oid.h +24 -25
  105. data/vendor/libgit2/include/git2/oidarray.h +7 -1
  106. data/vendor/libgit2/include/git2/pack.h +13 -1
  107. data/vendor/libgit2/include/git2/patch.h +2 -3
  108. data/vendor/libgit2/include/git2/pathspec.h +9 -0
  109. data/vendor/libgit2/include/git2/proxy.h +10 -0
  110. data/vendor/libgit2/include/git2/rebase.h +9 -6
  111. data/vendor/libgit2/include/git2/refdb.h +2 -2
  112. data/vendor/libgit2/include/git2/reflog.h +3 -2
  113. data/vendor/libgit2/include/git2/refs.h +9 -6
  114. data/vendor/libgit2/include/git2/refspec.h +14 -4
  115. data/vendor/libgit2/include/git2/remote.h +112 -18
  116. data/vendor/libgit2/include/git2/repository.h +61 -15
  117. data/vendor/libgit2/include/git2/reset.h +16 -3
  118. data/vendor/libgit2/include/git2/revert.h +9 -4
  119. data/vendor/libgit2/include/git2/revparse.h +3 -3
  120. data/vendor/libgit2/include/git2/revwalk.h +3 -2
  121. data/vendor/libgit2/include/git2/signature.h +46 -1
  122. data/vendor/libgit2/include/git2/stash.h +17 -3
  123. data/vendor/libgit2/include/git2/status.h +10 -6
  124. data/vendor/libgit2/include/git2/stdint.h +87 -85
  125. data/vendor/libgit2/include/git2/strarray.h +2 -3
  126. data/vendor/libgit2/include/git2/submodule.h +20 -9
  127. data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
  128. data/vendor/libgit2/include/git2/sys/commit.h +77 -3
  129. data/vendor/libgit2/include/git2/sys/commit_graph.h +109 -58
  130. data/vendor/libgit2/include/git2/sys/config.h +80 -4
  131. data/vendor/libgit2/include/git2/sys/credential.h +4 -3
  132. data/vendor/libgit2/include/git2/sys/diff.h +21 -1
  133. data/vendor/libgit2/include/git2/sys/email.h +7 -0
  134. data/vendor/libgit2/include/git2/sys/errors.h +76 -0
  135. data/vendor/libgit2/include/git2/sys/filter.h +66 -3
  136. data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
  137. data/vendor/libgit2/include/git2/sys/index.h +3 -2
  138. data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
  139. data/vendor/libgit2/include/git2/sys/merge.h +55 -7
  140. data/vendor/libgit2/include/git2/sys/midx.h +47 -4
  141. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
  142. data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
  143. data/vendor/libgit2/include/git2/sys/path.h +12 -1
  144. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
  145. data/vendor/libgit2/include/git2/sys/refs.h +3 -2
  146. data/vendor/libgit2/include/git2/sys/remote.h +8 -1
  147. data/vendor/libgit2/include/git2/sys/repository.h +63 -3
  148. data/vendor/libgit2/include/git2/sys/stream.h +25 -2
  149. data/vendor/libgit2/include/git2/sys/transport.h +44 -5
  150. data/vendor/libgit2/include/git2/tag.h +3 -1
  151. data/vendor/libgit2/include/git2/trace.h +9 -3
  152. data/vendor/libgit2/include/git2/transaction.h +3 -2
  153. data/vendor/libgit2/include/git2/transport.h +11 -3
  154. data/vendor/libgit2/include/git2/tree.h +16 -5
  155. data/vendor/libgit2/include/git2/types.h +19 -3
  156. data/vendor/libgit2/include/git2/version.h +44 -8
  157. data/vendor/libgit2/include/git2/worktree.h +19 -7
  158. data/vendor/libgit2/src/CMakeLists.txt +40 -15
  159. data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
  160. data/vendor/libgit2/src/cli/cmd.c +1 -1
  161. data/vendor/libgit2/src/cli/cmd.h +4 -0
  162. data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
  163. data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
  164. data/vendor/libgit2/src/cli/cmd_clone.c +27 -13
  165. data/vendor/libgit2/src/cli/cmd_config.c +241 -0
  166. data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
  167. data/vendor/libgit2/src/cli/cmd_help.c +6 -7
  168. data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
  169. data/vendor/libgit2/src/cli/cmd_init.c +102 -0
  170. data/vendor/libgit2/src/cli/common.c +168 -0
  171. data/vendor/libgit2/src/cli/common.h +63 -0
  172. data/vendor/libgit2/src/cli/error.h +1 -1
  173. data/vendor/libgit2/src/cli/main.c +52 -24
  174. data/vendor/libgit2/src/cli/opt.c +29 -3
  175. data/vendor/libgit2/src/cli/opt.h +21 -3
  176. data/vendor/libgit2/src/cli/opt_usage.c +102 -33
  177. data/vendor/libgit2/src/cli/opt_usage.h +6 -1
  178. data/vendor/libgit2/src/cli/progress.c +60 -10
  179. data/vendor/libgit2/src/cli/progress.h +16 -4
  180. data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
  181. data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
  182. data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
  183. data/vendor/libgit2/src/libgit2/CMakeLists.txt +27 -27
  184. data/vendor/libgit2/src/libgit2/annotated_commit.c +2 -2
  185. data/vendor/libgit2/src/libgit2/annotated_commit.h +1 -1
  186. data/vendor/libgit2/src/libgit2/apply.c +14 -16
  187. data/vendor/libgit2/src/libgit2/attr.c +30 -13
  188. data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
  189. data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
  190. data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
  191. data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
  192. data/vendor/libgit2/src/libgit2/blame.c +152 -59
  193. data/vendor/libgit2/src/libgit2/blame.h +1 -0
  194. data/vendor/libgit2/src/libgit2/blame_git.c +0 -1
  195. data/vendor/libgit2/src/libgit2/branch.c +2 -2
  196. data/vendor/libgit2/src/libgit2/cache.c +22 -17
  197. data/vendor/libgit2/src/libgit2/cache.h +7 -9
  198. data/vendor/libgit2/src/libgit2/checkout.c +34 -24
  199. data/vendor/libgit2/src/libgit2/checkout.h +0 -2
  200. data/vendor/libgit2/src/libgit2/cherrypick.c +4 -5
  201. data/vendor/libgit2/src/libgit2/clone.c +186 -164
  202. data/vendor/libgit2/src/libgit2/clone.h +4 -1
  203. data/vendor/libgit2/src/libgit2/commit.c +123 -9
  204. data/vendor/libgit2/src/libgit2/commit_graph.c +166 -88
  205. data/vendor/libgit2/src/libgit2/commit_graph.h +21 -6
  206. data/vendor/libgit2/src/libgit2/commit_list.c +12 -5
  207. data/vendor/libgit2/src/libgit2/commit_list.h +1 -0
  208. data/vendor/libgit2/src/libgit2/config.c +394 -300
  209. data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
  210. data/vendor/libgit2/src/libgit2/config.h +9 -4
  211. data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
  212. data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
  213. data/vendor/libgit2/src/libgit2/config_file.c +113 -96
  214. data/vendor/libgit2/src/libgit2/config_list.c +285 -0
  215. data/vendor/libgit2/src/libgit2/config_list.h +32 -0
  216. data/vendor/libgit2/src/libgit2/config_mem.c +194 -40
  217. data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
  218. data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
  219. data/vendor/libgit2/src/libgit2/describe.c +34 -31
  220. data/vendor/libgit2/src/libgit2/diff.c +17 -8
  221. data/vendor/libgit2/src/libgit2/diff.h +6 -6
  222. data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
  223. data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
  224. data/vendor/libgit2/src/libgit2/diff_file.c +7 -7
  225. data/vendor/libgit2/src/libgit2/diff_generate.c +39 -18
  226. data/vendor/libgit2/src/libgit2/diff_parse.c +22 -6
  227. data/vendor/libgit2/src/libgit2/diff_print.c +88 -13
  228. data/vendor/libgit2/src/libgit2/diff_tform.c +40 -12
  229. data/vendor/libgit2/src/libgit2/diff_xdiff.h +1 -1
  230. data/vendor/libgit2/src/libgit2/email.c +5 -3
  231. data/vendor/libgit2/src/libgit2/fetch.c +39 -9
  232. data/vendor/libgit2/src/libgit2/fetch.h +0 -2
  233. data/vendor/libgit2/src/libgit2/fetchhead.c +11 -9
  234. data/vendor/libgit2/src/libgit2/filter.c +5 -5
  235. data/vendor/libgit2/src/libgit2/git2.rc +3 -3
  236. data/vendor/libgit2/src/libgit2/grafts.c +270 -0
  237. data/vendor/libgit2/src/libgit2/grafts.h +35 -0
  238. data/vendor/libgit2/src/libgit2/graph.c +1 -1
  239. data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
  240. data/vendor/libgit2/src/libgit2/ident.c +3 -3
  241. data/vendor/libgit2/src/libgit2/ignore.c +9 -5
  242. data/vendor/libgit2/src/libgit2/index.c +392 -208
  243. data/vendor/libgit2/src/libgit2/index.h +16 -3
  244. data/vendor/libgit2/src/libgit2/index_map.c +95 -0
  245. data/vendor/libgit2/src/libgit2/index_map.h +28 -0
  246. data/vendor/libgit2/src/libgit2/indexer.c +44 -41
  247. data/vendor/libgit2/src/libgit2/iterator.c +34 -13
  248. data/vendor/libgit2/src/libgit2/iterator.h +3 -0
  249. data/vendor/libgit2/src/libgit2/libgit2.c +155 -331
  250. data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
  251. data/vendor/libgit2/src/libgit2/merge.c +56 -46
  252. data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
  253. data/vendor/libgit2/src/libgit2/merge_file.c +0 -2
  254. data/vendor/libgit2/src/libgit2/midx.c +86 -44
  255. data/vendor/libgit2/src/libgit2/midx.h +13 -3
  256. data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
  257. data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
  258. data/vendor/libgit2/src/libgit2/notes.c +9 -8
  259. data/vendor/libgit2/src/libgit2/object.c +42 -16
  260. data/vendor/libgit2/src/libgit2/object.h +6 -0
  261. data/vendor/libgit2/src/libgit2/odb.c +16 -9
  262. data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
  263. data/vendor/libgit2/src/libgit2/odb_pack.c +28 -7
  264. data/vendor/libgit2/src/libgit2/oid.c +35 -2
  265. data/vendor/libgit2/src/libgit2/oid.h +11 -0
  266. data/vendor/libgit2/src/libgit2/oidarray.c +49 -3
  267. data/vendor/libgit2/src/libgit2/oidarray.h +5 -1
  268. data/vendor/libgit2/src/libgit2/pack-objects.c +77 -43
  269. data/vendor/libgit2/src/libgit2/pack-objects.h +17 -6
  270. data/vendor/libgit2/src/libgit2/pack.c +33 -27
  271. data/vendor/libgit2/src/libgit2/pack.h +15 -10
  272. data/vendor/libgit2/src/libgit2/parse.c +7 -4
  273. data/vendor/libgit2/src/libgit2/parse.h +1 -1
  274. data/vendor/libgit2/src/libgit2/patch.h +7 -1
  275. data/vendor/libgit2/src/libgit2/patch_generate.c +24 -5
  276. data/vendor/libgit2/src/libgit2/patch_parse.c +18 -10
  277. data/vendor/libgit2/src/libgit2/path.c +1 -1
  278. data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
  279. data/vendor/libgit2/src/libgit2/push.c +81 -30
  280. data/vendor/libgit2/src/libgit2/push.h +1 -0
  281. data/vendor/libgit2/src/libgit2/reader.c +1 -1
  282. data/vendor/libgit2/src/libgit2/rebase.c +72 -84
  283. data/vendor/libgit2/src/libgit2/refdb_fs.c +146 -70
  284. data/vendor/libgit2/src/libgit2/reflog.c +1 -2
  285. data/vendor/libgit2/src/libgit2/reflog.h +2 -0
  286. data/vendor/libgit2/src/libgit2/refs.c +34 -8
  287. data/vendor/libgit2/src/libgit2/refs.h +6 -1
  288. data/vendor/libgit2/src/libgit2/refspec.c +28 -1
  289. data/vendor/libgit2/src/libgit2/refspec.h +8 -0
  290. data/vendor/libgit2/src/libgit2/remote.c +136 -67
  291. data/vendor/libgit2/src/libgit2/remote.h +1 -0
  292. data/vendor/libgit2/src/libgit2/repository.c +789 -330
  293. data/vendor/libgit2/src/libgit2/repository.h +22 -3
  294. data/vendor/libgit2/src/libgit2/reset.c +2 -2
  295. data/vendor/libgit2/src/libgit2/revert.c +9 -13
  296. data/vendor/libgit2/src/libgit2/revparse.c +6 -3
  297. data/vendor/libgit2/src/libgit2/revwalk.c +36 -11
  298. data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
  299. data/vendor/libgit2/src/libgit2/settings.c +468 -0
  300. data/vendor/libgit2/src/libgit2/settings.h +6 -2
  301. data/vendor/libgit2/src/libgit2/signature.c +132 -15
  302. data/vendor/libgit2/src/libgit2/signature.h +0 -1
  303. data/vendor/libgit2/src/libgit2/stash.c +9 -8
  304. data/vendor/libgit2/src/libgit2/status.c +1 -1
  305. data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -61
  306. data/vendor/libgit2/src/libgit2/streams/openssl.c +40 -23
  307. data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
  308. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
  309. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
  310. data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
  311. data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
  312. data/vendor/libgit2/src/libgit2/streams/socket.c +237 -51
  313. data/vendor/libgit2/src/libgit2/streams/socket.h +3 -1
  314. data/vendor/libgit2/src/libgit2/streams/stransport.c +79 -19
  315. data/vendor/libgit2/src/libgit2/streams/tls.c +5 -0
  316. data/vendor/libgit2/src/libgit2/submodule.c +106 -63
  317. data/vendor/libgit2/src/libgit2/submodule.h +9 -10
  318. data/vendor/libgit2/src/libgit2/tag.c +1 -1
  319. data/vendor/libgit2/src/libgit2/trailer.c +6 -6
  320. data/vendor/libgit2/src/libgit2/transaction.c +26 -20
  321. data/vendor/libgit2/src/libgit2/transaction.h +4 -1
  322. data/vendor/libgit2/src/libgit2/transport.c +4 -1
  323. data/vendor/libgit2/src/libgit2/transports/auth.h +1 -2
  324. data/vendor/libgit2/src/libgit2/transports/{auth_negotiate.c → auth_gssapi.c} +32 -32
  325. data/vendor/libgit2/src/libgit2/transports/auth_negotiate.h +1 -1
  326. data/vendor/libgit2/src/libgit2/transports/auth_ntlm.h +1 -1
  327. data/vendor/libgit2/src/libgit2/transports/{auth_ntlm.c → auth_ntlmclient.c} +12 -12
  328. data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
  329. data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
  330. data/vendor/libgit2/src/libgit2/transports/git.c +7 -8
  331. data/vendor/libgit2/src/libgit2/transports/http.c +8 -4
  332. data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
  333. data/vendor/libgit2/src/libgit2/transports/httpclient.c +117 -72
  334. data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
  335. data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
  336. data/vendor/libgit2/src/libgit2/transports/local.c +21 -11
  337. data/vendor/libgit2/src/libgit2/transports/smart.c +50 -32
  338. data/vendor/libgit2/src/libgit2/transports/smart.h +26 -9
  339. data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +139 -18
  340. data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +209 -57
  341. data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
  342. data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
  343. data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
  344. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
  345. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
  346. data/vendor/libgit2/src/libgit2/transports/winhttp.c +48 -21
  347. data/vendor/libgit2/src/libgit2/tree-cache.c +26 -16
  348. data/vendor/libgit2/src/libgit2/tree-cache.h +5 -3
  349. data/vendor/libgit2/src/libgit2/tree.c +35 -27
  350. data/vendor/libgit2/src/libgit2/tree.h +3 -2
  351. data/vendor/libgit2/src/libgit2/worktree.c +39 -27
  352. data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
  353. data/vendor/libgit2/src/util/alloc.c +69 -7
  354. data/vendor/libgit2/src/util/alloc.h +34 -9
  355. data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
  356. data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
  357. data/vendor/libgit2/src/util/allocators/failalloc.c +0 -60
  358. data/vendor/libgit2/src/util/allocators/failalloc.h +0 -6
  359. data/vendor/libgit2/src/util/allocators/stdalloc.c +2 -115
  360. data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +0 -68
  361. data/vendor/libgit2/src/util/array.h +24 -18
  362. data/vendor/libgit2/src/util/cc-compat.h +4 -0
  363. data/vendor/libgit2/src/util/ctype_compat.h +70 -0
  364. data/vendor/libgit2/src/util/date.c +22 -14
  365. data/vendor/libgit2/src/util/date.h +12 -0
  366. data/vendor/libgit2/src/util/errors.c +401 -0
  367. data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
  368. data/vendor/libgit2/src/util/filebuf.c +6 -1
  369. data/vendor/libgit2/src/util/filebuf.h +19 -6
  370. data/vendor/libgit2/src/util/fs_path.c +16 -5
  371. data/vendor/libgit2/src/util/fs_path.h +23 -0
  372. data/vendor/libgit2/src/util/futils.c +14 -10
  373. data/vendor/libgit2/src/util/futils.h +13 -4
  374. data/vendor/libgit2/src/util/git2_features.h.in +21 -4
  375. data/vendor/libgit2/src/util/git2_util.h +6 -0
  376. data/vendor/libgit2/src/util/hash/openssl.c +152 -0
  377. data/vendor/libgit2/src/util/hash/openssl.h +17 -1
  378. data/vendor/libgit2/src/util/hash/sha.h +4 -1
  379. data/vendor/libgit2/src/util/hashmap.h +424 -0
  380. data/vendor/libgit2/src/util/hashmap_str.h +43 -0
  381. data/vendor/libgit2/src/util/integer.h +3 -1
  382. data/vendor/libgit2/src/util/net.c +318 -161
  383. data/vendor/libgit2/src/util/net.h +27 -0
  384. data/vendor/libgit2/src/util/pool.c +1 -1
  385. data/vendor/libgit2/src/util/pool.h +5 -0
  386. data/vendor/libgit2/src/util/posix.c +54 -0
  387. data/vendor/libgit2/src/util/posix.h +22 -0
  388. data/vendor/libgit2/src/util/pqueue.h +1 -1
  389. data/vendor/libgit2/src/util/process.h +222 -0
  390. data/vendor/libgit2/src/util/rand.c +6 -10
  391. data/vendor/libgit2/src/util/regexp.c +1 -1
  392. data/vendor/libgit2/src/util/sortedcache.c +14 -13
  393. data/vendor/libgit2/src/util/sortedcache.h +3 -3
  394. data/vendor/libgit2/src/util/staticstr.h +66 -0
  395. data/vendor/libgit2/src/util/str.c +2 -2
  396. data/vendor/libgit2/src/util/strlist.c +108 -0
  397. data/vendor/libgit2/src/util/strlist.h +36 -0
  398. data/vendor/libgit2/src/util/unix/posix.h +0 -2
  399. data/vendor/libgit2/src/util/unix/process.c +629 -0
  400. data/vendor/libgit2/src/util/unix/realpath.c +23 -5
  401. data/vendor/libgit2/src/util/util.c +17 -12
  402. data/vendor/libgit2/src/util/util.h +28 -54
  403. data/vendor/libgit2/src/util/vector.c +3 -3
  404. data/vendor/libgit2/src/util/vector.h +2 -2
  405. data/vendor/libgit2/src/util/win32/error.c +1 -1
  406. data/vendor/libgit2/src/util/win32/path_w32.c +8 -8
  407. data/vendor/libgit2/src/util/win32/posix_w32.c +30 -7
  408. data/vendor/libgit2/src/util/win32/process.c +506 -0
  409. data/vendor/libgit2/src/util/win32/utf-conv.c +73 -75
  410. data/vendor/libgit2/src/util/win32/utf-conv.h +81 -14
  411. data/vendor/libgit2/src/util/win32/w32_util.c +1 -1
  412. metadata +72 -49
  413. data/vendor/libgit2/cmake/SelectWinHTTP.cmake +0 -17
  414. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
  415. data/vendor/libgit2/deps/http-parser/COPYING +0 -23
  416. data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
  417. data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
  418. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  419. data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
  420. data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
  421. data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
  422. data/vendor/libgit2/src/libgit2/errors.c +0 -238
  423. data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
  424. data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
  425. data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
  426. data/vendor/libgit2/src/libgit2/netops.c +0 -124
  427. data/vendor/libgit2/src/libgit2/netops.h +0 -68
  428. data/vendor/libgit2/src/libgit2/offmap.c +0 -101
  429. data/vendor/libgit2/src/libgit2/offmap.h +0 -133
  430. data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
  431. data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
  432. data/vendor/libgit2/src/libgit2/threadstate.c +0 -84
  433. data/vendor/libgit2/src/libgit2/threadstate.h +0 -24
  434. data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
  435. data/vendor/libgit2/src/util/khash.h +0 -615
  436. data/vendor/libgit2/src/util/strmap.c +0 -100
  437. data/vendor/libgit2/src/util/strmap.h +0 -131
  438. /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
  439. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiff.h +0 -0
  440. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.h +0 -0
  441. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xinclude.h +0 -0
  442. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.h +0 -0
  443. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xtypes.h +0 -0
@@ -5,63 +5,32 @@
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
7
 
8
- #include "libgit2.h"
9
-
10
8
  #include <git2.h>
11
9
  #include "alloc.h"
12
10
  #include "buf.h"
13
- #include "cache.h"
14
11
  #include "common.h"
15
12
  #include "filter.h"
16
13
  #include "hash.h"
17
- #include "index.h"
18
14
  #include "merge_driver.h"
19
15
  #include "pool.h"
20
16
  #include "mwindow.h"
21
- #include "object.h"
22
- #include "odb.h"
17
+ #include "oid.h"
23
18
  #include "rand.h"
24
- #include "refs.h"
25
19
  #include "runtime.h"
20
+ #include "settings.h"
26
21
  #include "sysdir.h"
27
22
  #include "thread.h"
28
- #include "threadstate.h"
29
23
  #include "git2/global.h"
30
24
  #include "streams/registry.h"
31
25
  #include "streams/mbedtls.h"
32
26
  #include "streams/openssl.h"
33
- #include "transports/smart.h"
34
- #include "transports/http.h"
35
- #include "transports/ssh.h"
27
+ #include "streams/socket.h"
28
+ #include "transports/ssh_libssh2.h"
36
29
 
37
30
  #ifdef GIT_WIN32
38
31
  # include "win32/w32_leakcheck.h"
39
32
  #endif
40
33
 
41
- /* Declarations for tuneable settings */
42
- extern size_t git_mwindow__window_size;
43
- extern size_t git_mwindow__mapped_limit;
44
- extern size_t git_mwindow__file_limit;
45
- extern size_t git_indexer__max_objects;
46
- extern bool git_disable_pack_keep_file_checks;
47
- extern int git_odb__packed_priority;
48
- extern int git_odb__loose_priority;
49
-
50
- char *git__user_agent;
51
- char *git__ssl_ciphers;
52
-
53
- static void libgit2_settings_global_shutdown(void)
54
- {
55
- git__free(git__user_agent);
56
- git__free(git__ssl_ciphers);
57
- git_repository__free_extensions();
58
- }
59
-
60
- static int git_libgit2_settings_global_init(void)
61
- {
62
- return git_runtime_shutdown_register(libgit2_settings_global_shutdown);
63
- }
64
-
65
34
  int git_libgit2_init(void)
66
35
  {
67
36
  static git_runtime_init_fn init_fns[] = {
@@ -69,30 +38,27 @@ int git_libgit2_init(void)
69
38
  git_win32_leakcheck_global_init,
70
39
  #endif
71
40
  git_allocator_global_init,
72
- git_threadstate_global_init,
41
+ git_error_global_init,
73
42
  git_threads_global_init,
43
+ git_oid_global_init,
74
44
  git_rand_global_init,
75
45
  git_hash_global_init,
76
46
  git_sysdir_global_init,
77
47
  git_filter_global_init,
78
48
  git_merge_driver_global_init,
79
- git_transport_ssh_global_init,
49
+ git_transport_ssh_libssh2_global_init,
80
50
  git_stream_registry_global_init,
51
+ git_socket_stream_global_init,
81
52
  git_openssl_stream_global_init,
82
53
  git_mbedtls_stream_global_init,
83
54
  git_mwindow_global_init,
84
55
  git_pool_global_init,
85
- git_libgit2_settings_global_init
56
+ git_settings_global_init
86
57
  };
87
58
 
88
59
  return git_runtime_init(init_fns, ARRAY_SIZE(init_fns));
89
60
  }
90
61
 
91
- int git_libgit2_init_count(void)
92
- {
93
- return git_runtime_init_count();
94
- }
95
-
96
62
  int git_libgit2_shutdown(void)
97
63
  {
98
64
  return git_runtime_shutdown();
@@ -100,16 +66,16 @@ int git_libgit2_shutdown(void)
100
66
 
101
67
  int git_libgit2_version(int *major, int *minor, int *rev)
102
68
  {
103
- *major = LIBGIT2_VER_MAJOR;
104
- *minor = LIBGIT2_VER_MINOR;
105
- *rev = LIBGIT2_VER_REVISION;
69
+ *major = LIBGIT2_VERSION_MAJOR;
70
+ *minor = LIBGIT2_VERSION_MINOR;
71
+ *rev = LIBGIT2_VERSION_REVISION;
106
72
 
107
73
  return 0;
108
74
  }
109
75
 
110
76
  const char *git_libgit2_prerelease(void)
111
77
  {
112
- return LIBGIT2_VER_PRERELEASE;
78
+ return LIBGIT2_VERSION_PRERELEASE;
113
79
  }
114
80
 
115
81
  int git_libgit2_features(void)
@@ -121,324 +87,182 @@ int git_libgit2_features(void)
121
87
  #ifdef GIT_HTTPS
122
88
  | GIT_FEATURE_HTTPS
123
89
  #endif
124
- #if defined(GIT_SSH)
90
+ #ifdef GIT_SSH
125
91
  | GIT_FEATURE_SSH
126
92
  #endif
127
- #if defined(GIT_USE_NSEC)
93
+ #ifdef GIT_USE_NSEC
128
94
  | GIT_FEATURE_NSEC
95
+ #endif
96
+ | GIT_FEATURE_HTTP_PARSER
97
+ | GIT_FEATURE_REGEX
98
+ #ifdef GIT_USE_ICONV
99
+ | GIT_FEATURE_I18N
100
+ #endif
101
+ #if defined(GIT_NTLM) || defined(GIT_WIN32)
102
+ | GIT_FEATURE_AUTH_NTLM
103
+ #endif
104
+ #if defined(GIT_GSSAPI) || defined(GIT_GSSFRAMEWORK) || defined(GIT_WIN32)
105
+ | GIT_FEATURE_AUTH_NEGOTIATE
106
+ #endif
107
+ | GIT_FEATURE_COMPRESSION
108
+ | GIT_FEATURE_SHA1
109
+ #ifdef GIT_EXPERIMENTAL_SHA256
110
+ | GIT_FEATURE_SHA256
129
111
  #endif
130
112
  ;
131
113
  }
132
114
 
133
- static int config_level_to_sysdir(int *out, int config_level)
134
- {
135
- switch (config_level) {
136
- case GIT_CONFIG_LEVEL_SYSTEM:
137
- *out = GIT_SYSDIR_SYSTEM;
138
- return 0;
139
- case GIT_CONFIG_LEVEL_XDG:
140
- *out = GIT_SYSDIR_XDG;
141
- return 0;
142
- case GIT_CONFIG_LEVEL_GLOBAL:
143
- *out = GIT_SYSDIR_GLOBAL;
144
- return 0;
145
- case GIT_CONFIG_LEVEL_PROGRAMDATA:
146
- *out = GIT_SYSDIR_PROGRAMDATA;
147
- return 0;
148
- default:
149
- break;
150
- }
151
-
152
- git_error_set(
153
- GIT_ERROR_INVALID, "invalid config path selector %d", config_level);
154
- return -1;
155
- }
156
-
157
- const char *git_libgit2__user_agent(void)
158
- {
159
- return git__user_agent;
160
- }
161
-
162
- const char *git_libgit2__ssl_ciphers(void)
163
- {
164
- return git__ssl_ciphers;
165
- }
166
-
167
- int git_libgit2_opts(int key, ...)
115
+ const char *git_libgit2_feature_backend(git_feature_t feature)
168
116
  {
169
- int error = 0;
170
- va_list ap;
171
-
172
- va_start(ap, key);
173
-
174
- switch (key) {
175
- case GIT_OPT_SET_MWINDOW_SIZE:
176
- git_mwindow__window_size = va_arg(ap, size_t);
177
- break;
178
-
179
- case GIT_OPT_GET_MWINDOW_SIZE:
180
- *(va_arg(ap, size_t *)) = git_mwindow__window_size;
181
- break;
182
-
183
- case GIT_OPT_SET_MWINDOW_MAPPED_LIMIT:
184
- git_mwindow__mapped_limit = va_arg(ap, size_t);
185
- break;
186
-
187
- case GIT_OPT_GET_MWINDOW_MAPPED_LIMIT:
188
- *(va_arg(ap, size_t *)) = git_mwindow__mapped_limit;
189
- break;
190
-
191
- case GIT_OPT_SET_MWINDOW_FILE_LIMIT:
192
- git_mwindow__file_limit = va_arg(ap, size_t);
193
- break;
194
-
195
- case GIT_OPT_GET_MWINDOW_FILE_LIMIT:
196
- *(va_arg(ap, size_t *)) = git_mwindow__file_limit;
197
- break;
198
-
199
- case GIT_OPT_GET_SEARCH_PATH:
200
- {
201
- int sysdir = va_arg(ap, int);
202
- git_buf *out = va_arg(ap, git_buf *);
203
- git_str str = GIT_STR_INIT;
204
- const git_str *tmp;
205
- int level;
206
-
207
- if ((error = git_buf_tostr(&str, out)) < 0 ||
208
- (error = config_level_to_sysdir(&level, sysdir)) < 0 ||
209
- (error = git_sysdir_get(&tmp, level)) < 0 ||
210
- (error = git_str_put(&str, tmp->ptr, tmp->size)) < 0)
211
- break;
212
-
213
- error = git_buf_fromstr(out, &str);
214
- }
215
- break;
216
-
217
- case GIT_OPT_SET_SEARCH_PATH:
218
- {
219
- int level;
220
-
221
- if ((error = config_level_to_sysdir(&level, va_arg(ap, int))) >= 0)
222
- error = git_sysdir_set(level, va_arg(ap, const char *));
223
- }
224
- break;
225
-
226
- case GIT_OPT_SET_CACHE_OBJECT_LIMIT:
227
- {
228
- git_object_t type = (git_object_t)va_arg(ap, int);
229
- size_t size = va_arg(ap, size_t);
230
- error = git_cache_set_max_object_size(type, size);
231
- break;
232
- }
233
-
234
- case GIT_OPT_SET_CACHE_MAX_SIZE:
235
- git_cache__max_storage = va_arg(ap, ssize_t);
236
- break;
237
-
238
- case GIT_OPT_ENABLE_CACHING:
239
- git_cache__enabled = (va_arg(ap, int) != 0);
117
+ switch (feature) {
118
+ case GIT_FEATURE_THREADS:
119
+ #if defined(GIT_THREADS) && defined(GIT_WIN32)
120
+ return "win32";
121
+ #elif defined(GIT_THREADS)
122
+ return "pthread";
123
+ #endif
240
124
  break;
241
125
 
242
- case GIT_OPT_GET_CACHED_MEMORY:
243
- *(va_arg(ap, ssize_t *)) = git_cache__current_storage.val;
244
- *(va_arg(ap, ssize_t *)) = git_cache__max_storage;
126
+ case GIT_FEATURE_HTTPS:
127
+ #if defined(GIT_HTTPS) && defined(GIT_OPENSSL)
128
+ return "openssl";
129
+ #elif defined(GIT_HTTPS) && defined(GIT_OPENSSL_DYNAMIC)
130
+ return "openssl-dynamic";
131
+ #elif defined(GIT_HTTPS) && defined(GIT_MBEDTLS)
132
+ return "mbedtls";
133
+ #elif defined(GIT_HTTPS) && defined(GIT_SECURE_TRANSPORT)
134
+ return "securetransport";
135
+ #elif defined(GIT_HTTPS) && defined(GIT_SCHANNEL)
136
+ return "schannel";
137
+ #elif defined(GIT_HTTPS) && defined(GIT_WINHTTP)
138
+ return "winhttp";
139
+ #elif defined(GIT_HTTPS)
140
+ GIT_ASSERT_WITH_RETVAL(!"Unknown HTTPS backend", NULL);
141
+ #endif
245
142
  break;
246
143
 
247
- case GIT_OPT_GET_TEMPLATE_PATH:
248
- {
249
- git_buf *out = va_arg(ap, git_buf *);
250
- git_str str = GIT_STR_INIT;
251
- const git_str *tmp;
252
-
253
- if ((error = git_buf_tostr(&str, out)) < 0 ||
254
- (error = git_sysdir_get(&tmp, GIT_SYSDIR_TEMPLATE)) < 0 ||
255
- (error = git_str_put(&str, tmp->ptr, tmp->size)) < 0)
256
- break;
257
-
258
- error = git_buf_fromstr(out, &str);
259
- }
144
+ case GIT_FEATURE_SSH:
145
+ #if defined(GIT_SSH_EXEC)
146
+ return "exec";
147
+ #elif defined(GIT_SSH_LIBSSH2)
148
+ return "libssh2";
149
+ #elif defined(GIT_SSH)
150
+ GIT_ASSERT_WITH_RETVAL(!"Unknown SSH backend", NULL);
151
+ #endif
260
152
  break;
261
153
 
262
- case GIT_OPT_SET_TEMPLATE_PATH:
263
- error = git_sysdir_set(GIT_SYSDIR_TEMPLATE, va_arg(ap, const char *));
154
+ case GIT_FEATURE_NSEC:
155
+ #if defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIMESPEC)
156
+ return "mtimespec";
157
+ #elif defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIM)
158
+ return "mtim";
159
+ #elif defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIME_NSEC)
160
+ return "mtime";
161
+ #elif defined(GIT_USE_NSEC) && defined(GIT_WIN32)
162
+ return "win32";
163
+ #elif defined(GIT_USE_NSEC)
164
+ GIT_ASSERT_WITH_RETVAL(!"Unknown high-resolution time backend", NULL);
165
+ #endif
264
166
  break;
265
167
 
266
- case GIT_OPT_SET_SSL_CERT_LOCATIONS:
267
- #ifdef GIT_OPENSSL
268
- {
269
- const char *file = va_arg(ap, const char *);
270
- const char *path = va_arg(ap, const char *);
271
- error = git_openssl__set_cert_location(file, path);
272
- }
273
- #elif defined(GIT_MBEDTLS)
274
- {
275
- const char *file = va_arg(ap, const char *);
276
- const char *path = va_arg(ap, const char *);
277
- error = git_mbedtls__set_cert_location(file, path);
278
- }
279
- #else
280
- git_error_set(GIT_ERROR_SSL, "TLS backend doesn't support certificate locations");
281
- error = -1;
168
+ case GIT_FEATURE_HTTP_PARSER:
169
+ #if defined(GIT_HTTPPARSER_HTTPPARSER)
170
+ return "httpparser";
171
+ #elif defined(GIT_HTTPPARSER_LLHTTP)
172
+ return "llhttp";
173
+ #elif defined(GIT_HTTPPARSER_BUILTIN)
174
+ return "builtin";
282
175
  #endif
176
+ GIT_ASSERT_WITH_RETVAL(!"Unknown HTTP parser backend", NULL);
177
+ break;
178
+
179
+ case GIT_FEATURE_REGEX:
180
+ #if defined(GIT_REGEX_REGCOMP_L)
181
+ return "regcomp_l";
182
+ #elif defined(GIT_REGEX_REGCOMP)
183
+ return "regcomp";
184
+ #elif defined(GIT_REGEX_PCRE)
185
+ return "pcre";
186
+ #elif defined(GIT_REGEX_PCRE2)
187
+ return "pcre2";
188
+ #elif defined(GIT_REGEX_BUILTIN)
189
+ return "builtin";
190
+ #endif
191
+ GIT_ASSERT_WITH_RETVAL(!"Unknown regular expression backend", NULL);
283
192
  break;
284
- case GIT_OPT_SET_USER_AGENT:
285
- git__free(git__user_agent);
286
- git__user_agent = git__strdup(va_arg(ap, const char *));
287
- if (!git__user_agent) {
288
- git_error_set_oom();
289
- error = -1;
290
- }
291
193
 
194
+ case GIT_FEATURE_I18N:
195
+ #if defined(GIT_USE_ICONV)
196
+ return "iconv";
197
+ #endif
292
198
  break;
293
199
 
294
- case GIT_OPT_ENABLE_STRICT_OBJECT_CREATION:
295
- git_object__strict_input_validation = (va_arg(ap, int) != 0);
200
+ case GIT_FEATURE_AUTH_NTLM:
201
+ #if defined(GIT_NTLM)
202
+ return "ntlmclient";
203
+ #elif defined(GIT_WIN32)
204
+ return "sspi";
205
+ #endif
296
206
  break;
297
207
 
298
- case GIT_OPT_ENABLE_STRICT_SYMBOLIC_REF_CREATION:
299
- git_reference__enable_symbolic_ref_target_validation = (va_arg(ap, int) != 0);
208
+ case GIT_FEATURE_AUTH_NEGOTIATE:
209
+ #if defined(GIT_GSSAPI)
210
+ return "gssapi";
211
+ #elif defined(GIT_WIN32)
212
+ return "sspi";
213
+ #endif
300
214
  break;
301
215
 
302
- case GIT_OPT_SET_SSL_CIPHERS:
303
- #if (GIT_OPENSSL || GIT_MBEDTLS)
304
- {
305
- git__free(git__ssl_ciphers);
306
- git__ssl_ciphers = git__strdup(va_arg(ap, const char *));
307
- if (!git__ssl_ciphers) {
308
- git_error_set_oom();
309
- error = -1;
310
- }
311
- }
216
+ case GIT_FEATURE_COMPRESSION:
217
+ #if defined(GIT_COMPRESSION_ZLIB)
218
+ return "zlib";
219
+ #elif defined(GIT_COMPRESSION_BUILTIN)
220
+ return "builtin";
312
221
  #else
313
- git_error_set(GIT_ERROR_SSL, "TLS backend doesn't support custom ciphers");
314
- error = -1;
222
+ GIT_ASSERT_WITH_RETVAL(!"Unknown compression backend", NULL);
315
223
  #endif
316
224
  break;
317
225
 
318
- case GIT_OPT_GET_USER_AGENT:
319
- {
320
- git_buf *out = va_arg(ap, git_buf *);
321
- git_str str = GIT_STR_INIT;
322
-
323
- if ((error = git_buf_tostr(&str, out)) < 0 ||
324
- (error = git_str_puts(&str, git__user_agent)) < 0)
325
- break;
326
-
327
- error = git_buf_fromstr(out, &str);
328
- }
329
- break;
330
-
331
- case GIT_OPT_ENABLE_OFS_DELTA:
332
- git_smart__ofs_delta_enabled = (va_arg(ap, int) != 0);
333
- break;
334
-
335
- case GIT_OPT_ENABLE_FSYNC_GITDIR:
336
- git_repository__fsync_gitdir = (va_arg(ap, int) != 0);
337
- break;
338
-
339
- case GIT_OPT_GET_WINDOWS_SHAREMODE:
340
- #ifdef GIT_WIN32
341
- *(va_arg(ap, unsigned long *)) = git_win32__createfile_sharemode;
226
+ case GIT_FEATURE_SHA1:
227
+ #if defined(GIT_SHA1_COLLISIONDETECT)
228
+ return "builtin";
229
+ #elif defined(GIT_SHA1_OPENSSL)
230
+ return "openssl";
231
+ #elif defined(GIT_SHA1_OPENSSL_FIPS)
232
+ return "openssl-fips";
233
+ #elif defined(GIT_SHA1_OPENSSL_DYNAMIC)
234
+ return "openssl-dynamic";
235
+ #elif defined(GIT_SHA1_MBEDTLS)
236
+ return "mbedtls";
237
+ #elif defined(GIT_SHA1_COMMON_CRYPTO)
238
+ return "commoncrypto";
239
+ #elif defined(GIT_SHA1_WIN32)
240
+ return "win32";
241
+ #else
242
+ GIT_ASSERT_WITH_RETVAL(!"Unknown SHA1 backend", NULL);
342
243
  #endif
343
244
  break;
344
245
 
345
- case GIT_OPT_SET_WINDOWS_SHAREMODE:
346
- #ifdef GIT_WIN32
347
- git_win32__createfile_sharemode = va_arg(ap, unsigned long);
246
+ case GIT_FEATURE_SHA256:
247
+ #if defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_BUILTIN)
248
+ return "builtin";
249
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_OPENSSL)
250
+ return "openssl";
251
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_OPENSSL_FIPS)
252
+ return "openssl-fips";
253
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_OPENSSL_DYNAMIC)
254
+ return "openssl-dynamic";
255
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_MBEDTLS)
256
+ return "mbedtls";
257
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_COMMON_CRYPTO)
258
+ return "commoncrypto";
259
+ #elif defined(GIT_EXPERIMENTAL_SHA256) && defined(GIT_SHA256_WIN32)
260
+ return "win32";
261
+ #elif defined(GIT_EXPERIMENTAL_SHA256)
262
+ GIT_ASSERT_WITH_RETVAL(!"Unknown SHA256 backend", NULL);
348
263
  #endif
349
264
  break;
350
-
351
- case GIT_OPT_ENABLE_STRICT_HASH_VERIFICATION:
352
- git_odb__strict_hash_verification = (va_arg(ap, int) != 0);
353
- break;
354
-
355
- case GIT_OPT_SET_ALLOCATOR:
356
- error = git_allocator_setup(va_arg(ap, git_allocator *));
357
- break;
358
-
359
- case GIT_OPT_ENABLE_UNSAVED_INDEX_SAFETY:
360
- git_index__enforce_unsaved_safety = (va_arg(ap, int) != 0);
361
- break;
362
-
363
- case GIT_OPT_SET_PACK_MAX_OBJECTS:
364
- git_indexer__max_objects = va_arg(ap, size_t);
365
- break;
366
-
367
- case GIT_OPT_GET_PACK_MAX_OBJECTS:
368
- *(va_arg(ap, size_t *)) = git_indexer__max_objects;
369
- break;
370
-
371
- case GIT_OPT_DISABLE_PACK_KEEP_FILE_CHECKS:
372
- git_disable_pack_keep_file_checks = (va_arg(ap, int) != 0);
373
- break;
374
-
375
- case GIT_OPT_ENABLE_HTTP_EXPECT_CONTINUE:
376
- git_http__expect_continue = (va_arg(ap, int) != 0);
377
- break;
378
-
379
- case GIT_OPT_SET_ODB_PACKED_PRIORITY:
380
- git_odb__packed_priority = va_arg(ap, int);
381
- break;
382
-
383
- case GIT_OPT_SET_ODB_LOOSE_PRIORITY:
384
- git_odb__loose_priority = va_arg(ap, int);
385
- break;
386
-
387
- case GIT_OPT_SET_EXTENSIONS:
388
- {
389
- const char **extensions = va_arg(ap, const char **);
390
- size_t len = va_arg(ap, size_t);
391
- error = git_repository__set_extensions(extensions, len);
392
- }
393
- break;
394
-
395
- case GIT_OPT_GET_EXTENSIONS:
396
- {
397
- git_strarray *out = va_arg(ap, git_strarray *);
398
- char **extensions;
399
- size_t len;
400
-
401
- if ((error = git_repository__extensions(&extensions, &len)) < 0)
402
- break;
403
-
404
- out->strings = extensions;
405
- out->count = len;
406
- }
407
- break;
408
-
409
- case GIT_OPT_GET_OWNER_VALIDATION:
410
- *(va_arg(ap, int *)) = git_repository__validate_ownership;
411
- break;
412
-
413
- case GIT_OPT_SET_OWNER_VALIDATION:
414
- git_repository__validate_ownership = (va_arg(ap, int) != 0);
415
- break;
416
-
417
- case GIT_OPT_GET_HOMEDIR:
418
- {
419
- git_buf *out = va_arg(ap, git_buf *);
420
- git_str str = GIT_STR_INIT;
421
- const git_str *tmp;
422
-
423
- if ((error = git_buf_tostr(&str, out)) < 0 ||
424
- (error = git_sysdir_get(&tmp, GIT_SYSDIR_HOME)) < 0 ||
425
- (error = git_str_put(&str, tmp->ptr, tmp->size)) < 0)
426
- break;
427
-
428
- error = git_buf_fromstr(out, &str);
429
- }
430
- break;
431
-
432
- case GIT_OPT_SET_HOMEDIR:
433
- error = git_sysdir_set(GIT_SYSDIR_HOME, va_arg(ap, const char *));
434
- break;
435
-
436
- default:
437
- git_error_set(GIT_ERROR_INVALID, "invalid option key");
438
- error = -1;
439
265
  }
440
266
 
441
- va_end(ap);
442
-
443
- return error;
267
+ return NULL;
444
268
  }
@@ -173,7 +173,7 @@ void git_mailmap_free(git_mailmap *mm)
173
173
  git_vector_foreach(&mm->entries, idx, entry)
174
174
  mailmap_entry_free(entry);
175
175
 
176
- git_vector_free(&mm->entries);
176
+ git_vector_dispose(&mm->entries);
177
177
  git__free(mm);
178
178
  }
179
179