rugged 0.27.7 → 0.27.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) 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 +99 -51
  5. data/vendor/libgit2/COPYING +28 -0
  6. data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
  7. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
  8. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
  9. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
  10. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  11. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  12. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
  13. data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
  14. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
  15. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
  16. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  17. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
  18. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
  19. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
  20. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
  21. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -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/annotated_commit.h +9 -0
  82. data/vendor/libgit2/include/git2/apply.h +149 -0
  83. data/vendor/libgit2/include/git2/attr.h +20 -13
  84. data/vendor/libgit2/include/git2/blame.h +4 -4
  85. data/vendor/libgit2/include/git2/blob.h +44 -12
  86. data/vendor/libgit2/include/git2/buffer.h +20 -26
  87. data/vendor/libgit2/include/git2/cert.h +135 -0
  88. data/vendor/libgit2/include/git2/checkout.h +53 -21
  89. data/vendor/libgit2/include/git2/cherrypick.h +3 -3
  90. data/vendor/libgit2/include/git2/clone.h +5 -5
  91. data/vendor/libgit2/include/git2/commit.h +25 -3
  92. data/vendor/libgit2/include/git2/common.h +35 -10
  93. data/vendor/libgit2/include/git2/config.h +29 -19
  94. data/vendor/libgit2/include/git2/cred.h +308 -0
  95. data/vendor/libgit2/include/git2/deprecated.h +493 -0
  96. data/vendor/libgit2/include/git2/describe.h +4 -4
  97. data/vendor/libgit2/include/git2/diff.h +177 -135
  98. data/vendor/libgit2/include/git2/errors.h +53 -46
  99. data/vendor/libgit2/include/git2/filter.h +8 -0
  100. data/vendor/libgit2/include/git2/index.h +74 -52
  101. data/vendor/libgit2/include/git2/indexer.h +76 -6
  102. data/vendor/libgit2/include/git2/merge.h +25 -10
  103. data/vendor/libgit2/include/git2/net.h +0 -5
  104. data/vendor/libgit2/include/git2/notes.h +1 -1
  105. data/vendor/libgit2/include/git2/object.h +17 -29
  106. data/vendor/libgit2/include/git2/odb.h +12 -11
  107. data/vendor/libgit2/include/git2/odb_backend.h +10 -9
  108. data/vendor/libgit2/include/git2/oid.h +2 -2
  109. data/vendor/libgit2/include/git2/pack.h +14 -3
  110. data/vendor/libgit2/include/git2/proxy.h +5 -3
  111. data/vendor/libgit2/include/git2/rebase.h +46 -2
  112. data/vendor/libgit2/include/git2/refs.h +34 -16
  113. data/vendor/libgit2/include/git2/remote.h +111 -14
  114. data/vendor/libgit2/include/git2/repository.h +69 -34
  115. data/vendor/libgit2/include/git2/revert.h +1 -1
  116. data/vendor/libgit2/include/git2/revwalk.h +7 -7
  117. data/vendor/libgit2/include/git2/signature.h +2 -2
  118. data/vendor/libgit2/include/git2/stash.h +5 -5
  119. data/vendor/libgit2/include/git2/status.h +26 -17
  120. data/vendor/libgit2/include/git2/submodule.h +23 -6
  121. data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
  122. data/vendor/libgit2/include/git2/sys/commit.h +1 -1
  123. data/vendor/libgit2/include/git2/sys/config.h +13 -13
  124. data/vendor/libgit2/include/git2/sys/cred.h +90 -0
  125. data/vendor/libgit2/include/git2/sys/filter.h +6 -6
  126. data/vendor/libgit2/include/git2/sys/merge.h +3 -3
  127. data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
  128. data/vendor/libgit2/include/git2/sys/path.h +14 -5
  129. data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
  130. data/vendor/libgit2/include/git2/sys/repository.h +5 -1
  131. data/vendor/libgit2/include/git2/sys/stream.h +92 -12
  132. data/vendor/libgit2/include/git2/sys/transport.h +129 -83
  133. data/vendor/libgit2/include/git2/tag.h +13 -4
  134. data/vendor/libgit2/include/git2/trace.h +2 -2
  135. data/vendor/libgit2/include/git2/transport.h +11 -311
  136. data/vendor/libgit2/include/git2/tree.h +4 -4
  137. data/vendor/libgit2/include/git2/types.h +25 -106
  138. data/vendor/libgit2/include/git2/version.h +3 -3
  139. data/vendor/libgit2/include/git2/worktree.h +5 -5
  140. data/vendor/libgit2/include/git2.h +4 -0
  141. data/vendor/libgit2/src/CMakeLists.txt +104 -235
  142. data/vendor/libgit2/src/alloc.c +14 -18
  143. data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
  144. data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
  145. data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
  146. data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
  147. data/vendor/libgit2/src/annotated_commit.c +18 -11
  148. data/vendor/libgit2/src/apply.c +535 -28
  149. data/vendor/libgit2/src/apply.h +3 -1
  150. data/vendor/libgit2/src/array.h +2 -2
  151. data/vendor/libgit2/src/attr.c +77 -71
  152. data/vendor/libgit2/src/attr_file.c +203 -117
  153. data/vendor/libgit2/src/attr_file.h +9 -9
  154. data/vendor/libgit2/src/attrcache.c +49 -51
  155. data/vendor/libgit2/src/attrcache.h +2 -1
  156. data/vendor/libgit2/src/blame.c +38 -18
  157. data/vendor/libgit2/src/blame.h +1 -1
  158. data/vendor/libgit2/src/blame_git.c +29 -15
  159. data/vendor/libgit2/src/blob.c +123 -37
  160. data/vendor/libgit2/src/blob.h +19 -2
  161. data/vendor/libgit2/src/branch.c +47 -23
  162. data/vendor/libgit2/src/buf_text.c +7 -6
  163. data/vendor/libgit2/src/buffer.c +60 -53
  164. data/vendor/libgit2/src/cache.c +38 -45
  165. data/vendor/libgit2/src/cache.h +3 -3
  166. data/vendor/libgit2/src/cc-compat.h +20 -3
  167. data/vendor/libgit2/src/checkout.c +77 -67
  168. data/vendor/libgit2/src/cherrypick.c +12 -6
  169. data/vendor/libgit2/src/clone.c +36 -14
  170. data/vendor/libgit2/src/clone.h +4 -0
  171. data/vendor/libgit2/src/commit.c +103 -48
  172. data/vendor/libgit2/src/commit.h +7 -0
  173. data/vendor/libgit2/src/commit_list.c +36 -78
  174. data/vendor/libgit2/src/commit_list.h +2 -2
  175. data/vendor/libgit2/src/common.h +24 -90
  176. data/vendor/libgit2/src/config.c +203 -176
  177. data/vendor/libgit2/src/config.h +8 -20
  178. data/vendor/libgit2/src/config_backend.h +96 -0
  179. data/vendor/libgit2/src/config_cache.c +41 -35
  180. data/vendor/libgit2/src/config_entries.c +229 -0
  181. data/vendor/libgit2/src/config_entries.h +24 -0
  182. data/vendor/libgit2/src/config_file.c +422 -680
  183. data/vendor/libgit2/src/config_mem.c +220 -0
  184. data/vendor/libgit2/src/config_parse.c +96 -68
  185. data/vendor/libgit2/src/config_parse.h +15 -14
  186. data/vendor/libgit2/src/config_snapshot.c +206 -0
  187. data/vendor/libgit2/src/crlf.c +219 -196
  188. data/vendor/libgit2/src/delta.c +25 -18
  189. data/vendor/libgit2/src/describe.c +42 -41
  190. data/vendor/libgit2/src/diff.c +52 -67
  191. data/vendor/libgit2/src/diff.h +2 -1
  192. data/vendor/libgit2/src/diff_driver.c +44 -46
  193. data/vendor/libgit2/src/diff_file.c +16 -14
  194. data/vendor/libgit2/src/diff_file.h +1 -1
  195. data/vendor/libgit2/src/diff_generate.c +158 -103
  196. data/vendor/libgit2/src/diff_generate.h +3 -3
  197. data/vendor/libgit2/src/diff_parse.c +4 -4
  198. data/vendor/libgit2/src/diff_print.c +34 -22
  199. data/vendor/libgit2/src/diff_stats.c +22 -7
  200. data/vendor/libgit2/src/diff_tform.c +18 -16
  201. data/vendor/libgit2/src/diff_xdiff.c +3 -3
  202. data/vendor/libgit2/src/errors.c +51 -39
  203. data/vendor/libgit2/src/errors.h +81 -0
  204. data/vendor/libgit2/src/features.h.in +9 -3
  205. data/vendor/libgit2/src/fetch.c +8 -3
  206. data/vendor/libgit2/src/fetchhead.c +12 -12
  207. data/vendor/libgit2/src/filebuf.c +28 -32
  208. data/vendor/libgit2/src/filebuf.h +2 -2
  209. data/vendor/libgit2/src/filter.c +47 -33
  210. data/vendor/libgit2/src/filter.h +0 -10
  211. data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
  212. data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
  213. data/vendor/libgit2/src/global.c +35 -55
  214. data/vendor/libgit2/src/global.h +0 -2
  215. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
  216. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
  217. data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
  218. data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
  219. data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
  220. data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
  221. data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
  222. data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
  223. data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
  224. data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
  225. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
  226. data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
  227. data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
  228. data/vendor/libgit2/src/hash/sha1.h +38 -0
  229. data/vendor/libgit2/src/hash.c +61 -0
  230. data/vendor/libgit2/src/hash.h +20 -21
  231. data/vendor/libgit2/src/hashsig.c +5 -5
  232. data/vendor/libgit2/src/idxmap.c +107 -61
  233. data/vendor/libgit2/src/idxmap.h +153 -31
  234. data/vendor/libgit2/src/ignore.c +38 -42
  235. data/vendor/libgit2/src/index.c +264 -199
  236. data/vendor/libgit2/src/index.h +7 -1
  237. data/vendor/libgit2/src/indexer.c +338 -167
  238. data/vendor/libgit2/src/integer.h +71 -26
  239. data/vendor/libgit2/src/iterator.c +134 -62
  240. data/vendor/libgit2/src/iterator.h +15 -0
  241. data/vendor/libgit2/src/mailmap.c +8 -8
  242. data/vendor/libgit2/src/map.h +1 -1
  243. data/vendor/libgit2/src/merge.c +137 -93
  244. data/vendor/libgit2/src/merge_driver.c +11 -11
  245. data/vendor/libgit2/src/merge_file.c +2 -2
  246. data/vendor/libgit2/src/mwindow.c +24 -29
  247. data/vendor/libgit2/src/mwindow.h +4 -4
  248. data/vendor/libgit2/src/net.c +184 -0
  249. data/vendor/libgit2/src/net.h +36 -0
  250. data/vendor/libgit2/src/netops.c +55 -156
  251. data/vendor/libgit2/src/netops.h +3 -23
  252. data/vendor/libgit2/src/notes.c +14 -9
  253. data/vendor/libgit2/src/object.c +120 -69
  254. data/vendor/libgit2/src/object.h +22 -9
  255. data/vendor/libgit2/src/object_api.c +8 -8
  256. data/vendor/libgit2/src/odb.c +111 -88
  257. data/vendor/libgit2/src/odb.h +8 -7
  258. data/vendor/libgit2/src/odb_loose.c +58 -47
  259. data/vendor/libgit2/src/odb_mempack.c +21 -34
  260. data/vendor/libgit2/src/odb_pack.c +17 -13
  261. data/vendor/libgit2/src/offmap.c +53 -35
  262. data/vendor/libgit2/src/offmap.h +108 -21
  263. data/vendor/libgit2/src/oid.c +12 -7
  264. data/vendor/libgit2/src/oidmap.c +49 -47
  265. data/vendor/libgit2/src/oidmap.h +101 -24
  266. data/vendor/libgit2/src/pack-objects.c +87 -86
  267. data/vendor/libgit2/src/pack-objects.h +2 -8
  268. data/vendor/libgit2/src/pack.c +94 -96
  269. data/vendor/libgit2/src/pack.h +16 -18
  270. data/vendor/libgit2/src/parse.c +17 -4
  271. data/vendor/libgit2/src/parse.h +3 -3
  272. data/vendor/libgit2/src/patch.c +3 -3
  273. data/vendor/libgit2/src/patch_generate.c +18 -18
  274. data/vendor/libgit2/src/patch_parse.c +147 -79
  275. data/vendor/libgit2/src/path.c +207 -62
  276. data/vendor/libgit2/src/path.h +14 -0
  277. data/vendor/libgit2/src/pathspec.c +18 -18
  278. data/vendor/libgit2/src/pool.c +26 -22
  279. data/vendor/libgit2/src/pool.h +7 -7
  280. data/vendor/libgit2/src/posix.c +10 -10
  281. data/vendor/libgit2/src/posix.h +12 -1
  282. data/vendor/libgit2/src/proxy.c +8 -3
  283. data/vendor/libgit2/src/push.c +35 -29
  284. data/vendor/libgit2/src/push.h +2 -1
  285. data/vendor/libgit2/src/reader.c +265 -0
  286. data/vendor/libgit2/src/reader.h +107 -0
  287. data/vendor/libgit2/src/rebase.c +97 -38
  288. data/vendor/libgit2/src/refdb.c +15 -3
  289. data/vendor/libgit2/src/refdb_fs.c +318 -222
  290. data/vendor/libgit2/src/reflog.c +13 -15
  291. data/vendor/libgit2/src/refs.c +122 -89
  292. data/vendor/libgit2/src/refs.h +5 -3
  293. data/vendor/libgit2/src/refspec.c +27 -33
  294. data/vendor/libgit2/src/regexp.c +221 -0
  295. data/vendor/libgit2/src/regexp.h +97 -0
  296. data/vendor/libgit2/src/remote.c +229 -178
  297. data/vendor/libgit2/src/remote.h +11 -2
  298. data/vendor/libgit2/src/repository.c +227 -172
  299. data/vendor/libgit2/src/repository.h +52 -40
  300. data/vendor/libgit2/src/reset.c +7 -7
  301. data/vendor/libgit2/src/revert.c +11 -6
  302. data/vendor/libgit2/src/revparse.c +46 -46
  303. data/vendor/libgit2/src/revwalk.c +89 -54
  304. data/vendor/libgit2/src/revwalk.h +20 -0
  305. data/vendor/libgit2/src/settings.c +22 -9
  306. data/vendor/libgit2/src/signature.c +15 -13
  307. data/vendor/libgit2/src/sortedcache.c +22 -36
  308. data/vendor/libgit2/src/sortedcache.h +1 -1
  309. data/vendor/libgit2/src/stash.c +56 -76
  310. data/vendor/libgit2/src/status.c +27 -21
  311. data/vendor/libgit2/src/stream.h +17 -2
  312. data/vendor/libgit2/src/streams/mbedtls.c +100 -80
  313. data/vendor/libgit2/src/streams/mbedtls.h +5 -2
  314. data/vendor/libgit2/src/streams/openssl.c +93 -81
  315. data/vendor/libgit2/src/streams/openssl.h +5 -2
  316. data/vendor/libgit2/src/streams/registry.c +118 -0
  317. data/vendor/libgit2/src/streams/registry.h +19 -0
  318. data/vendor/libgit2/src/streams/socket.c +55 -30
  319. data/vendor/libgit2/src/streams/stransport.c +57 -32
  320. data/vendor/libgit2/src/streams/stransport.h +5 -0
  321. data/vendor/libgit2/src/streams/tls.c +48 -20
  322. data/vendor/libgit2/src/streams/tls.h +12 -4
  323. data/vendor/libgit2/src/strmap.c +47 -74
  324. data/vendor/libgit2/src/strmap.h +108 -33
  325. data/vendor/libgit2/src/submodule.c +190 -169
  326. data/vendor/libgit2/src/submodule.h +1 -1
  327. data/vendor/libgit2/src/sysdir.c +25 -15
  328. data/vendor/libgit2/src/tag.c +39 -26
  329. data/vendor/libgit2/src/tag.h +2 -1
  330. data/vendor/libgit2/src/trace.c +2 -2
  331. data/vendor/libgit2/src/trace.h +2 -2
  332. data/vendor/libgit2/src/trailer.c +46 -32
  333. data/vendor/libgit2/src/transaction.c +30 -29
  334. data/vendor/libgit2/src/transport.c +3 -3
  335. data/vendor/libgit2/src/transports/auth.c +14 -10
  336. data/vendor/libgit2/src/transports/auth.h +10 -3
  337. data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
  338. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  339. data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
  340. data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
  341. data/vendor/libgit2/src/transports/cred.c +24 -24
  342. data/vendor/libgit2/src/transports/git.c +25 -30
  343. data/vendor/libgit2/src/transports/http.c +871 -335
  344. data/vendor/libgit2/src/transports/http.h +2 -0
  345. data/vendor/libgit2/src/transports/local.c +28 -28
  346. data/vendor/libgit2/src/transports/smart.c +64 -46
  347. data/vendor/libgit2/src/transports/smart.h +5 -6
  348. data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
  349. data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
  350. data/vendor/libgit2/src/transports/ssh.c +76 -65
  351. data/vendor/libgit2/src/transports/winhttp.c +328 -319
  352. data/vendor/libgit2/src/tree-cache.c +21 -14
  353. data/vendor/libgit2/src/tree.c +119 -112
  354. data/vendor/libgit2/src/tree.h +1 -0
  355. data/vendor/libgit2/src/unix/map.c +3 -3
  356. data/vendor/libgit2/src/unix/posix.h +1 -11
  357. data/vendor/libgit2/src/userdiff.h +3 -1
  358. data/vendor/libgit2/src/util.c +154 -93
  359. data/vendor/libgit2/src/util.h +19 -23
  360. data/vendor/libgit2/src/vector.c +15 -10
  361. data/vendor/libgit2/src/wildmatch.c +320 -0
  362. data/vendor/libgit2/src/wildmatch.h +23 -0
  363. data/vendor/libgit2/src/win32/dir.c +3 -3
  364. data/vendor/libgit2/src/win32/findfile.c +1 -1
  365. data/vendor/libgit2/src/win32/map.c +9 -11
  366. data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
  367. data/vendor/libgit2/src/win32/path_w32.c +113 -9
  368. data/vendor/libgit2/src/win32/path_w32.h +18 -29
  369. data/vendor/libgit2/src/win32/posix.h +1 -4
  370. data/vendor/libgit2/src/win32/posix_w32.c +69 -44
  371. data/vendor/libgit2/src/win32/precompiled.h +0 -2
  372. data/vendor/libgit2/src/win32/thread.c +5 -10
  373. data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
  374. data/vendor/libgit2/src/win32/w32_common.h +39 -0
  375. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
  376. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
  377. data/vendor/libgit2/src/win32/w32_stack.c +6 -11
  378. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  379. data/vendor/libgit2/src/win32/w32_util.c +27 -64
  380. data/vendor/libgit2/src/win32/w32_util.h +5 -49
  381. data/vendor/libgit2/src/worktree.c +44 -30
  382. data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
  383. data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
  384. data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
  385. data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
  386. data/vendor/libgit2/src/zstream.c +4 -4
  387. metadata +115 -38
  388. data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
  389. data/vendor/libgit2/deps/regex/config.h +0 -7
  390. data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
  391. data/vendor/libgit2/deps/regex/regex.c +0 -92
  392. data/vendor/libgit2/deps/regex/regex.h +0 -582
  393. data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
  394. data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
  395. data/vendor/libgit2/deps/regex/regexec.c +0 -4369
  396. data/vendor/libgit2/include/git2/inttypes.h +0 -309
  397. data/vendor/libgit2/include/git2/sys/time.h +0 -31
  398. data/vendor/libgit2/libgit2.pc.in +0 -13
  399. data/vendor/libgit2/src/config_file.h +0 -73
  400. data/vendor/libgit2/src/fnmatch.c +0 -248
  401. data/vendor/libgit2/src/fnmatch.h +0 -48
  402. data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
  403. data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
  404. data/vendor/libgit2/src/streams/curl.c +0 -385
  405. data/vendor/libgit2/src/streams/curl.h +0 -17
  406. /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
  407. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
  408. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
  409. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
@@ -18,7 +18,7 @@ GIT_INLINE(int) attr_cache_lock(git_attr_cache *cache)
18
18
  GIT_UNUSED(cache); /* avoid warning if threading is off */
19
19
 
20
20
  if (git_mutex_lock(&cache->lock) < 0) {
21
- giterr_set(GITERR_OS, "unable to get attr cache lock");
21
+ git_error_set(GIT_ERROR_OS, "unable to get attr cache lock");
22
22
  return -1;
23
23
  }
24
24
  return 0;
@@ -33,12 +33,7 @@ GIT_INLINE(void) attr_cache_unlock(git_attr_cache *cache)
33
33
  GIT_INLINE(git_attr_file_entry *) attr_cache_lookup_entry(
34
34
  git_attr_cache *cache, const char *path)
35
35
  {
36
- khiter_t pos = git_strmap_lookup_index(cache->files, path);
37
-
38
- if (git_strmap_valid_index(cache->files, pos))
39
- return git_strmap_value_at(cache->files, pos);
40
- else
41
- return NULL;
36
+ return git_strmap_get(cache->files, path);
42
37
  }
43
38
 
44
39
  int git_attr_cache__alloc_file_entry(
@@ -59,8 +54,8 @@ int git_attr_cache__alloc_file_entry(
59
54
  cachesize++;
60
55
  }
61
56
 
62
- ce = git_pool_mallocz(pool, (uint32_t)cachesize);
63
- GITERR_CHECK_ALLOC(ce);
57
+ ce = git_pool_mallocz(pool, cachesize);
58
+ GIT_ERROR_CHECK_ALLOC(ce);
64
59
 
65
60
  if (baselen) {
66
61
  memcpy(ce->fullpath, base, baselen);
@@ -80,18 +75,16 @@ int git_attr_cache__alloc_file_entry(
80
75
  static int attr_cache_make_entry(
81
76
  git_attr_file_entry **out, git_repository *repo, const char *path)
82
77
  {
83
- int error = 0;
84
78
  git_attr_cache *cache = git_repository_attr_cache(repo);
85
79
  git_attr_file_entry *entry = NULL;
80
+ int error;
86
81
 
87
- error = git_attr_cache__alloc_file_entry(
88
- &entry, git_repository_workdir(repo), path, &cache->pool);
82
+ if ((error = git_attr_cache__alloc_file_entry(&entry, git_repository_workdir(repo),
83
+ path, &cache->pool)) < 0)
84
+ return error;
89
85
 
90
- if (!error) {
91
- git_strmap_insert(cache->files, entry->path, entry, &error);
92
- if (error > 0)
93
- error = 0;
94
- }
86
+ if ((error = git_strmap_set(cache->files, entry->path, entry)) < 0)
87
+ return error;
95
88
 
96
89
  *out = entry;
97
90
  return error;
@@ -215,7 +208,8 @@ int git_attr_cache__get(
215
208
  git_attr_file_source source,
216
209
  const char *base,
217
210
  const char *filename,
218
- git_attr_file_parser parser)
211
+ git_attr_file_parser parser,
212
+ bool allow_macros)
219
213
  {
220
214
  int error = 0;
221
215
  git_attr_cache *cache = git_repository_attr_cache(repo);
@@ -228,7 +222,7 @@ int git_attr_cache__get(
228
222
 
229
223
  /* load file if we don't have one or if existing one is out of date */
230
224
  if (!file || (error = git_attr_file__out_of_date(repo, attr_session, file)) > 0)
231
- error = git_attr_file__load(&updated, repo, attr_session, entry, source, parser);
225
+ error = git_attr_file__load(&updated, repo, attr_session, entry, source, parser, allow_macros);
232
226
 
233
227
  /* if we loaded the file, insert into and/or update cache */
234
228
  if (updated) {
@@ -250,7 +244,7 @@ int git_attr_cache__get(
250
244
  }
251
245
  /* no error if file simply doesn't exist */
252
246
  if (error == GIT_ENOTFOUND) {
253
- giterr_clear();
247
+ git_error_clear();
254
248
  error = 0;
255
249
  }
256
250
  }
@@ -265,19 +259,15 @@ bool git_attr_cache__is_cached(
265
259
  const char *filename)
266
260
  {
267
261
  git_attr_cache *cache = git_repository_attr_cache(repo);
268
- git_strmap *files;
269
- khiter_t pos;
270
262
  git_attr_file_entry *entry;
263
+ git_strmap *files;
271
264
 
272
265
  if (!cache || !(files = cache->files))
273
266
  return false;
274
267
 
275
- pos = git_strmap_lookup_index(files, filename);
276
- if (!git_strmap_valid_index(files, pos))
268
+ if ((entry = git_strmap_get(files, filename)) == NULL)
277
269
  return false;
278
270
 
279
- entry = git_strmap_value_at(files, pos);
280
-
281
271
  return entry && (entry->file[source] != NULL);
282
272
  }
283
273
 
@@ -374,11 +364,11 @@ int git_attr_cache__init(git_repository *repo)
374
364
  return 0;
375
365
 
376
366
  cache = git__calloc(1, sizeof(git_attr_cache));
377
- GITERR_CHECK_ALLOC(cache);
367
+ GIT_ERROR_CHECK_ALLOC(cache);
378
368
 
379
369
  /* set up lock */
380
370
  if (git_mutex_init(&cache->lock) < 0) {
381
- giterr_set(GITERR_OS, "unable to initialize lock for attr cache");
371
+ git_error_set(GIT_ERROR_OS, "unable to initialize lock for attr cache");
382
372
  git__free(cache);
383
373
  return -1;
384
374
  }
@@ -400,8 +390,8 @@ int git_attr_cache__init(git_repository *repo)
400
390
  /* allocate hashtable for attribute and ignore file contents,
401
391
  * hashtable for attribute macros, and string pool
402
392
  */
403
- if ((ret = git_strmap_alloc(&cache->files)) < 0 ||
404
- (ret = git_strmap_alloc(&cache->macros)) < 0)
393
+ if ((ret = git_strmap_new(&cache->files)) < 0 ||
394
+ (ret = git_strmap_new(&cache->macros)) < 0)
405
395
  goto cancel;
406
396
 
407
397
  git_pool_init(&cache->pool, 1);
@@ -435,35 +425,43 @@ void git_attr_cache_flush(git_repository *repo)
435
425
  int git_attr_cache__insert_macro(git_repository *repo, git_attr_rule *macro)
436
426
  {
437
427
  git_attr_cache *cache = git_repository_attr_cache(repo);
438
- git_strmap *macros = cache->macros;
439
- int error;
440
-
441
- /* TODO: generate warning log if (macro->assigns.length == 0) */
442
- if (macro->assigns.length == 0)
443
- return 0;
428
+ git_attr_rule *preexisting;
429
+ bool locked = false;
430
+ int error = 0;
444
431
 
445
- if (attr_cache_lock(cache) < 0) {
446
- giterr_set(GITERR_OS, "unable to get attr cache lock");
447
- error = -1;
448
- } else {
449
- git_strmap_insert(macros, macro->match.pattern, macro, &error);
450
- git_mutex_unlock(&cache->lock);
432
+ /*
433
+ * Callers assume that if we return success, that the
434
+ * macro will have been adopted by the attributes cache.
435
+ * Thus, we have to free the macro here if it's not being
436
+ * added to the cache.
437
+ *
438
+ * TODO: generate warning log if (macro->assigns.length == 0)
439
+ */
440
+ if (macro->assigns.length == 0) {
441
+ git_attr_rule__free(macro);
442
+ goto out;
451
443
  }
452
444
 
453
- return (error < 0) ? -1 : 0;
445
+ if ((error = attr_cache_lock(cache)) < 0)
446
+ goto out;
447
+ locked = true;
448
+
449
+ if ((preexisting = git_strmap_get(cache->macros, macro->match.pattern)) != NULL)
450
+ git_attr_rule__free(preexisting);
451
+
452
+ if ((error = git_strmap_set(cache->macros, macro->match.pattern, macro)) < 0)
453
+ goto out;
454
+
455
+ out:
456
+ if (locked)
457
+ attr_cache_unlock(cache);
458
+ return error;
454
459
  }
455
460
 
456
461
  git_attr_rule *git_attr_cache__lookup_macro(
457
462
  git_repository *repo, const char *name)
458
463
  {
459
464
  git_strmap *macros = git_repository_attr_cache(repo)->macros;
460
- khiter_t pos;
461
465
 
462
- pos = git_strmap_lookup_index(macros, name);
463
-
464
- if (!git_strmap_valid_index(macros, pos))
465
- return NULL;
466
-
467
- return (git_attr_rule *)git_strmap_value_at(macros, pos);
466
+ return git_strmap_get(macros, name);
468
467
  }
469
-
@@ -34,7 +34,8 @@ extern int git_attr_cache__get(
34
34
  git_attr_file_source source,
35
35
  const char *base,
36
36
  const char *filename,
37
- git_attr_file_parser parser);
37
+ git_attr_file_parser parser,
38
+ bool allow_macros);
38
39
 
39
40
  extern bool git_attr_cache__is_cached(
40
41
  git_repository *repo,
@@ -41,7 +41,12 @@ static int hunk_cmp(const void *_a, const void *_b)
41
41
  git_blame_hunk *a = (git_blame_hunk*)_a,
42
42
  *b = (git_blame_hunk*)_b;
43
43
 
44
- return a->final_start_line_number - b->final_start_line_number;
44
+ if (a->final_start_line_number > b->final_start_line_number)
45
+ return 1;
46
+ else if (a->final_start_line_number < b->final_start_line_number)
47
+ return -1;
48
+ else
49
+ return 0;
45
50
  }
46
51
 
47
52
  static bool hunk_ends_at_or_before_line(git_blame_hunk *hunk, size_t line)
@@ -133,8 +138,11 @@ git_blame* git_blame__alloc(
133
138
  return NULL;
134
139
  }
135
140
 
136
- if (opts.flags & GIT_BLAME_USE_MAILMAP)
137
- git_mailmap_from_repository(&gbr->mailmap, repo);
141
+ if (opts.flags & GIT_BLAME_USE_MAILMAP &&
142
+ git_mailmap_from_repository(&gbr->mailmap, repo) < 0) {
143
+ git_blame_free(gbr);
144
+ return NULL;
145
+ }
138
146
 
139
147
  return gbr;
140
148
  }
@@ -196,7 +204,7 @@ static int normalize_options(
196
204
  memcpy(out, in, sizeof(git_blame_options));
197
205
 
198
206
  /* No newest_commit => HEAD */
199
- if (git_oid_iszero(&out->newest_commit)) {
207
+ if (git_oid_is_zero(&out->newest_commit)) {
200
208
  if (git_reference_name_to_id(&out->newest_commit, repo, "HEAD") < 0) {
201
209
  return -1;
202
210
  }
@@ -260,7 +268,7 @@ static git_blame_hunk *split_hunk_in_vector(
260
268
  static int index_blob_lines(git_blame *blame)
261
269
  {
262
270
  const char *buf = blame->final_buf;
263
- git_off_t len = blame->final_buf_size;
271
+ size_t len = blame->final_buf_size;
264
272
  int num = 0, incomplete = 0, bol = 1;
265
273
  size_t *i;
266
274
 
@@ -269,7 +277,7 @@ static int index_blob_lines(git_blame *blame)
269
277
  while (len--) {
270
278
  if (bol) {
271
279
  i = git_array_alloc(blame->line_index);
272
- GITERR_CHECK_ALLOC(i);
280
+ GIT_ERROR_CHECK_ALLOC(i);
273
281
  *i = buf - blame->final_buf;
274
282
  bol = 0;
275
283
  }
@@ -279,7 +287,7 @@ static int index_blob_lines(git_blame *blame)
279
287
  }
280
288
  }
281
289
  i = git_array_alloc(blame->line_index);
282
- GITERR_CHECK_ALLOC(i);
290
+ GIT_ERROR_CHECK_ALLOC(i);
283
291
  *i = buf - blame->final_buf;
284
292
  blame->num_lines = num + incomplete;
285
293
  return blame->num_lines;
@@ -312,7 +320,7 @@ static int load_blob(git_blame *blame)
312
320
  if (error < 0)
313
321
  goto cleanup;
314
322
  error = git_object_lookup_bypath((git_object**)&blame->final_blob,
315
- (git_object*)blame->final, blame->path, GIT_OBJ_BLOB);
323
+ (git_object*)blame->final, blame->path, GIT_OBJECT_BLOB);
316
324
 
317
325
  cleanup:
318
326
  return error;
@@ -327,11 +335,18 @@ static int blame_internal(git_blame *blame)
327
335
  if ((error = load_blob(blame)) < 0 ||
328
336
  (error = git_blame__get_origin(&o, blame, blame->final, blame->path)) < 0)
329
337
  goto cleanup;
338
+
339
+ if (git_blob_rawsize(blame->final_blob) > SIZE_MAX) {
340
+ git_error_set(GIT_ERROR_NOMEMORY, "blob is too large to blame");
341
+ error = -1;
342
+ goto cleanup;
343
+ }
344
+
330
345
  blame->final_buf = git_blob_rawcontent(blame->final_blob);
331
- blame->final_buf_size = git_blob_rawsize(blame->final_blob);
346
+ blame->final_buf_size = (size_t)git_blob_rawsize(blame->final_blob);
332
347
 
333
348
  ent = git__calloc(1, sizeof(git_blame__entry));
334
- GITERR_CHECK_ALLOC(ent);
349
+ GIT_ERROR_CHECK_ALLOC(ent);
335
350
 
336
351
  ent->num_lines = index_blob_lines(blame);
337
352
  ent->lno = blame->options.min_line - 1;
@@ -378,7 +393,7 @@ int git_blame_file(
378
393
  goto on_error;
379
394
 
380
395
  blame = git_blame__alloc(repo, normOptions, path);
381
- GITERR_CHECK_ALLOC(blame);
396
+ GIT_ERROR_CHECK_ALLOC(blame);
382
397
 
383
398
  if ((error = load_blob(blame)) < 0)
384
399
  goto on_error;
@@ -400,7 +415,7 @@ on_error:
400
415
 
401
416
  static bool hunk_is_bufferblame(git_blame_hunk *hunk)
402
417
  {
403
- return git_oid_iszero(&hunk->final_commit_id);
418
+ return git_oid_is_zero(&hunk->final_commit_id);
404
419
  }
405
420
 
406
421
  static int buffer_hunk_cb(
@@ -420,14 +435,14 @@ static int buffer_hunk_cb(
420
435
  if (!blame->current_hunk) {
421
436
  /* Line added at the end of the file */
422
437
  blame->current_hunk = new_hunk(wedge_line, 0, wedge_line, blame->path);
423
- GITERR_CHECK_ALLOC(blame->current_hunk);
438
+ GIT_ERROR_CHECK_ALLOC(blame->current_hunk);
424
439
 
425
440
  git_vector_insert(&blame->hunks, blame->current_hunk);
426
441
  } else if (!hunk_starts_at_or_after_line(blame->current_hunk, wedge_line)){
427
442
  /* If this hunk doesn't start between existing hunks, split a hunk up so it does */
428
443
  blame->current_hunk = split_hunk_in_vector(&blame->hunks, blame->current_hunk,
429
444
  wedge_line - blame->current_hunk->orig_start_line_number, true);
430
- GITERR_CHECK_ALLOC(blame->current_hunk);
445
+ GIT_ERROR_CHECK_ALLOC(blame->current_hunk);
431
446
  }
432
447
 
433
448
  return 0;
@@ -456,7 +471,7 @@ static int buffer_line_cb(
456
471
  /* Create a new buffer-blame hunk with this line */
457
472
  shift_hunks_by(&blame->hunks, blame->current_diff_line, 1);
458
473
  blame->current_hunk = new_hunk(blame->current_diff_line, 1, 0, blame->path);
459
- GITERR_CHECK_ALLOC(blame->current_hunk);
474
+ GIT_ERROR_CHECK_ALLOC(blame->current_hunk);
460
475
 
461
476
  git_vector_insert_sorted(&blame->hunks, blame->current_hunk, NULL);
462
477
  }
@@ -497,12 +512,12 @@ int git_blame_buffer(
497
512
  assert(out && reference && buffer && buffer_len);
498
513
 
499
514
  blame = git_blame__alloc(reference->repository, reference->options, reference->path);
500
- GITERR_CHECK_ALLOC(blame);
515
+ GIT_ERROR_CHECK_ALLOC(blame);
501
516
 
502
517
  /* Duplicate all of the hunk structures in the reference blame */
503
518
  git_vector_foreach(&reference->hunks, i, hunk) {
504
519
  git_blame_hunk *h = dup_hunk(hunk);
505
- GITERR_CHECK_ALLOC(h);
520
+ GIT_ERROR_CHECK_ALLOC(h);
506
521
 
507
522
  git_vector_insert(&blame->hunks, h);
508
523
  }
@@ -516,9 +531,14 @@ int git_blame_buffer(
516
531
  return 0;
517
532
  }
518
533
 
519
- int git_blame_init_options(git_blame_options *opts, unsigned int version)
534
+ int git_blame_options_init(git_blame_options *opts, unsigned int version)
520
535
  {
521
536
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
522
537
  opts, version, git_blame_options, GIT_BLAME_OPTIONS_INIT);
523
538
  return 0;
524
539
  }
540
+
541
+ int git_blame_init_options(git_blame_options *opts, unsigned int version)
542
+ {
543
+ return git_blame_options_init(opts, version);
544
+ }
@@ -84,7 +84,7 @@ struct git_blame {
84
84
  git_blame__entry *ent;
85
85
  int num_lines;
86
86
  const char *final_buf;
87
- git_off_t final_buf_size;
87
+ size_t final_buf_size;
88
88
  };
89
89
 
90
90
  git_blame *git_blame__alloc(
@@ -43,13 +43,13 @@ static int make_origin(git_blame__origin **out, git_commit *commit, const char *
43
43
  int error = 0;
44
44
 
45
45
  if ((error = git_object_lookup_bypath(&blob, (git_object*)commit,
46
- path, GIT_OBJ_BLOB)) < 0)
46
+ path, GIT_OBJECT_BLOB)) < 0)
47
47
  return error;
48
48
 
49
- GITERR_CHECK_ALLOC_ADD(&alloc_len, sizeof(*o), path_len);
50
- GITERR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, 1);
49
+ GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, sizeof(*o), path_len);
50
+ GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, 1);
51
51
  o = git__calloc(1, alloc_len);
52
- GITERR_CHECK_ALLOC(o);
52
+ GIT_ERROR_CHECK_ALLOC(o);
53
53
 
54
54
  o->commit = commit;
55
55
  o->blob = (git_blob *) blob;
@@ -219,7 +219,7 @@ static void dup_entry(git_blame__entry *dst, git_blame__entry *src)
219
219
  * split_overlap() divided an existing blame e into up to three parts in split.
220
220
  * Adjust the linked list of blames in the scoreboard to reflect the split.
221
221
  */
222
- static void split_blame(git_blame *blame, git_blame__entry *split, git_blame__entry *e)
222
+ static int split_blame(git_blame *blame, git_blame__entry *split, git_blame__entry *e)
223
223
  {
224
224
  git_blame__entry *new_entry;
225
225
 
@@ -229,11 +229,13 @@ static void split_blame(git_blame *blame, git_blame__entry *split, git_blame__en
229
229
 
230
230
  /* The last part -- me */
231
231
  new_entry = git__malloc(sizeof(*new_entry));
232
+ GIT_ERROR_CHECK_ALLOC(new_entry);
232
233
  memcpy(new_entry, &(split[2]), sizeof(git_blame__entry));
233
234
  add_blame_entry(blame, new_entry);
234
235
 
235
236
  /* ... and the middle part -- parent */
236
237
  new_entry = git__malloc(sizeof(*new_entry));
238
+ GIT_ERROR_CHECK_ALLOC(new_entry);
237
239
  memcpy(new_entry, &(split[1]), sizeof(git_blame__entry));
238
240
  add_blame_entry(blame, new_entry);
239
241
  } else if (!split[0].suspect && !split[2].suspect) {
@@ -246,18 +248,22 @@ static void split_blame(git_blame *blame, git_blame__entry *split, git_blame__en
246
248
  /* me and then parent */
247
249
  dup_entry(e, &split[0]);
248
250
  new_entry = git__malloc(sizeof(*new_entry));
251
+ GIT_ERROR_CHECK_ALLOC(new_entry);
249
252
  memcpy(new_entry, &(split[1]), sizeof(git_blame__entry));
250
253
  add_blame_entry(blame, new_entry);
251
254
  } else {
252
255
  /* parent and then me */
253
256
  dup_entry(e, &split[1]);
254
257
  new_entry = git__malloc(sizeof(*new_entry));
258
+ GIT_ERROR_CHECK_ALLOC(new_entry);
255
259
  memcpy(new_entry, &(split[2]), sizeof(git_blame__entry));
256
260
  add_blame_entry(blame, new_entry);
257
261
  }
262
+
263
+ return 0;
258
264
  }
259
265
 
260
- /*
266
+ /*
261
267
  * After splitting the blame, the origins used by the on-stack blame_entry
262
268
  * should lose one refcnt each.
263
269
  */
@@ -272,7 +278,7 @@ static void decref_split(git_blame__entry *split)
272
278
  * Helper for blame_chunk(). blame_entry e is known to overlap with the patch
273
279
  * hunk; split it and pass blame to the parent.
274
280
  */
275
- static void blame_overlap(
281
+ static int blame_overlap(
276
282
  git_blame *blame,
277
283
  git_blame__entry *e,
278
284
  size_t tlno,
@@ -284,8 +290,11 @@ static void blame_overlap(
284
290
 
285
291
  split_overlap(split, e, tlno, plno, same, parent);
286
292
  if (split[1].suspect)
287
- split_blame(blame, split, e);
293
+ if (split_blame(blame, split, e) < 0)
294
+ return -1;
288
295
  decref_split(split);
296
+
297
+ return 0;
289
298
  }
290
299
 
291
300
  /*
@@ -293,7 +302,7 @@ static void blame_overlap(
293
302
  * e and its parent. Find and split the overlap, and pass blame to the
294
303
  * overlapping part to the parent.
295
304
  */
296
- static void blame_chunk(
305
+ static int blame_chunk(
297
306
  git_blame *blame,
298
307
  size_t tlno,
299
308
  size_t plno,
@@ -309,9 +318,12 @@ static void blame_chunk(
309
318
  if (same <= e->s_lno)
310
319
  continue;
311
320
  if (tlno < e->s_lno + e->num_lines) {
312
- blame_overlap(blame, e, tlno, plno, same, parent);
321
+ if (blame_overlap(blame, e, tlno, plno, same, parent) < 0)
322
+ return -1;
313
323
  }
314
324
  }
325
+
326
+ return 0;
315
327
  }
316
328
 
317
329
  static int my_emit(
@@ -321,7 +333,8 @@ static int my_emit(
321
333
  {
322
334
  blame_chunk_cb_data *d = (blame_chunk_cb_data *)cb_data;
323
335
 
324
- blame_chunk(d->blame, d->tlno, d->plno, start_b, d->target, d->parent);
336
+ if (blame_chunk(d->blame, d->tlno, d->plno, start_b, d->target, d->parent) < 0)
337
+ return -1;
325
338
  d->plno = start_a + count_a;
326
339
  d->tlno = start_b + count_b;
327
340
 
@@ -365,7 +378,7 @@ static int diff_hunks(mmfile_t file_a, mmfile_t file_b, void *cb_data)
365
378
 
366
379
  if (file_a.size > GIT_XDIFF_MAX_SIZE ||
367
380
  file_b.size > GIT_XDIFF_MAX_SIZE) {
368
- giterr_set(GITERR_INVALID, "file too large to blame");
381
+ git_error_set(GIT_ERROR_INVALID, "file too large to blame");
369
382
  return -1;
370
383
  }
371
384
 
@@ -400,7 +413,8 @@ static int pass_blame_to_parent(
400
413
  return -1;
401
414
 
402
415
  /* The reset (i.e. anything after tlno) are the same as the parent */
403
- blame_chunk(blame, d.tlno, d.plno, last_in_target, target, parent);
416
+ if (blame_chunk(blame, d.tlno, d.plno, last_in_target, target, parent) < 0)
417
+ return -1;
404
418
 
405
419
  return 0;
406
420
  }
@@ -486,7 +500,7 @@ static int pass_whole_blame(git_blame *blame,
486
500
 
487
501
  if (!porigin->blob &&
488
502
  git_object_lookup((git_object**)&porigin->blob, blame->repository,
489
- git_blob_id(origin->blob), GIT_OBJ_BLOB) < 0)
503
+ git_blob_id(origin->blob), GIT_OBJECT_BLOB) < 0)
490
504
  return -1;
491
505
  for (e=blame->ent; e; e=e->next) {
492
506
  if (!same_suspect(e->suspect, origin))
@@ -522,7 +536,7 @@ static int pass_blame(git_blame *blame, git_blame__origin *origin, uint32_t opt)
522
536
  memset(sg_buf, 0, sizeof(sg_buf));
523
537
  else {
524
538
  sg_origin = git__calloc(num_parents, sizeof(*sg_origin));
525
- GITERR_CHECK_ALLOC(sg_origin);
539
+ GIT_ERROR_CHECK_ALLOC(sg_origin);
526
540
  }
527
541
 
528
542
  for (i=0; i<num_parents; i++) {