rugged 0.27.9 → 0.27.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (420) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/AUTHORS +1 -0
  4. data/vendor/libgit2/CMakeLists.txt +98 -54
  5. data/vendor/libgit2/COPYING +28 -0
  6. data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
  7. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
  8. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  9. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  10. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
  11. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
  12. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
  13. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  14. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
  15. data/vendor/libgit2/cmake/Modules/FindmbedTLS.cmake +93 -0
  16. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
  17. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
  18. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
  19. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
  20. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +2 -0
  21. data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
  22. data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
  23. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
  24. data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
  25. data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
  26. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
  27. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
  28. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
  29. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
  30. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
  31. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
  32. data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
  33. data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
  34. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
  35. data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
  36. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
  37. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
  38. data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
  39. data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
  40. data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
  42. data/vendor/libgit2/deps/pcre/COPYING +5 -0
  43. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
  44. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
  45. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
  46. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
  47. data/vendor/libgit2/deps/pcre/config.h.in +57 -0
  48. data/vendor/libgit2/deps/pcre/pcre.h +641 -0
  49. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
  50. data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
  51. data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
  52. data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
  53. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
  54. data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
  55. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
  56. data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
  57. data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
  58. data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
  59. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
  60. data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
  61. data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
  62. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
  63. data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
  64. data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
  65. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
  66. data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
  67. data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
  68. data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
  69. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
  70. data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
  71. data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
  72. data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
  73. data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
  74. data/vendor/libgit2/deps/pcre/ucp.h +224 -0
  75. data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
  76. data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
  77. data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
  78. data/vendor/libgit2/deps/zlib/COPYING +27 -0
  79. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  80. data/vendor/libgit2/deps/zlib/crc32.c +0 -7
  81. data/vendor/libgit2/include/git2.h +5 -0
  82. data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
  83. data/vendor/libgit2/include/git2/apply.h +149 -0
  84. data/vendor/libgit2/include/git2/attr.h +38 -20
  85. data/vendor/libgit2/include/git2/blame.h +42 -25
  86. data/vendor/libgit2/include/git2/blob.h +45 -13
  87. data/vendor/libgit2/include/git2/branch.h +1 -1
  88. data/vendor/libgit2/include/git2/buffer.h +22 -16
  89. data/vendor/libgit2/include/git2/cert.h +135 -0
  90. data/vendor/libgit2/include/git2/checkout.h +65 -32
  91. data/vendor/libgit2/include/git2/cherrypick.h +9 -7
  92. data/vendor/libgit2/include/git2/clone.h +12 -10
  93. data/vendor/libgit2/include/git2/commit.h +53 -3
  94. data/vendor/libgit2/include/git2/common.h +60 -8
  95. data/vendor/libgit2/include/git2/config.h +30 -19
  96. data/vendor/libgit2/include/git2/cred.h +308 -0
  97. data/vendor/libgit2/include/git2/deprecated.h +493 -0
  98. data/vendor/libgit2/include/git2/describe.h +32 -9
  99. data/vendor/libgit2/include/git2/diff.h +208 -156
  100. data/vendor/libgit2/include/git2/errors.h +54 -46
  101. data/vendor/libgit2/include/git2/filter.h +8 -0
  102. data/vendor/libgit2/include/git2/ignore.h +2 -2
  103. data/vendor/libgit2/include/git2/index.h +74 -52
  104. data/vendor/libgit2/include/git2/indexer.h +76 -6
  105. data/vendor/libgit2/include/git2/mailmap.h +115 -0
  106. data/vendor/libgit2/include/git2/merge.h +35 -18
  107. data/vendor/libgit2/include/git2/net.h +0 -5
  108. data/vendor/libgit2/include/git2/notes.h +1 -1
  109. data/vendor/libgit2/include/git2/object.h +17 -29
  110. data/vendor/libgit2/include/git2/odb.h +12 -11
  111. data/vendor/libgit2/include/git2/odb_backend.h +10 -9
  112. data/vendor/libgit2/include/git2/oid.h +2 -2
  113. data/vendor/libgit2/include/git2/pack.h +14 -3
  114. data/vendor/libgit2/include/git2/proxy.h +14 -8
  115. data/vendor/libgit2/include/git2/rebase.h +53 -6
  116. data/vendor/libgit2/include/git2/refs.h +33 -15
  117. data/vendor/libgit2/include/git2/refspec.h +17 -0
  118. data/vendor/libgit2/include/git2/remote.h +123 -24
  119. data/vendor/libgit2/include/git2/repository.h +76 -39
  120. data/vendor/libgit2/include/git2/revert.h +6 -4
  121. data/vendor/libgit2/include/git2/revwalk.h +7 -7
  122. data/vendor/libgit2/include/git2/signature.h +2 -2
  123. data/vendor/libgit2/include/git2/stash.h +15 -12
  124. data/vendor/libgit2/include/git2/status.h +33 -20
  125. data/vendor/libgit2/include/git2/submodule.h +30 -12
  126. data/vendor/libgit2/include/git2/sys/alloc.h +101 -0
  127. data/vendor/libgit2/include/git2/sys/commit.h +1 -1
  128. data/vendor/libgit2/include/git2/sys/config.h +13 -13
  129. data/vendor/libgit2/include/git2/sys/cred.h +90 -0
  130. data/vendor/libgit2/include/git2/sys/filter.h +6 -6
  131. data/vendor/libgit2/include/git2/sys/index.h +3 -0
  132. data/vendor/libgit2/include/git2/sys/mempack.h +35 -35
  133. data/vendor/libgit2/include/git2/sys/merge.h +9 -4
  134. data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
  135. data/vendor/libgit2/include/git2/sys/path.h +64 -0
  136. data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
  137. data/vendor/libgit2/include/git2/sys/repository.h +5 -1
  138. data/vendor/libgit2/include/git2/sys/stream.h +92 -12
  139. data/vendor/libgit2/include/git2/sys/transport.h +129 -83
  140. data/vendor/libgit2/include/git2/tag.h +13 -4
  141. data/vendor/libgit2/include/git2/trace.h +2 -2
  142. data/vendor/libgit2/include/git2/transaction.h +1 -0
  143. data/vendor/libgit2/include/git2/transport.h +11 -311
  144. data/vendor/libgit2/include/git2/tree.h +4 -4
  145. data/vendor/libgit2/include/git2/types.h +33 -111
  146. data/vendor/libgit2/include/git2/version.h +4 -4
  147. data/vendor/libgit2/include/git2/worktree.h +48 -13
  148. data/vendor/libgit2/src/CMakeLists.txt +96 -164
  149. data/vendor/libgit2/src/alloc.c +43 -0
  150. data/vendor/libgit2/src/alloc.h +40 -0
  151. data/vendor/libgit2/src/allocators/stdalloc.c +119 -0
  152. data/vendor/libgit2/src/{streams/curl.h → allocators/stdalloc.h} +5 -5
  153. data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
  154. data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
  155. data/vendor/libgit2/src/annotated_commit.c +15 -8
  156. data/vendor/libgit2/src/apply.c +537 -31
  157. data/vendor/libgit2/src/apply.h +3 -1
  158. data/vendor/libgit2/src/array.h +2 -2
  159. data/vendor/libgit2/src/attr.c +81 -75
  160. data/vendor/libgit2/src/attr_file.c +207 -121
  161. data/vendor/libgit2/src/attr_file.h +9 -9
  162. data/vendor/libgit2/src/attrcache.c +51 -53
  163. data/vendor/libgit2/src/attrcache.h +2 -1
  164. data/vendor/libgit2/src/blame.c +47 -20
  165. data/vendor/libgit2/src/blame.h +2 -1
  166. data/vendor/libgit2/src/blame_git.c +37 -20
  167. data/vendor/libgit2/src/blob.c +128 -42
  168. data/vendor/libgit2/src/blob.h +19 -2
  169. data/vendor/libgit2/src/branch.c +67 -43
  170. data/vendor/libgit2/src/buf_text.c +7 -6
  171. data/vendor/libgit2/src/buffer.c +69 -57
  172. data/vendor/libgit2/src/buffer.h +1 -1
  173. data/vendor/libgit2/src/cache.c +38 -45
  174. data/vendor/libgit2/src/cache.h +3 -3
  175. data/vendor/libgit2/src/cc-compat.h +20 -3
  176. data/vendor/libgit2/src/checkout.c +109 -90
  177. data/vendor/libgit2/src/cherrypick.c +15 -9
  178. data/vendor/libgit2/src/clone.c +49 -27
  179. data/vendor/libgit2/src/clone.h +4 -0
  180. data/vendor/libgit2/src/commit.c +117 -49
  181. data/vendor/libgit2/src/commit.h +7 -0
  182. data/vendor/libgit2/src/commit_list.c +30 -78
  183. data/vendor/libgit2/src/commit_list.h +2 -2
  184. data/vendor/libgit2/src/common.h +27 -91
  185. data/vendor/libgit2/src/config.c +194 -176
  186. data/vendor/libgit2/src/config.h +8 -20
  187. data/vendor/libgit2/src/config_backend.h +96 -0
  188. data/vendor/libgit2/src/config_cache.c +41 -35
  189. data/vendor/libgit2/src/config_entries.c +229 -0
  190. data/vendor/libgit2/src/config_entries.h +24 -0
  191. data/vendor/libgit2/src/config_file.c +439 -753
  192. data/vendor/libgit2/src/config_mem.c +220 -0
  193. data/vendor/libgit2/src/config_parse.c +114 -63
  194. data/vendor/libgit2/src/config_parse.h +17 -16
  195. data/vendor/libgit2/src/config_snapshot.c +206 -0
  196. data/vendor/libgit2/src/crlf.c +219 -190
  197. data/vendor/libgit2/src/delta.c +25 -18
  198. data/vendor/libgit2/src/describe.c +42 -41
  199. data/vendor/libgit2/src/diff.c +53 -68
  200. data/vendor/libgit2/src/diff.h +2 -1
  201. data/vendor/libgit2/src/diff_driver.c +47 -49
  202. data/vendor/libgit2/src/diff_file.c +19 -17
  203. data/vendor/libgit2/src/diff_file.h +1 -1
  204. data/vendor/libgit2/src/diff_generate.c +162 -106
  205. data/vendor/libgit2/src/diff_generate.h +3 -3
  206. data/vendor/libgit2/src/diff_parse.c +4 -4
  207. data/vendor/libgit2/src/diff_print.c +42 -30
  208. data/vendor/libgit2/src/diff_stats.c +22 -7
  209. data/vendor/libgit2/src/diff_tform.c +16 -16
  210. data/vendor/libgit2/src/diff_xdiff.c +15 -3
  211. data/vendor/libgit2/src/errors.c +51 -39
  212. data/vendor/libgit2/src/errors.h +81 -0
  213. data/vendor/libgit2/src/features.h.in +11 -3
  214. data/vendor/libgit2/src/fetch.c +10 -5
  215. data/vendor/libgit2/src/fetchhead.c +17 -17
  216. data/vendor/libgit2/src/filebuf.c +32 -36
  217. data/vendor/libgit2/src/filebuf.h +2 -2
  218. data/vendor/libgit2/src/filter.c +46 -38
  219. data/vendor/libgit2/src/filter.h +0 -10
  220. data/vendor/libgit2/src/{fileops.c → futils.c} +80 -73
  221. data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
  222. data/vendor/libgit2/src/global.c +48 -63
  223. data/vendor/libgit2/src/global.h +0 -2
  224. data/vendor/libgit2/src/hash.c +61 -0
  225. data/vendor/libgit2/src/hash.h +20 -19
  226. data/vendor/libgit2/src/hash/sha1.h +38 -0
  227. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
  228. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
  229. data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
  230. data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
  231. data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
  232. data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
  233. data/vendor/libgit2/src/hash/sha1/mbedtls.c +46 -0
  234. data/vendor/libgit2/src/hash/sha1/mbedtls.h +19 -0
  235. data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
  236. data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
  237. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
  238. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
  239. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
  240. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
  241. data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
  242. data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
  243. data/vendor/libgit2/src/hashsig.c +5 -5
  244. data/vendor/libgit2/src/idxmap.c +107 -61
  245. data/vendor/libgit2/src/idxmap.h +153 -31
  246. data/vendor/libgit2/src/ignore.c +43 -47
  247. data/vendor/libgit2/src/index.c +337 -232
  248. data/vendor/libgit2/src/index.h +17 -1
  249. data/vendor/libgit2/src/indexer.c +346 -175
  250. data/vendor/libgit2/src/integer.h +71 -26
  251. data/vendor/libgit2/src/iterator.c +142 -70
  252. data/vendor/libgit2/src/iterator.h +15 -0
  253. data/vendor/libgit2/src/khash.h +3 -1
  254. data/vendor/libgit2/src/mailmap.c +485 -0
  255. data/vendor/libgit2/src/mailmap.h +35 -0
  256. data/vendor/libgit2/src/map.h +1 -1
  257. data/vendor/libgit2/src/merge.c +144 -100
  258. data/vendor/libgit2/src/merge_driver.c +11 -11
  259. data/vendor/libgit2/src/merge_file.c +2 -2
  260. data/vendor/libgit2/src/mwindow.c +24 -29
  261. data/vendor/libgit2/src/mwindow.h +4 -4
  262. data/vendor/libgit2/src/net.c +184 -0
  263. data/vendor/libgit2/src/net.h +36 -0
  264. data/vendor/libgit2/src/netops.c +55 -156
  265. data/vendor/libgit2/src/netops.h +3 -23
  266. data/vendor/libgit2/src/notes.c +16 -11
  267. data/vendor/libgit2/src/object.c +120 -69
  268. data/vendor/libgit2/src/object.h +22 -9
  269. data/vendor/libgit2/src/object_api.c +8 -8
  270. data/vendor/libgit2/src/odb.c +116 -93
  271. data/vendor/libgit2/src/odb.h +8 -7
  272. data/vendor/libgit2/src/odb_loose.c +62 -55
  273. data/vendor/libgit2/src/odb_mempack.c +21 -34
  274. data/vendor/libgit2/src/odb_pack.c +18 -14
  275. data/vendor/libgit2/src/offmap.c +53 -35
  276. data/vendor/libgit2/src/offmap.h +108 -21
  277. data/vendor/libgit2/src/oid.c +12 -7
  278. data/vendor/libgit2/src/oidmap.c +49 -47
  279. data/vendor/libgit2/src/oidmap.h +101 -24
  280. data/vendor/libgit2/src/pack-objects.c +88 -87
  281. data/vendor/libgit2/src/pack-objects.h +2 -8
  282. data/vendor/libgit2/src/pack.c +99 -101
  283. data/vendor/libgit2/src/pack.h +17 -19
  284. data/vendor/libgit2/src/parse.c +10 -0
  285. data/vendor/libgit2/src/parse.h +3 -3
  286. data/vendor/libgit2/src/patch.c +4 -4
  287. data/vendor/libgit2/src/patch_generate.c +20 -20
  288. data/vendor/libgit2/src/patch_parse.c +151 -63
  289. data/vendor/libgit2/src/path.c +169 -125
  290. data/vendor/libgit2/src/path.h +3 -71
  291. data/vendor/libgit2/src/pathspec.c +19 -19
  292. data/vendor/libgit2/src/pool.c +26 -22
  293. data/vendor/libgit2/src/pool.h +7 -7
  294. data/vendor/libgit2/src/posix.c +10 -10
  295. data/vendor/libgit2/src/posix.h +12 -1
  296. data/vendor/libgit2/src/proxy.c +8 -3
  297. data/vendor/libgit2/src/push.c +37 -31
  298. data/vendor/libgit2/src/push.h +2 -1
  299. data/vendor/libgit2/src/reader.c +265 -0
  300. data/vendor/libgit2/src/reader.h +107 -0
  301. data/vendor/libgit2/src/rebase.c +115 -59
  302. data/vendor/libgit2/src/refdb.c +15 -3
  303. data/vendor/libgit2/src/refdb_fs.c +381 -254
  304. data/vendor/libgit2/src/reflog.c +13 -15
  305. data/vendor/libgit2/src/refs.c +118 -88
  306. data/vendor/libgit2/src/refs.h +5 -3
  307. data/vendor/libgit2/src/refspec.c +56 -37
  308. data/vendor/libgit2/src/refspec.h +1 -1
  309. data/vendor/libgit2/src/regexp.c +221 -0
  310. data/vendor/libgit2/src/regexp.h +97 -0
  311. data/vendor/libgit2/src/remote.c +266 -215
  312. data/vendor/libgit2/src/remote.h +11 -2
  313. data/vendor/libgit2/src/repository.c +280 -225
  314. data/vendor/libgit2/src/repository.h +52 -40
  315. data/vendor/libgit2/src/reset.c +8 -8
  316. data/vendor/libgit2/src/revert.c +14 -9
  317. data/vendor/libgit2/src/revparse.c +47 -48
  318. data/vendor/libgit2/src/revwalk.c +120 -57
  319. data/vendor/libgit2/src/revwalk.h +22 -1
  320. data/vendor/libgit2/src/settings.c +47 -10
  321. data/vendor/libgit2/src/signature.c +11 -11
  322. data/vendor/libgit2/src/sortedcache.c +22 -36
  323. data/vendor/libgit2/src/sortedcache.h +1 -1
  324. data/vendor/libgit2/src/stash.c +125 -99
  325. data/vendor/libgit2/src/status.c +28 -22
  326. data/vendor/libgit2/src/stream.h +17 -2
  327. data/vendor/libgit2/src/streams/mbedtls.c +483 -0
  328. data/vendor/libgit2/src/streams/mbedtls.h +23 -0
  329. data/vendor/libgit2/src/streams/openssl.c +224 -114
  330. data/vendor/libgit2/src/streams/openssl.h +4 -108
  331. data/vendor/libgit2/src/streams/registry.c +118 -0
  332. data/vendor/libgit2/src/streams/registry.h +19 -0
  333. data/vendor/libgit2/src/streams/socket.c +55 -30
  334. data/vendor/libgit2/src/streams/stransport.c +57 -32
  335. data/vendor/libgit2/src/streams/stransport.h +5 -0
  336. data/vendor/libgit2/src/streams/tls.c +50 -19
  337. data/vendor/libgit2/src/streams/tls.h +12 -4
  338. data/vendor/libgit2/src/strmap.c +47 -74
  339. data/vendor/libgit2/src/strmap.h +108 -33
  340. data/vendor/libgit2/src/submodule.c +272 -216
  341. data/vendor/libgit2/src/submodule.h +1 -1
  342. data/vendor/libgit2/src/sysdir.c +29 -19
  343. data/vendor/libgit2/src/tag.c +41 -28
  344. data/vendor/libgit2/src/tag.h +2 -1
  345. data/vendor/libgit2/src/trace.c +2 -2
  346. data/vendor/libgit2/src/trace.h +3 -3
  347. data/vendor/libgit2/src/trailer.c +52 -38
  348. data/vendor/libgit2/src/transaction.c +30 -29
  349. data/vendor/libgit2/src/transport.c +5 -5
  350. data/vendor/libgit2/src/transports/auth.c +15 -11
  351. data/vendor/libgit2/src/transports/auth.h +10 -3
  352. data/vendor/libgit2/src/transports/auth_negotiate.c +33 -18
  353. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  354. data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
  355. data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
  356. data/vendor/libgit2/src/transports/cred.c +24 -24
  357. data/vendor/libgit2/src/transports/git.c +26 -31
  358. data/vendor/libgit2/src/transports/http.c +881 -348
  359. data/vendor/libgit2/src/transports/http.h +2 -0
  360. data/vendor/libgit2/src/transports/local.c +35 -35
  361. data/vendor/libgit2/src/transports/smart.c +70 -47
  362. data/vendor/libgit2/src/transports/smart.h +3 -4
  363. data/vendor/libgit2/src/transports/smart_pkt.c +43 -40
  364. data/vendor/libgit2/src/transports/smart_protocol.c +96 -116
  365. data/vendor/libgit2/src/transports/ssh.c +77 -66
  366. data/vendor/libgit2/src/transports/winhttp.c +318 -314
  367. data/vendor/libgit2/src/tree-cache.c +19 -12
  368. data/vendor/libgit2/src/tree.c +103 -142
  369. data/vendor/libgit2/src/tree.h +1 -12
  370. data/vendor/libgit2/src/unix/map.c +3 -3
  371. data/vendor/libgit2/src/unix/posix.h +1 -11
  372. data/vendor/libgit2/src/userdiff.h +3 -1
  373. data/vendor/libgit2/src/util.c +70 -56
  374. data/vendor/libgit2/src/util.h +28 -156
  375. data/vendor/libgit2/src/vector.c +4 -4
  376. data/vendor/libgit2/src/wildmatch.c +320 -0
  377. data/vendor/libgit2/src/wildmatch.h +23 -0
  378. data/vendor/libgit2/src/win32/dir.c +3 -3
  379. data/vendor/libgit2/src/win32/findfile.c +3 -3
  380. data/vendor/libgit2/src/win32/map.c +9 -11
  381. data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
  382. data/vendor/libgit2/src/win32/path_w32.c +113 -9
  383. data/vendor/libgit2/src/win32/path_w32.h +18 -29
  384. data/vendor/libgit2/src/win32/posix.h +1 -4
  385. data/vendor/libgit2/src/win32/posix_w32.c +70 -45
  386. data/vendor/libgit2/src/win32/precompiled.h +0 -2
  387. data/vendor/libgit2/src/win32/thread.c +5 -10
  388. data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
  389. data/vendor/libgit2/src/win32/w32_common.h +39 -0
  390. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +3 -2
  391. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +26 -75
  392. data/vendor/libgit2/src/win32/w32_stack.c +6 -11
  393. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  394. data/vendor/libgit2/src/win32/w32_util.c +27 -64
  395. data/vendor/libgit2/src/win32/w32_util.h +5 -49
  396. data/vendor/libgit2/src/worktree.c +95 -60
  397. data/vendor/libgit2/src/worktree.h +2 -0
  398. data/vendor/libgit2/src/xdiff/xdiffi.c +7 -5
  399. data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
  400. data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
  401. data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
  402. data/vendor/libgit2/src/zstream.c +4 -4
  403. metadata +122 -33
  404. data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
  405. data/vendor/libgit2/deps/regex/config.h +0 -7
  406. data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
  407. data/vendor/libgit2/deps/regex/regex.c +0 -92
  408. data/vendor/libgit2/deps/regex/regex.h +0 -582
  409. data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
  410. data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
  411. data/vendor/libgit2/deps/regex/regexec.c +0 -4369
  412. data/vendor/libgit2/include/git2/inttypes.h +0 -309
  413. data/vendor/libgit2/include/git2/sys/time.h +0 -31
  414. data/vendor/libgit2/libgit2.pc.in +0 -13
  415. data/vendor/libgit2/src/config_file.h +0 -73
  416. data/vendor/libgit2/src/fnmatch.c +0 -248
  417. data/vendor/libgit2/src/fnmatch.h +0 -48
  418. data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
  419. data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
  420. data/vendor/libgit2/src/streams/curl.c +0 -385
@@ -124,21 +124,21 @@ static int lookup_index_alloc(
124
124
  {
125
125
  size_t entries_len, hash_len, index_len;
126
126
 
127
- GITERR_CHECK_ALLOC_MULTIPLY(&entries_len, entries, sizeof(struct index_entry));
128
- GITERR_CHECK_ALLOC_MULTIPLY(&hash_len, hash_count, sizeof(struct index_entry *));
127
+ GIT_ERROR_CHECK_ALLOC_MULTIPLY(&entries_len, entries, sizeof(struct index_entry));
128
+ GIT_ERROR_CHECK_ALLOC_MULTIPLY(&hash_len, hash_count, sizeof(struct index_entry *));
129
129
 
130
- GITERR_CHECK_ALLOC_ADD(&index_len, sizeof(struct git_delta_index), entries_len);
131
- GITERR_CHECK_ALLOC_ADD(&index_len, index_len, hash_len);
130
+ GIT_ERROR_CHECK_ALLOC_ADD(&index_len, sizeof(struct git_delta_index), entries_len);
131
+ GIT_ERROR_CHECK_ALLOC_ADD(&index_len, index_len, hash_len);
132
132
 
133
133
  if (!git__is_ulong(index_len)) {
134
- giterr_set(GITERR_NOMEMORY, "overly large delta");
134
+ git_error_set(GIT_ERROR_NOMEMORY, "overly large delta");
135
135
  return -1;
136
136
  }
137
137
 
138
138
  *out = git__malloc(index_len);
139
- GITERR_CHECK_ALLOC(*out);
139
+ GIT_ERROR_CHECK_ALLOC(*out);
140
140
 
141
- *out_len = index_len;
141
+ *out_len = (unsigned long)index_len;
142
142
  return 0;
143
143
  }
144
144
 
@@ -286,15 +286,22 @@ int git_delta_create_from_index(
286
286
  if (!trg_buf || !trg_size)
287
287
  return 0;
288
288
 
289
+ if (index->src_size > UINT_MAX ||
290
+ trg_size > UINT_MAX ||
291
+ max_size > (UINT_MAX - MAX_OP_SIZE - 1)) {
292
+ git_error_set(GIT_ERROR_INVALID, "buffer sizes too large for delta processing");
293
+ return -1;
294
+ }
295
+
289
296
  bufpos = 0;
290
297
  bufsize = 8192;
291
298
  if (max_size && bufsize >= max_size)
292
299
  bufsize = (unsigned int)(max_size + MAX_OP_SIZE + 1);
293
300
  buf = git__malloc(bufsize);
294
- GITERR_CHECK_ALLOC(buf);
301
+ GIT_ERROR_CHECK_ALLOC(buf);
295
302
 
296
303
  /* store reference buffer size */
297
- i = index->src_size;
304
+ i = (unsigned int)index->src_size;
298
305
  while (i >= 0x80) {
299
306
  buf[bufpos++] = i | 0x80;
300
307
  i >>= 7;
@@ -302,7 +309,7 @@ int git_delta_create_from_index(
302
309
  buf[bufpos++] = i;
303
310
 
304
311
  /* store target buffer size */
305
- i = trg_size;
312
+ i = (unsigned int)trg_size;
306
313
  while (i >= 0x80) {
307
314
  buf[bufpos++] = i | 0x80;
308
315
  i >>= 7;
@@ -423,7 +430,7 @@ int git_delta_create_from_index(
423
430
  void *tmp = buf;
424
431
  bufsize = bufsize * 3 / 2;
425
432
  if (max_size && bufsize >= max_size)
426
- bufsize = max_size + MAX_OP_SIZE + 1;
433
+ bufsize = (unsigned int)(max_size + MAX_OP_SIZE + 1);
427
434
  if (max_size && bufpos > max_size)
428
435
  break;
429
436
  buf = git__realloc(buf, bufsize);
@@ -438,7 +445,7 @@ int git_delta_create_from_index(
438
445
  buf[bufpos - inscnt - 1] = inscnt;
439
446
 
440
447
  if (max_size && bufpos > max_size) {
441
- giterr_set(GITERR_NOMEMORY, "delta would be larger than maximum size");
448
+ git_error_set(GIT_ERROR_NOMEMORY, "delta would be larger than maximum size");
442
449
  git__free(buf);
443
450
  return GIT_EBUFS;
444
451
  }
@@ -466,7 +473,7 @@ static int hdr_sz(
466
473
 
467
474
  do {
468
475
  if (d == end) {
469
- giterr_set(GITERR_INVALID, "truncated delta");
476
+ git_error_set(GIT_ERROR_INVALID, "truncated delta");
470
477
  return -1;
471
478
  }
472
479
 
@@ -545,18 +552,18 @@ int git_delta_apply(
545
552
  * base object, resulting in data corruption or segfault.
546
553
  */
547
554
  if ((hdr_sz(&base_sz, &delta, delta_end) < 0) || (base_sz != base_len)) {
548
- giterr_set(GITERR_INVALID, "failed to apply delta: base size does not match given data");
555
+ git_error_set(GIT_ERROR_INVALID, "failed to apply delta: base size does not match given data");
549
556
  return -1;
550
557
  }
551
558
 
552
559
  if (hdr_sz(&res_sz, &delta, delta_end) < 0) {
553
- giterr_set(GITERR_INVALID, "failed to apply delta: base size does not match given data");
560
+ git_error_set(GIT_ERROR_INVALID, "failed to apply delta: base size does not match given data");
554
561
  return -1;
555
562
  }
556
563
 
557
- GITERR_CHECK_ALLOC_ADD(&alloc_sz, res_sz, 1);
564
+ GIT_ERROR_CHECK_ALLOC_ADD(&alloc_sz, res_sz, 1);
558
565
  res_dp = git__malloc(alloc_sz);
559
- GITERR_CHECK_ALLOC(res_dp);
566
+ GIT_ERROR_CHECK_ALLOC(res_dp);
560
567
 
561
568
  res_dp[res_sz] = '\0';
562
569
  *out = res_dp;
@@ -616,6 +623,6 @@ fail:
616
623
  *out = NULL;
617
624
  *out_len = 0;
618
625
 
619
- giterr_set(GITERR_INVALID, "failed to apply delta");
626
+ git_error_set(GIT_ERROR_INVALID, "failed to apply delta");
620
627
  return -1;
621
628
  }
@@ -16,10 +16,11 @@
16
16
  #include "commit_list.h"
17
17
  #include "oidmap.h"
18
18
  #include "refs.h"
19
+ #include "repository.h"
19
20
  #include "revwalk.h"
20
21
  #include "tag.h"
21
22
  #include "vector.h"
22
- #include "repository.h"
23
+ #include "wildmatch.h"
23
24
 
24
25
  /* Ported from https://github.com/git/git/blob/89dde7882f71f846ccd0359756d27bebc31108de/builtin/describe.c */
25
26
 
@@ -36,12 +37,7 @@ struct commit_name {
36
37
 
37
38
  static void *oidmap_value_bykey(git_oidmap *map, const git_oid *key)
38
39
  {
39
- khint_t pos = git_oidmap_lookup_index(map, key);
40
-
41
- if (!git_oidmap_valid_index(map, pos))
42
- return NULL;
43
-
44
- return git_oidmap_value_at(map, pos);
40
+ return git_oidmap_get(map, key);
45
41
  }
46
42
 
47
43
  static struct commit_name *find_commit_name(
@@ -108,7 +104,7 @@ static int add_to_known_names(
108
104
  if (replace_name(&tag, repo, e, prio, sha1)) {
109
105
  if (!found) {
110
106
  e = git__malloc(sizeof(struct commit_name));
111
- GITERR_CHECK_ALLOC(e);
107
+ GIT_ERROR_CHECK_ALLOC(e);
112
108
 
113
109
  e->path = NULL;
114
110
  e->tag = NULL;
@@ -124,13 +120,8 @@ static int add_to_known_names(
124
120
  e->path = git__strdup(path);
125
121
  git_oid_cpy(&e->peeled, peeled);
126
122
 
127
- if (!found) {
128
- int ret;
129
-
130
- git_oidmap_insert(names, &e->peeled, e, &ret);
131
- if (ret < 0)
132
- return -1;
133
- }
123
+ if (!found && git_oidmap_set(names, &e->peeled, e) < 0)
124
+ return -1;
134
125
  }
135
126
  else
136
127
  git_tag_free(tag);
@@ -151,7 +142,7 @@ static int retrieve_peeled_tag_or_object_oid(
151
142
  if ((error = git_reference_lookup_resolved(&ref, repo, refname, -1)) < 0)
152
143
  return error;
153
144
 
154
- if ((error = git_reference_peel(&peeled, ref, GIT_OBJ_ANY)) < 0)
145
+ if ((error = git_reference_peel(&peeled, ref, GIT_OBJECT_ANY)) < 0)
155
146
  goto cleanup;
156
147
 
157
148
  git_oid_cpy(ref_target_out, git_reference_target(ref));
@@ -191,7 +182,7 @@ static int commit_name_dup(struct commit_name **out, struct commit_name *in)
191
182
  struct commit_name *name;
192
183
 
193
184
  name = git__malloc(sizeof(struct commit_name));
194
- GITERR_CHECK_ALLOC(name);
185
+ GIT_ERROR_CHECK_ALLOC(name);
195
186
 
196
187
  memcpy(name, in, sizeof(struct commit_name));
197
188
  name->tag = NULL;
@@ -201,7 +192,7 @@ static int commit_name_dup(struct commit_name **out, struct commit_name *in)
201
192
  return -1;
202
193
 
203
194
  name->path = git__strdup(in->path);
204
- GITERR_CHECK_ALLOC(name->path);
195
+ GIT_ERROR_CHECK_ALLOC(name->path);
205
196
 
206
197
  *out = name;
207
198
  return 0;
@@ -224,7 +215,7 @@ static int get_name(const char *refname, void *payload)
224
215
  return 0;
225
216
 
226
217
  /* Accept only tags that match the pattern, if given */
227
- if (data->opts->pattern && (!is_tag || p_fnmatch(data->opts->pattern,
218
+ if (data->opts->pattern && (!is_tag || wildmatch(data->opts->pattern,
228
219
  refname + strlen(GIT_REFS_TAGS_DIR), 0)))
229
220
  return 0;
230
221
 
@@ -267,7 +258,7 @@ static int possible_tag_dup(struct possible_tag **out, struct possible_tag *in)
267
258
  int error;
268
259
 
269
260
  tag = git__malloc(sizeof(struct possible_tag));
270
- GITERR_CHECK_ALLOC(tag);
261
+ GIT_ERROR_CHECK_ALLOC(tag);
271
262
 
272
263
  memcpy(tag, in, sizeof(struct possible_tag));
273
264
  tag->name = NULL;
@@ -335,14 +326,14 @@ static int display_name(git_buf *buf, git_repository *repo, struct commit_name *
335
326
  {
336
327
  if (n->prio == 2 && !n->tag) {
337
328
  if (git_tag_lookup(&n->tag, repo, &n->sha1) < 0) {
338
- giterr_set(GITERR_TAG, "annotated tag '%s' not available", n->path);
329
+ git_error_set(GIT_ERROR_TAG, "annotated tag '%s' not available", n->path);
339
330
  return -1;
340
331
  }
341
332
  }
342
333
 
343
334
  if (n->tag && !n->name_checked) {
344
335
  if (!git_tag_name(n->tag)) {
345
- giterr_set(GITERR_TAG, "annotated tag '%s' has no embedded name", n->path);
336
+ git_error_set(GIT_ERROR_TAG, "annotated tag '%s' has no embedded name", n->path);
346
337
  return -1;
347
338
  }
348
339
 
@@ -366,7 +357,7 @@ static int find_unique_abbrev_size(
366
357
  int *out,
367
358
  git_repository *repo,
368
359
  const git_oid *oid_in,
369
- int abbreviated_size)
360
+ unsigned int abbreviated_size)
370
361
  {
371
362
  size_t size = abbreviated_size;
372
363
  git_odb *odb;
@@ -392,7 +383,7 @@ static int find_unique_abbrev_size(
392
383
 
393
384
  /* If we didn't find any shorter prefix, we have to do the whole thing */
394
385
  *out = GIT_OID_HEXSZ;
395
-
386
+
396
387
  return 0;
397
388
  }
398
389
 
@@ -401,7 +392,7 @@ static int show_suffix(
401
392
  int depth,
402
393
  git_repository *repo,
403
394
  const git_oid* id,
404
- size_t abbrev_size)
395
+ unsigned int abbrev_size)
405
396
  {
406
397
  int error, size = 0;
407
398
 
@@ -425,7 +416,7 @@ static int describe_not_found(const git_oid *oid, const char *message_format) {
425
416
  char oid_str[GIT_OID_HEXSZ + 1];
426
417
  git_oid_tostr(oid_str, sizeof(oid_str), oid);
427
418
 
428
- giterr_set(GITERR_DESCRIBE, message_format, oid_str);
419
+ git_error_set(GIT_ERROR_DESCRIBE, message_format, oid_str);
429
420
  return GIT_ENOTFOUND;
430
421
  }
431
422
 
@@ -504,7 +495,7 @@ static int describe(
504
495
  unannotated_cnt++;
505
496
  } else if (match_cnt < data->opts->max_candidates_tags) {
506
497
  struct possible_tag *t = git__malloc(sizeof(struct commit_name));
507
- GITERR_CHECK_ALLOC(t);
498
+ GIT_ERROR_CHECK_ALLOC(t);
508
499
  if ((error = git_vector_insert(&all_matches, t)) < 0)
509
500
  goto cleanup;
510
501
 
@@ -563,14 +554,14 @@ static int describe(
563
554
  goto cleanup;
564
555
  }
565
556
  if (unannotated_cnt) {
566
- error = describe_not_found(git_commit_id(commit),
557
+ error = describe_not_found(git_commit_id(commit),
567
558
  "cannot describe - "
568
559
  "no annotated tags can describe '%s'; "
569
560
  "however, there were unannotated tags.");
570
561
  goto cleanup;
571
562
  }
572
563
  else {
573
- error = describe_not_found(git_commit_id(commit),
564
+ error = describe_not_found(git_commit_id(commit),
574
565
  "cannot describe - "
575
566
  "no tags can describe '%s'.");
576
567
  goto cleanup;
@@ -667,7 +658,7 @@ int git_describe_commit(
667
658
  assert(committish);
668
659
 
669
660
  data.result = git__calloc(1, sizeof(git_describe_result));
670
- GITERR_CHECK_ALLOC(data.result);
661
+ GIT_ERROR_CHECK_ALLOC(data.result);
671
662
  data.result->repo = git_object_owner(committish);
672
663
 
673
664
  data.repo = git_object_owner(committish);
@@ -675,18 +666,18 @@ int git_describe_commit(
675
666
  if ((error = normalize_options(&normalized, opts)) < 0)
676
667
  return error;
677
668
 
678
- GITERR_CHECK_VERSION(
669
+ GIT_ERROR_CHECK_VERSION(
679
670
  &normalized,
680
671
  GIT_DESCRIBE_OPTIONS_VERSION,
681
672
  "git_describe_options");
682
673
  data.opts = &normalized;
683
674
 
684
- data.names = git_oidmap_alloc();
685
- GITERR_CHECK_ALLOC(data.names);
675
+ if ((error = git_oidmap_new(&data.names)) < 0)
676
+ return error;
686
677
 
687
678
  /** TODO: contains to be implemented */
688
679
 
689
- if ((error = git_object_peel((git_object **)(&commit), committish, GIT_OBJ_COMMIT)) < 0)
680
+ if ((error = git_object_peel((git_object **)(&commit), committish, GIT_OBJECT_COMMIT)) < 0)
690
681
  goto cleanup;
691
682
 
692
683
  if ((error = git_reference_foreach_name(
@@ -695,7 +686,7 @@ int git_describe_commit(
695
686
  goto cleanup;
696
687
 
697
688
  if (git_oidmap_size(data.names) == 0 && !opts->show_commit_oid_as_fallback) {
698
- giterr_set(GITERR_DESCRIBE, "cannot describe - "
689
+ git_error_set(GIT_ERROR_DESCRIBE, "cannot describe - "
699
690
  "no reference found, cannot describe anything.");
700
691
  error = -1;
701
692
  goto cleanup;
@@ -738,7 +729,7 @@ int git_describe_workdir(
738
729
  if ((error = git_reference_name_to_id(&current_id, repo, GIT_HEAD_FILE)) < 0)
739
730
  return error;
740
731
 
741
- if ((error = git_object_lookup(&commit, repo, &current_id, GIT_OBJ_COMMIT)) < 0)
732
+ if ((error = git_object_lookup(&commit, repo, &current_id, GIT_OBJECT_COMMIT)) < 0)
742
733
  return error;
743
734
 
744
735
  /* The first step is to perform a describe of HEAD, so we can leverage this */
@@ -769,7 +760,7 @@ static int normalize_format_options(
769
760
  const git_describe_format_options *src)
770
761
  {
771
762
  if (!src) {
772
- git_describe_init_format_options(dst, GIT_DESCRIBE_FORMAT_OPTIONS_VERSION);
763
+ git_describe_format_options_init(dst, GIT_DESCRIBE_FORMAT_OPTIONS_VERSION);
773
764
  return 0;
774
765
  }
775
766
 
@@ -786,14 +777,14 @@ int git_describe_format(git_buf *out, const git_describe_result *result, const g
786
777
 
787
778
  assert(out && result);
788
779
 
789
- GITERR_CHECK_VERSION(given, GIT_DESCRIBE_FORMAT_OPTIONS_VERSION, "git_describe_format_options");
780
+ GIT_ERROR_CHECK_VERSION(given, GIT_DESCRIBE_FORMAT_OPTIONS_VERSION, "git_describe_format_options");
790
781
  normalize_format_options(&opts, given);
791
782
 
792
783
  git_buf_sanitize(out);
793
784
 
794
785
 
795
786
  if (opts.always_use_long_format && opts.abbreviated_size == 0) {
796
- giterr_set(GITERR_DESCRIBE, "cannot describe - "
787
+ git_error_set(GIT_ERROR_DESCRIBE, "cannot describe - "
797
788
  "'always_use_long_format' is incompatible with a zero"
798
789
  "'abbreviated_size'");
799
790
  return -1;
@@ -878,16 +869,26 @@ void git_describe_result_free(git_describe_result *result)
878
869
  git__free(result);
879
870
  }
880
871
 
881
- int git_describe_init_options(git_describe_options *opts, unsigned int version)
872
+ int git_describe_options_init(git_describe_options *opts, unsigned int version)
882
873
  {
883
874
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
884
875
  opts, version, git_describe_options, GIT_DESCRIBE_OPTIONS_INIT);
885
876
  return 0;
886
877
  }
887
878
 
888
- int git_describe_init_format_options(git_describe_format_options *opts, unsigned int version)
879
+ int git_describe_init_options(git_describe_options *opts, unsigned int version)
880
+ {
881
+ return git_describe_options_init(opts, version);
882
+ }
883
+
884
+ int git_describe_format_options_init(git_describe_format_options *opts, unsigned int version)
889
885
  {
890
886
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
891
887
  opts, version, git_describe_format_options, GIT_DESCRIBE_FORMAT_OPTIONS_INIT);
892
888
  return 0;
893
889
  }
890
+
891
+ int git_describe_init_format_options(git_describe_format_options *opts, unsigned int version)
892
+ {
893
+ return git_describe_format_options_init(opts, version);
894
+ }
@@ -114,7 +114,7 @@ int git_diff_is_sorted_icase(const git_diff *diff)
114
114
  int git_diff_get_perfdata(git_diff_perfdata *out, const git_diff *diff)
115
115
  {
116
116
  assert(out);
117
- GITERR_CHECK_VERSION(out, GIT_DIFF_PERFDATA_VERSION, "git_diff_perfdata");
117
+ GIT_ERROR_CHECK_VERSION(out, GIT_DIFF_PERFDATA_VERSION, "git_diff_perfdata");
118
118
  out->stat_calls = diff->perf.stat_calls;
119
119
  out->oid_calculations = diff->perf.oid_calculations;
120
120
  return 0;
@@ -251,7 +251,7 @@ int git_diff_format_email(
251
251
  assert(out && diff && opts);
252
252
  assert(opts->summary && opts->id && opts->author);
253
253
 
254
- GITERR_CHECK_VERSION(opts,
254
+ GIT_ERROR_CHECK_VERSION(opts,
255
255
  GIT_DIFF_FORMAT_EMAIL_OPTIONS_VERSION,
256
256
  "git_format_email_options");
257
257
 
@@ -260,14 +260,14 @@ int git_diff_format_email(
260
260
 
261
261
  if (!ignore_marker) {
262
262
  if (opts->patch_no > opts->total_patches) {
263
- giterr_set(GITERR_INVALID,
263
+ git_error_set(GIT_ERROR_INVALID,
264
264
  "patch %"PRIuZ" out of range. max %"PRIuZ,
265
265
  opts->patch_no, opts->total_patches);
266
266
  return -1;
267
267
  }
268
268
 
269
269
  if (opts->patch_no == 0) {
270
- giterr_set(GITERR_INVALID,
270
+ git_error_set(GIT_ERROR_INVALID,
271
271
  "invalid patch no %"PRIuZ". should be >0", opts->patch_no);
272
272
  return -1;
273
273
  }
@@ -280,14 +280,14 @@ int git_diff_format_email(
280
280
  size_t offset = 0;
281
281
 
282
282
  if ((offset = (loc - opts->summary)) == 0) {
283
- giterr_set(GITERR_INVALID, "summary is empty");
283
+ git_error_set(GIT_ERROR_INVALID, "summary is empty");
284
284
  error = -1;
285
285
  goto on_error;
286
286
  }
287
287
 
288
- GITERR_CHECK_ALLOC_ADD(&allocsize, offset, 1);
288
+ GIT_ERROR_CHECK_ALLOC_ADD(&allocsize, offset, 1);
289
289
  summary = git__calloc(allocsize, sizeof(char));
290
- GITERR_CHECK_ALLOC(summary);
290
+ GIT_ERROR_CHECK_ALLOC(summary);
291
291
 
292
292
  strncpy(summary, opts->summary, offset);
293
293
  }
@@ -323,7 +323,7 @@ int git_diff_commit_as_email(
323
323
  git_commit *commit,
324
324
  size_t patch_no,
325
325
  size_t total_patches,
326
- git_diff_format_email_flags_t flags,
326
+ uint32_t flags,
327
327
  const git_diff_options *diff_opts)
328
328
  {
329
329
  git_diff *diff = NULL;
@@ -350,14 +350,19 @@ int git_diff_commit_as_email(
350
350
  return error;
351
351
  }
352
352
 
353
- int git_diff_init_options(git_diff_options *opts, unsigned int version)
353
+ int git_diff_options_init(git_diff_options *opts, unsigned int version)
354
354
  {
355
355
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
356
356
  opts, version, git_diff_options, GIT_DIFF_OPTIONS_INIT);
357
357
  return 0;
358
358
  }
359
359
 
360
- int git_diff_find_init_options(
360
+ int git_diff_init_options(git_diff_options *opts, unsigned int version)
361
+ {
362
+ return git_diff_options_init(opts, version);
363
+ }
364
+
365
+ int git_diff_find_options_init(
361
366
  git_diff_find_options *opts, unsigned int version)
362
367
  {
363
368
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
@@ -365,7 +370,13 @@ int git_diff_find_init_options(
365
370
  return 0;
366
371
  }
367
372
 
368
- int git_diff_format_email_init_options(
373
+ int git_diff_find_init_options(
374
+ git_diff_find_options *opts, unsigned int version)
375
+ {
376
+ return git_diff_find_options_init(opts, version);
377
+ }
378
+
379
+ int git_diff_format_email_options_init(
369
380
  git_diff_format_email_options *opts, unsigned int version)
370
381
  {
371
382
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
@@ -374,6 +385,12 @@ int git_diff_format_email_init_options(
374
385
  return 0;
375
386
  }
376
387
 
388
+ int git_diff_format_email_init_options(
389
+ git_diff_format_email_options *opts, unsigned int version)
390
+ {
391
+ return git_diff_format_email_options_init(opts, version);
392
+ }
393
+
377
394
  static int flush_hunk(git_oid *result, git_hash_ctx *ctx)
378
395
  {
379
396
  git_oid hash;
@@ -386,7 +403,7 @@ static int flush_hunk(git_oid *result, git_hash_ctx *ctx)
386
403
 
387
404
  for (i = 0; i < GIT_OID_RAWSZ; i++) {
388
405
  carry += result->id[i] + hash.id[i];
389
- result->id[i] = carry;
406
+ result->id[i] = (unsigned char)carry;
390
407
  carry >>= 8;
391
408
  }
392
409
 
@@ -409,79 +426,44 @@ static void strip_spaces(git_buf *buf)
409
426
  git_buf_truncate(buf, len);
410
427
  }
411
428
 
412
- static int file_cb(
429
+ int git_diff_patchid_print_callback__to_buf(
413
430
  const git_diff_delta *delta,
414
- float progress,
431
+ const git_diff_hunk *hunk,
432
+ const git_diff_line *line,
415
433
  void *payload)
416
434
  {
417
435
  struct patch_id_args *args = (struct patch_id_args *) payload;
418
436
  git_buf buf = GIT_BUF_INIT;
419
- int error;
420
-
421
- GIT_UNUSED(progress);
437
+ int error = 0;
422
438
 
423
- if (!args->first_file &&
424
- (error = flush_hunk(&args->result, &args->ctx)) < 0)
439
+ if (line->origin == GIT_DIFF_LINE_CONTEXT_EOFNL ||
440
+ line->origin == GIT_DIFF_LINE_ADD_EOFNL ||
441
+ line->origin == GIT_DIFF_LINE_DEL_EOFNL)
425
442
  goto out;
426
- args->first_file = 0;
427
-
428
- if ((error = git_buf_printf(&buf,
429
- "diff--gita/%sb/%s---a/%s+++b/%s",
430
- delta->old_file.path,
431
- delta->new_file.path,
432
- delta->old_file.path,
433
- delta->new_file.path)) < 0)
434
- goto out;
435
-
436
- strip_spaces(&buf);
437
443
 
438
- if ((error = git_hash_update(&args->ctx, buf.ptr, buf.size)) < 0)
444
+ if ((error = git_diff_print_callback__to_buf(delta, hunk,
445
+ line, &buf)) < 0)
439
446
  goto out;
440
447
 
441
- out:
442
- git_buf_free(&buf);
443
- return error;
444
- }
445
-
446
- static int line_cb(
447
- const git_diff_delta *delta,
448
- const git_diff_hunk *hunk,
449
- const git_diff_line *line,
450
- void *payload)
451
- {
452
- struct patch_id_args *args = (struct patch_id_args *) payload;
453
- git_buf buf = GIT_BUF_INIT;
454
- int error;
455
-
456
- GIT_UNUSED(delta);
457
- GIT_UNUSED(hunk);
458
-
459
- switch (line->origin) {
460
- case GIT_DIFF_LINE_ADDITION:
461
- git_buf_putc(&buf, '+');
462
- break;
463
- case GIT_DIFF_LINE_DELETION:
464
- git_buf_putc(&buf, '-');
465
- break;
466
- case GIT_DIFF_LINE_CONTEXT:
467
- break;
468
- default:
469
- giterr_set(GITERR_PATCH, "invalid line origin for patch");
470
- return -1;
471
- }
472
-
473
- git_buf_put(&buf, line->content, line->content_len);
474
448
  strip_spaces(&buf);
475
449
 
450
+ if (line->origin == GIT_DIFF_LINE_FILE_HDR &&
451
+ !args->first_file &&
452
+ (error = flush_hunk(&args->result, &args->ctx) < 0))
453
+ goto out;
454
+
476
455
  if ((error = git_hash_update(&args->ctx, buf.ptr, buf.size)) < 0)
477
456
  goto out;
478
457
 
458
+ if (line->origin == GIT_DIFF_LINE_FILE_HDR && args->first_file)
459
+ args->first_file = 0;
460
+
479
461
  out:
480
- git_buf_free(&buf);
462
+ git_buf_dispose(&buf);
481
463
  return error;
482
464
  }
483
465
 
484
- int git_diff_patchid_init_options(git_diff_patchid_options *opts, unsigned int version)
466
+ int git_diff_patchid_options_init(git_diff_patchid_options *opts, unsigned int version)
485
467
  {
486
468
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
487
469
  opts, version, git_diff_patchid_options, GIT_DIFF_PATCHID_OPTIONS_INIT);
@@ -493,7 +475,7 @@ int git_diff_patchid(git_oid *out, git_diff *diff, git_diff_patchid_options *opt
493
475
  struct patch_id_args args;
494
476
  int error;
495
477
 
496
- GITERR_CHECK_VERSION(
478
+ GIT_ERROR_CHECK_VERSION(
497
479
  opts, GIT_DIFF_PATCHID_OPTIONS_VERSION, "git_diff_patchid_options");
498
480
 
499
481
  memset(&args, 0, sizeof(args));
@@ -501,7 +483,10 @@ int git_diff_patchid(git_oid *out, git_diff *diff, git_diff_patchid_options *opt
501
483
  if ((error = git_hash_ctx_init(&args.ctx)) < 0)
502
484
  goto out;
503
485
 
504
- if ((error = git_diff_foreach(diff, file_cb, NULL, NULL, line_cb, &args)) < 0)
486
+ if ((error = git_diff_print(diff,
487
+ GIT_DIFF_FORMAT_PATCH_ID,
488
+ git_diff_patchid_print_callback__to_buf,
489
+ &args)) < 0)
505
490
  goto out;
506
491
 
507
492
  if ((error = (flush_hunk(&args.result, &args.ctx))) < 0)