rugged 1.0.0 → 1.2.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 (338) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -0
  3. data/README.md +3 -3
  4. data/ext/rugged/rugged.c +7 -4
  5. data/ext/rugged/rugged_commit.c +1 -1
  6. data/ext/rugged/rugged_config.c +1 -1
  7. data/ext/rugged/rugged_object.c +1 -1
  8. data/ext/rugged/rugged_remote.c +32 -2
  9. data/ext/rugged/rugged_repo.c +13 -3
  10. data/lib/rugged/commit.rb +17 -4
  11. data/lib/rugged/repository.rb +7 -8
  12. data/lib/rugged/submodule_collection.rb +4 -4
  13. data/lib/rugged/version.rb +1 -1
  14. data/vendor/libgit2/CMakeLists.txt +41 -74
  15. data/vendor/libgit2/COPYING +109 -1
  16. data/vendor/libgit2/cmake/{Modules/AddCFlagIfSupported.cmake → AddCFlagIfSupported.cmake} +0 -0
  17. data/vendor/libgit2/cmake/{Modules/EnableWarnings.cmake → EnableWarnings.cmake} +0 -0
  18. data/vendor/libgit2/cmake/{Modules/FindCoreFoundation.cmake → FindCoreFoundation.cmake} +0 -0
  19. data/vendor/libgit2/cmake/{Modules/FindGSSAPI.cmake → FindGSSAPI.cmake} +0 -0
  20. data/vendor/libgit2/cmake/{Modules/FindGSSFramework.cmake → FindGSSFramework.cmake} +0 -0
  21. data/vendor/libgit2/cmake/{Modules/FindHTTP_Parser.cmake → FindHTTP_Parser.cmake} +0 -0
  22. data/vendor/libgit2/cmake/{Modules/FindIconv.cmake → FindIconv.cmake} +0 -0
  23. data/vendor/libgit2/cmake/{Modules/FindPCRE.cmake → FindPCRE.cmake} +0 -0
  24. data/vendor/libgit2/cmake/{Modules/FindPCRE2.cmake → FindPCRE2.cmake} +0 -0
  25. data/vendor/libgit2/cmake/{Modules/FindPkgLibraries.cmake → FindPkgLibraries.cmake} +0 -0
  26. data/vendor/libgit2/cmake/{Modules/FindSecurity.cmake → FindSecurity.cmake} +0 -0
  27. data/vendor/libgit2/cmake/{Modules/FindStatNsec.cmake → FindStatNsec.cmake} +0 -0
  28. data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
  29. data/vendor/libgit2/cmake/{Modules/FindmbedTLS.cmake → FindmbedTLS.cmake} +0 -0
  30. data/vendor/libgit2/cmake/{Modules/IdeSplitSources.cmake → IdeSplitSources.cmake} +0 -0
  31. data/vendor/libgit2/cmake/{Modules/PkgBuildConfig.cmake → PkgBuildConfig.cmake} +0 -0
  32. data/vendor/libgit2/cmake/{Modules/SanitizeBool.cmake → SanitizeBool.cmake} +0 -0
  33. data/vendor/libgit2/cmake/{Modules/SelectGSSAPI.cmake → SelectGSSAPI.cmake} +18 -26
  34. data/vendor/libgit2/cmake/{Modules/SelectHTTPSBackend.cmake → SelectHTTPSBackend.cmake} +29 -32
  35. data/vendor/libgit2/cmake/{Modules/SelectHashes.cmake → SelectHashes.cmake} +21 -28
  36. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
  37. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +4 -3
  38. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +24 -10
  39. data/vendor/libgit2/deps/ntlmclient/compat.h +0 -27
  40. data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
  41. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
  42. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
  43. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
  44. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
  45. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
  46. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
  47. data/vendor/libgit2/deps/ntlmclient/ntlm.c +164 -135
  48. data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
  49. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
  50. data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
  51. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
  52. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
  53. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
  54. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
  55. data/vendor/libgit2/deps/ntlmclient/util.c +15 -1
  56. data/vendor/libgit2/deps/ntlmclient/util.h +2 -1
  57. data/vendor/libgit2/deps/pcre/LICENCE +93 -0
  58. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  59. data/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
  60. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
  61. data/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
  62. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -5
  63. data/vendor/libgit2/deps/zlib/deflate.c +1 -0
  64. data/vendor/libgit2/include/git2/annotated_commit.h +1 -1
  65. data/vendor/libgit2/include/git2/apply.h +2 -0
  66. data/vendor/libgit2/include/git2/attr.h +89 -0
  67. data/vendor/libgit2/include/git2/blame.h +95 -42
  68. data/vendor/libgit2/include/git2/blob.h +31 -3
  69. data/vendor/libgit2/include/git2/branch.h +25 -0
  70. data/vendor/libgit2/include/git2/cert.h +42 -5
  71. data/vendor/libgit2/include/git2/checkout.h +28 -12
  72. data/vendor/libgit2/include/git2/commit.h +35 -19
  73. data/vendor/libgit2/include/git2/common.h +33 -6
  74. data/vendor/libgit2/include/git2/config.h +1 -1
  75. data/vendor/libgit2/include/git2/deprecated.h +248 -8
  76. data/vendor/libgit2/include/git2/diff.h +35 -20
  77. data/vendor/libgit2/include/git2/errors.h +8 -7
  78. data/vendor/libgit2/include/git2/filter.h +57 -17
  79. data/vendor/libgit2/include/git2/graph.h +20 -2
  80. data/vendor/libgit2/include/git2/index.h +4 -5
  81. data/vendor/libgit2/include/git2/indexer.h +2 -1
  82. data/vendor/libgit2/include/git2/odb.h +44 -20
  83. data/vendor/libgit2/include/git2/pack.h +1 -1
  84. data/vendor/libgit2/include/git2/patch.h +8 -0
  85. data/vendor/libgit2/include/git2/rebase.h +25 -1
  86. data/vendor/libgit2/include/git2/refs.h +9 -5
  87. data/vendor/libgit2/include/git2/remote.h +59 -6
  88. data/vendor/libgit2/include/git2/repository.h +95 -52
  89. data/vendor/libgit2/include/git2/revparse.h +5 -5
  90. data/vendor/libgit2/include/git2/status.h +115 -59
  91. data/vendor/libgit2/include/git2/strarray.h +6 -10
  92. data/vendor/libgit2/include/git2/submodule.h +9 -0
  93. data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
  94. data/vendor/libgit2/include/git2/sys/filter.h +49 -28
  95. data/vendor/libgit2/include/git2/sys/midx.h +74 -0
  96. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
  97. data/vendor/libgit2/include/git2/sys/transport.h +1 -0
  98. data/vendor/libgit2/include/git2/tag.h +12 -0
  99. data/vendor/libgit2/include/git2/transport.h +1 -1
  100. data/vendor/libgit2/include/git2/tree.h +2 -14
  101. data/vendor/libgit2/include/git2/types.h +9 -0
  102. data/vendor/libgit2/include/git2/version.h +3 -3
  103. data/vendor/libgit2/include/git2/worktree.h +1 -0
  104. data/vendor/libgit2/src/CMakeLists.txt +77 -44
  105. data/vendor/libgit2/src/alloc.c +21 -8
  106. data/vendor/libgit2/src/allocators/failalloc.c +92 -0
  107. data/vendor/libgit2/src/allocators/failalloc.h +23 -0
  108. data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
  109. data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
  110. data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
  111. data/vendor/libgit2/src/annotated_commit.c +21 -9
  112. data/vendor/libgit2/src/apply.c +21 -8
  113. data/vendor/libgit2/src/array.h +11 -11
  114. data/vendor/libgit2/src/assert_safe.h +58 -0
  115. data/vendor/libgit2/src/attr.c +181 -74
  116. data/vendor/libgit2/src/attr_file.c +92 -42
  117. data/vendor/libgit2/src/attr_file.h +32 -11
  118. data/vendor/libgit2/src/attrcache.c +44 -40
  119. data/vendor/libgit2/src/attrcache.h +4 -5
  120. data/vendor/libgit2/src/blame.c +28 -15
  121. data/vendor/libgit2/src/blame_git.c +6 -3
  122. data/vendor/libgit2/src/blob.c +46 -24
  123. data/vendor/libgit2/src/branch.c +87 -37
  124. data/vendor/libgit2/src/buffer.c +339 -27
  125. data/vendor/libgit2/src/buffer.h +153 -2
  126. data/vendor/libgit2/src/cache.c +3 -24
  127. data/vendor/libgit2/src/cache.h +7 -7
  128. data/vendor/libgit2/src/cc-compat.h +10 -2
  129. data/vendor/libgit2/src/checkout.c +97 -98
  130. data/vendor/libgit2/src/cherrypick.c +8 -2
  131. data/vendor/libgit2/src/clone.c +104 -29
  132. data/vendor/libgit2/src/commit.c +41 -28
  133. data/vendor/libgit2/src/commit_graph.c +1209 -0
  134. data/vendor/libgit2/src/commit_graph.h +162 -0
  135. data/vendor/libgit2/src/commit_list.c +46 -0
  136. data/vendor/libgit2/src/commit_list.h +2 -0
  137. data/vendor/libgit2/src/common.h +26 -2
  138. data/vendor/libgit2/src/config.c +40 -22
  139. data/vendor/libgit2/src/config_cache.c +9 -4
  140. data/vendor/libgit2/src/config_entries.c +35 -27
  141. data/vendor/libgit2/src/config_file.c +25 -8
  142. data/vendor/libgit2/src/config_parse.c +5 -7
  143. data/vendor/libgit2/src/config_snapshot.c +2 -1
  144. data/vendor/libgit2/src/crlf.c +16 -6
  145. data/vendor/libgit2/src/date.c +4 -3
  146. data/vendor/libgit2/src/delta.c +1 -1
  147. data/vendor/libgit2/src/describe.c +11 -4
  148. data/vendor/libgit2/src/diff.c +23 -19
  149. data/vendor/libgit2/src/diff_driver.c +21 -17
  150. data/vendor/libgit2/src/diff_file.c +5 -7
  151. data/vendor/libgit2/src/diff_generate.c +56 -28
  152. data/vendor/libgit2/src/diff_parse.c +2 -3
  153. data/vendor/libgit2/src/diff_print.c +81 -65
  154. data/vendor/libgit2/src/diff_stats.c +19 -16
  155. data/vendor/libgit2/src/diff_tform.c +13 -13
  156. data/vendor/libgit2/src/diff_xdiff.c +4 -2
  157. data/vendor/libgit2/src/diff_xdiff.h +1 -1
  158. data/vendor/libgit2/src/errors.c +26 -19
  159. data/vendor/libgit2/src/features.h.in +5 -1
  160. data/vendor/libgit2/src/fetch.c +7 -2
  161. data/vendor/libgit2/src/fetchhead.c +8 -4
  162. data/vendor/libgit2/src/filebuf.c +9 -7
  163. data/vendor/libgit2/src/filter.c +209 -113
  164. data/vendor/libgit2/src/filter.h +24 -5
  165. data/vendor/libgit2/src/futils.c +8 -8
  166. data/vendor/libgit2/src/futils.h +4 -4
  167. data/vendor/libgit2/src/graph.c +64 -9
  168. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
  169. data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
  170. data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
  171. data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
  172. data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
  173. data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
  174. data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
  175. data/vendor/libgit2/src/hash.c +16 -13
  176. data/vendor/libgit2/src/hash.h +1 -1
  177. data/vendor/libgit2/src/hashsig.c +23 -10
  178. data/vendor/libgit2/src/ident.c +13 -3
  179. data/vendor/libgit2/src/idxmap.c +0 -22
  180. data/vendor/libgit2/src/ignore.c +35 -19
  181. data/vendor/libgit2/src/index.c +126 -84
  182. data/vendor/libgit2/src/index.h +1 -1
  183. data/vendor/libgit2/src/indexer.c +60 -36
  184. data/vendor/libgit2/src/integer.h +79 -2
  185. data/vendor/libgit2/src/iterator.c +40 -28
  186. data/vendor/libgit2/src/iterator.h +1 -1
  187. data/vendor/libgit2/src/khash.h +2 -11
  188. data/vendor/libgit2/src/{settings.c → libgit2.c} +125 -49
  189. data/vendor/libgit2/src/libgit2.h +15 -0
  190. data/vendor/libgit2/src/mailmap.c +23 -10
  191. data/vendor/libgit2/src/map.h +3 -3
  192. data/vendor/libgit2/src/merge.c +108 -46
  193. data/vendor/libgit2/src/merge.h +2 -1
  194. data/vendor/libgit2/src/merge_driver.c +19 -13
  195. data/vendor/libgit2/src/merge_file.c +15 -9
  196. data/vendor/libgit2/src/message.c +3 -1
  197. data/vendor/libgit2/src/midx.c +879 -0
  198. data/vendor/libgit2/src/midx.h +110 -0
  199. data/vendor/libgit2/src/mwindow.c +214 -95
  200. data/vendor/libgit2/src/mwindow.h +3 -3
  201. data/vendor/libgit2/src/net.c +133 -4
  202. data/vendor/libgit2/src/net.h +16 -2
  203. data/vendor/libgit2/src/netops.c +6 -4
  204. data/vendor/libgit2/src/netops.h +2 -2
  205. data/vendor/libgit2/src/notes.c +10 -10
  206. data/vendor/libgit2/src/object.c +24 -15
  207. data/vendor/libgit2/src/odb.c +298 -57
  208. data/vendor/libgit2/src/odb.h +16 -2
  209. data/vendor/libgit2/src/odb_loose.c +31 -21
  210. data/vendor/libgit2/src/odb_mempack.c +3 -1
  211. data/vendor/libgit2/src/odb_pack.c +391 -114
  212. data/vendor/libgit2/src/oid.c +7 -4
  213. data/vendor/libgit2/src/pack-objects.c +83 -69
  214. data/vendor/libgit2/src/pack.c +383 -150
  215. data/vendor/libgit2/src/pack.h +44 -9
  216. data/vendor/libgit2/src/patch.c +14 -7
  217. data/vendor/libgit2/src/patch_generate.c +3 -5
  218. data/vendor/libgit2/src/patch_parse.c +6 -3
  219. data/vendor/libgit2/src/path.c +102 -57
  220. data/vendor/libgit2/src/path.h +79 -6
  221. data/vendor/libgit2/src/pathspec.c +12 -11
  222. data/vendor/libgit2/src/pool.c +34 -22
  223. data/vendor/libgit2/src/pool.h +9 -1
  224. data/vendor/libgit2/src/posix.c +43 -12
  225. data/vendor/libgit2/src/posix.h +9 -0
  226. data/vendor/libgit2/src/proxy.c +2 -0
  227. data/vendor/libgit2/src/push.c +2 -0
  228. data/vendor/libgit2/src/reader.c +10 -6
  229. data/vendor/libgit2/src/rebase.c +95 -49
  230. data/vendor/libgit2/src/refdb.c +165 -13
  231. data/vendor/libgit2/src/refdb.h +69 -0
  232. data/vendor/libgit2/src/refdb_fs.c +144 -152
  233. data/vendor/libgit2/src/reflog.c +21 -20
  234. data/vendor/libgit2/src/refs.c +151 -231
  235. data/vendor/libgit2/src/refs.h +2 -20
  236. data/vendor/libgit2/src/refspec.c +80 -44
  237. data/vendor/libgit2/src/regexp.c +2 -2
  238. data/vendor/libgit2/src/remote.c +312 -121
  239. data/vendor/libgit2/src/remote.h +2 -1
  240. data/vendor/libgit2/src/repository.c +351 -189
  241. data/vendor/libgit2/src/repository.h +23 -29
  242. data/vendor/libgit2/src/reset.c +7 -6
  243. data/vendor/libgit2/src/revert.c +8 -2
  244. data/vendor/libgit2/src/revparse.c +19 -13
  245. data/vendor/libgit2/src/revwalk.c +35 -20
  246. data/vendor/libgit2/src/runtime.c +162 -0
  247. data/vendor/libgit2/src/runtime.h +62 -0
  248. data/vendor/libgit2/src/{refdb_fs.h → settings.h} +3 -11
  249. data/vendor/libgit2/src/signature.c +6 -5
  250. data/vendor/libgit2/src/sortedcache.c +2 -3
  251. data/vendor/libgit2/src/sortedcache.h +10 -8
  252. data/vendor/libgit2/src/stash.c +7 -3
  253. data/vendor/libgit2/src/status.c +9 -4
  254. data/vendor/libgit2/src/strarray.c +64 -0
  255. data/vendor/libgit2/src/streams/mbedtls.c +14 -17
  256. data/vendor/libgit2/src/streams/mbedtls.h +1 -1
  257. data/vendor/libgit2/src/streams/openssl.c +113 -207
  258. data/vendor/libgit2/src/streams/openssl.h +9 -1
  259. data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
  260. data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
  261. data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
  262. data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
  263. data/vendor/libgit2/src/streams/registry.c +10 -9
  264. data/vendor/libgit2/src/streams/socket.c +6 -2
  265. data/vendor/libgit2/src/streams/stransport.c +6 -3
  266. data/vendor/libgit2/src/streams/tls.c +5 -3
  267. data/vendor/libgit2/src/submodule.c +134 -66
  268. data/vendor/libgit2/src/submodule.h +9 -9
  269. data/vendor/libgit2/src/sysdir.c +8 -26
  270. data/vendor/libgit2/src/sysdir.h +0 -11
  271. data/vendor/libgit2/src/tag.c +49 -11
  272. data/vendor/libgit2/src/thread.c +140 -0
  273. data/vendor/libgit2/src/thread.h +479 -0
  274. data/vendor/libgit2/src/threadstate.c +83 -0
  275. data/vendor/libgit2/src/threadstate.h +24 -0
  276. data/vendor/libgit2/src/trace.c +2 -2
  277. data/vendor/libgit2/src/trace.h +17 -13
  278. data/vendor/libgit2/src/transaction.c +21 -9
  279. data/vendor/libgit2/src/transport.c +3 -3
  280. data/vendor/libgit2/src/transports/auth.c +1 -1
  281. data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
  282. data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
  283. data/vendor/libgit2/src/transports/credential.c +17 -7
  284. data/vendor/libgit2/src/transports/credential_helpers.c +2 -0
  285. data/vendor/libgit2/src/transports/git.c +1 -3
  286. data/vendor/libgit2/src/transports/http.c +19 -17
  287. data/vendor/libgit2/src/transports/http.h +1 -0
  288. data/vendor/libgit2/src/transports/httpclient.c +84 -42
  289. data/vendor/libgit2/src/transports/httpclient.h +1 -1
  290. data/vendor/libgit2/src/transports/local.c +5 -5
  291. data/vendor/libgit2/src/transports/smart.c +14 -9
  292. data/vendor/libgit2/src/transports/smart.h +1 -1
  293. data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
  294. data/vendor/libgit2/src/transports/ssh.c +51 -17
  295. data/vendor/libgit2/src/transports/winhttp.c +156 -88
  296. data/vendor/libgit2/src/tree.c +100 -77
  297. data/vendor/libgit2/src/tree.h +1 -0
  298. data/vendor/libgit2/src/tsort.c +0 -2
  299. data/vendor/libgit2/src/unix/map.c +3 -1
  300. data/vendor/libgit2/src/unix/posix.h +16 -1
  301. data/vendor/libgit2/src/unix/pthread.h +2 -1
  302. data/vendor/libgit2/src/utf8.c +150 -0
  303. data/vendor/libgit2/src/utf8.h +52 -0
  304. data/vendor/libgit2/src/util.c +74 -183
  305. data/vendor/libgit2/src/util.h +33 -39
  306. data/vendor/libgit2/src/vector.c +23 -19
  307. data/vendor/libgit2/src/vector.h +4 -2
  308. data/vendor/libgit2/src/win32/findfile.c +4 -2
  309. data/vendor/libgit2/src/win32/git2.rc +18 -3
  310. data/vendor/libgit2/src/win32/map.c +1 -1
  311. data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
  312. data/vendor/libgit2/src/win32/path_w32.c +23 -25
  313. data/vendor/libgit2/src/win32/path_w32.h +0 -1
  314. data/vendor/libgit2/src/win32/posix_w32.c +77 -1
  315. data/vendor/libgit2/src/win32/precompiled.h +0 -1
  316. data/vendor/libgit2/src/win32/reparse.h +4 -4
  317. data/vendor/libgit2/src/win32/thread.c +24 -15
  318. data/vendor/libgit2/src/win32/thread.h +1 -1
  319. data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
  320. data/vendor/libgit2/src/win32/w32_common.h +18 -9
  321. data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
  322. data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
  323. data/vendor/libgit2/src/win32/w32_util.h +6 -6
  324. data/vendor/libgit2/src/worktree.c +37 -15
  325. data/vendor/libgit2/src/zstream.c +1 -1
  326. metadata +56 -38
  327. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +0 -29
  328. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +0 -96
  329. data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
  330. data/vendor/libgit2/src/buf_text.c +0 -316
  331. data/vendor/libgit2/src/buf_text.h +0 -122
  332. data/vendor/libgit2/src/global.c +0 -361
  333. data/vendor/libgit2/src/global.h +0 -41
  334. data/vendor/libgit2/src/thread-utils.c +0 -58
  335. data/vendor/libgit2/src/thread-utils.h +0 -246
  336. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
  337. data/vendor/libgit2/src/win32/w32_stack.c +0 -188
  338. data/vendor/libgit2/src/win32/w32_stack.h +0 -140
@@ -0,0 +1,52 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+ #ifndef INCLUDE_utf8_h__
8
+ #define INCLUDE_utf8_h__
9
+
10
+ #include "common.h"
11
+
12
+ /*
13
+ * Iterate through an UTF-8 string, yielding one codepoint at a time.
14
+ *
15
+ * @param out pointer where to store the current codepoint
16
+ * @param str current position in the string
17
+ * @param str_len size left in the string
18
+ * @return length in bytes of the read codepoint; -1 if the codepoint was invalid
19
+ */
20
+ extern int git_utf8_iterate(uint32_t *out, const char *str, size_t str_len);
21
+
22
+ /**
23
+ * Returns the number of characters in the given string.
24
+ *
25
+ * This function will count invalid codepoints; if any given byte is
26
+ * not part of a valid UTF-8 codepoint, then it will be counted toward
27
+ * the length in characters.
28
+ *
29
+ * In other words:
30
+ * 0x24 (U+0024 "$") has length 1
31
+ * 0xc2 0xa2 (U+00A2 "¢") has length 1
32
+ * 0x24 0xc2 0xa2 (U+0024 U+00A2 "$¢") has length 2
33
+ * 0xf0 0x90 0x8d 0x88 (U+10348 "𐍈") has length 1
34
+ * 0x24 0xc0 0xc1 0x34 (U+0024 <invalid> <invalid> "4) has length 4
35
+ *
36
+ * @param str string to scan
37
+ * @param str_len size of the string
38
+ * @return length in characters of the string
39
+ */
40
+ extern size_t git_utf8_char_length(const char *str, size_t str_len);
41
+
42
+ /**
43
+ * Iterate through an UTF-8 string and stops after finding any invalid UTF-8
44
+ * codepoints.
45
+ *
46
+ * @param str string to scan
47
+ * @param str_len size of the string
48
+ * @return length in bytes of the string that contains valid data
49
+ */
50
+ extern size_t git_utf8_valid_buf_length(const char *str, size_t str_len);
51
+
52
+ #endif
@@ -13,6 +13,11 @@
13
13
  # include "win32/utf-conv.h"
14
14
  # include "win32/w32_buffer.h"
15
15
 
16
+ # ifndef WIN32_LEAN_AND_MEAN
17
+ # define WIN32_LEAN_AND_MEAN
18
+ # endif
19
+ # include <windows.h>
20
+
16
21
  # ifdef HAVE_QSORT_S
17
22
  # include <search.h>
18
23
  # endif
@@ -22,57 +27,15 @@
22
27
  # include <Shlwapi.h>
23
28
  #endif
24
29
 
25
- void git_strarray_free(git_strarray *array)
26
- {
27
- size_t i;
28
-
29
- if (array == NULL)
30
- return;
31
-
32
- for (i = 0; i < array->count; ++i)
33
- git__free(array->strings[i]);
34
-
35
- git__free(array->strings);
36
-
37
- memset(array, 0, sizeof(*array));
38
- }
39
-
40
- int git_strarray_copy(git_strarray *tgt, const git_strarray *src)
41
- {
42
- size_t i;
43
-
44
- assert(tgt && src);
45
-
46
- memset(tgt, 0, sizeof(*tgt));
47
-
48
- if (!src->count)
49
- return 0;
50
-
51
- tgt->strings = git__calloc(src->count, sizeof(char *));
52
- GIT_ERROR_CHECK_ALLOC(tgt->strings);
53
-
54
- for (i = 0; i < src->count; ++i) {
55
- if (!src->strings[i])
56
- continue;
57
-
58
- tgt->strings[tgt->count] = git__strdup(src->strings[i]);
59
- if (!tgt->strings[tgt->count]) {
60
- git_strarray_free(tgt);
61
- memset(tgt, 0, sizeof(*tgt));
62
- return -1;
63
- }
64
-
65
- tgt->count++;
66
- }
67
-
68
- return 0;
69
- }
30
+ #if defined(hpux) || defined(__hpux) || defined(_hpux)
31
+ # include <sys/pstat.h>
32
+ #endif
70
33
 
71
34
  int git__strntol64(int64_t *result, const char *nptr, size_t nptr_len, const char **endptr, int base)
72
35
  {
73
36
  const char *p;
74
- int64_t n, nn;
75
- int c, ovfl, v, neg, ndig;
37
+ int64_t n, nn, v;
38
+ int c, ovfl, neg, ndig;
76
39
 
77
40
  p = nptr;
78
41
  neg = 0;
@@ -147,19 +110,11 @@ int git__strntol64(int64_t *result, const char *nptr, size_t nptr_len, const cha
147
110
  if (v >= base)
148
111
  break;
149
112
  v = neg ? -v : v;
150
- if (n > INT64_MAX / base || n < INT64_MIN / base) {
151
- ovfl = 1;
152
- /* Keep on iterating until the end of this number */
153
- continue;
154
- }
155
- nn = n * base;
156
- if ((v > 0 && nn > INT64_MAX - v) ||
157
- (v < 0 && nn < INT64_MIN - v)) {
113
+ if (git__multiply_int64_overflow(&nn, n, base) || git__add_int64_overflow(&n, nn, v)) {
158
114
  ovfl = 1;
159
115
  /* Keep on iterating until the end of this number */
160
116
  continue;
161
117
  }
162
- n = nn + v;
163
118
  }
164
119
 
165
120
  Return:
@@ -424,35 +379,48 @@ void git__hexdump(const char *buffer, size_t len)
424
379
  last_line = (len % LINE_WIDTH);
425
380
 
426
381
  for (i = 0; i < line_count; ++i) {
382
+ printf("%08" PRIxZ " ", (i * LINE_WIDTH));
383
+
427
384
  line = buffer + (i * LINE_WIDTH);
428
- for (j = 0; j < LINE_WIDTH; ++j, ++line)
429
- printf("%02X ", (unsigned char)*line & 0xFF);
385
+ for (j = 0; j < LINE_WIDTH; ++j, ++line) {
386
+ printf("%02x ", (unsigned char)*line & 0xFF);
387
+
388
+ if (j == (LINE_WIDTH / 2))
389
+ printf(" ");
390
+ }
430
391
 
431
- printf("| ");
392
+ printf(" |");
432
393
 
433
394
  line = buffer + (i * LINE_WIDTH);
434
395
  for (j = 0; j < LINE_WIDTH; ++j, ++line)
435
396
  printf("%c", (*line >= 32 && *line <= 126) ? *line : '.');
436
397
 
437
- printf("\n");
398
+ printf("|\n");
438
399
  }
439
400
 
440
401
  if (last_line > 0) {
402
+ printf("%08" PRIxZ " ", (line_count * LINE_WIDTH));
441
403
 
442
404
  line = buffer + (line_count * LINE_WIDTH);
443
- for (j = 0; j < last_line; ++j, ++line)
444
- printf("%02X ", (unsigned char)*line & 0xFF);
405
+ for (j = 0; j < last_line; ++j, ++line) {
406
+ printf("%02x ", (unsigned char)*line & 0xFF);
407
+
408
+ if (j == (LINE_WIDTH / 2))
409
+ printf(" ");
410
+ }
445
411
 
412
+ if (j < (LINE_WIDTH / 2))
413
+ printf(" ");
446
414
  for (j = 0; j < (LINE_WIDTH - last_line); ++j)
447
- printf(" ");
415
+ printf(" ");
448
416
 
449
- printf("| ");
417
+ printf(" |");
450
418
 
451
419
  line = buffer + (line_count * LINE_WIDTH);
452
420
  for (j = 0; j < last_line; ++j, ++line)
453
421
  printf("%c", (*line >= 32 && *line <= 126) ? *line : '.');
454
422
 
455
- printf("\n");
423
+ printf("|\n");
456
424
  }
457
425
 
458
426
  printf("\n");
@@ -711,7 +679,7 @@ typedef struct {
711
679
  void *payload;
712
680
  } git__qsort_r_glue;
713
681
 
714
- static int GIT_STDLIB_CALL git__qsort_r_glue_cmp(
682
+ static int GIT_LIBGIT2_CALL git__qsort_r_glue_cmp(
715
683
  void *payload, const void *a, const void *b)
716
684
  {
717
685
  git__qsort_r_glue *glue = payload;
@@ -766,123 +734,6 @@ void git__qsort_r(
766
734
  #endif
767
735
  }
768
736
 
769
- /*
770
- * git__utf8_iterate is taken from the utf8proc project,
771
- * http://www.public-software-group.org/utf8proc
772
- *
773
- * Copyright (c) 2009 Public Software Group e. V., Berlin, Germany
774
- *
775
- * Permission is hereby granted, free of charge, to any person obtaining a
776
- * copy of this software and associated documentation files (the ""Software""),
777
- * to deal in the Software without restriction, including without limitation
778
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
779
- * and/or sell copies of the Software, and to permit persons to whom the
780
- * Software is furnished to do so, subject to the following conditions:
781
- *
782
- * The above copyright notice and this permission notice shall be included in
783
- * all copies or substantial portions of the Software.
784
- *
785
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
786
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
787
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
788
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
789
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
790
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
791
- * DEALINGS IN THE SOFTWARE.
792
- */
793
-
794
- static const int8_t utf8proc_utf8class[256] = {
795
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
796
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
797
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
798
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
799
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
800
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
801
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
802
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
803
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
804
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
808
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
809
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
810
- 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0
811
- };
812
-
813
- int git__utf8_charlen(const uint8_t *str, size_t str_len)
814
- {
815
- size_t length, i;
816
-
817
- length = utf8proc_utf8class[str[0]];
818
- if (!length)
819
- return -1;
820
-
821
- if (str_len > 0 && length > str_len)
822
- return -1;
823
-
824
- for (i = 1; i < length; i++) {
825
- if ((str[i] & 0xC0) != 0x80)
826
- return -1;
827
- }
828
-
829
- return (int)length;
830
- }
831
-
832
- int git__utf8_iterate(const uint8_t *str, int str_len, int32_t *dst)
833
- {
834
- int length;
835
- int32_t uc = -1;
836
-
837
- *dst = -1;
838
- length = git__utf8_charlen(str, str_len);
839
- if (length < 0)
840
- return -1;
841
-
842
- switch (length) {
843
- case 1:
844
- uc = str[0];
845
- break;
846
- case 2:
847
- uc = ((str[0] & 0x1F) << 6) + (str[1] & 0x3F);
848
- if (uc < 0x80) uc = -1;
849
- break;
850
- case 3:
851
- uc = ((str[0] & 0x0F) << 12) + ((str[1] & 0x3F) << 6)
852
- + (str[2] & 0x3F);
853
- if (uc < 0x800 || (uc >= 0xD800 && uc < 0xE000) ||
854
- (uc >= 0xFDD0 && uc < 0xFDF0)) uc = -1;
855
- break;
856
- case 4:
857
- uc = ((str[0] & 0x07) << 18) + ((str[1] & 0x3F) << 12)
858
- + ((str[2] & 0x3F) << 6) + (str[3] & 0x3F);
859
- if (uc < 0x10000 || uc >= 0x110000) uc = -1;
860
- break;
861
- }
862
-
863
- if (uc < 0 || ((uc & 0xFFFF) >= 0xFFFE))
864
- return -1;
865
-
866
- *dst = uc;
867
- return length;
868
- }
869
-
870
- size_t git__utf8_valid_buf_length(const uint8_t *str, size_t str_len)
871
- {
872
- size_t offset = 0;
873
-
874
- while (offset < str_len) {
875
- int length = git__utf8_charlen(str + offset, str_len - offset);
876
-
877
- if (length < 0)
878
- break;
879
-
880
- offset += length;
881
- }
882
-
883
- return offset;
884
- }
885
-
886
737
  #ifdef GIT_WIN32
887
738
  int git__getenv(git_buf *out, const char *name)
888
739
  {
@@ -926,3 +777,43 @@ int git__getenv(git_buf *out, const char *name)
926
777
  return git_buf_puts(out, val);
927
778
  }
928
779
  #endif
780
+
781
+ /*
782
+ * By doing this in two steps we can at least get
783
+ * the function to be somewhat coherent, even
784
+ * with this disgusting nest of #ifdefs.
785
+ */
786
+ #ifndef _SC_NPROCESSORS_ONLN
787
+ # ifdef _SC_NPROC_ONLN
788
+ # define _SC_NPROCESSORS_ONLN _SC_NPROC_ONLN
789
+ # elif defined _SC_CRAY_NCPU
790
+ # define _SC_NPROCESSORS_ONLN _SC_CRAY_NCPU
791
+ # endif
792
+ #endif
793
+
794
+ int git__online_cpus(void)
795
+ {
796
+ #ifdef _SC_NPROCESSORS_ONLN
797
+ long ncpus;
798
+ #endif
799
+
800
+ #ifdef _WIN32
801
+ SYSTEM_INFO info;
802
+ GetSystemInfo(&info);
803
+
804
+ if ((int)info.dwNumberOfProcessors > 0)
805
+ return (int)info.dwNumberOfProcessors;
806
+ #elif defined(hpux) || defined(__hpux) || defined(_hpux)
807
+ struct pst_dynamic psd;
808
+
809
+ if (!pstat_getdynamic(&psd, sizeof(psd), (size_t)1, 0))
810
+ return (int)psd.psd_proc_cnt;
811
+ #endif
812
+
813
+ #ifdef _SC_NPROCESSORS_ONLN
814
+ if ((ncpus = (long)sysconf(_SC_NPROCESSORS_ONLN)) > 0)
815
+ return (int)ncpus;
816
+ #endif
817
+
818
+ return 1;
819
+ }
@@ -18,11 +18,11 @@
18
18
  #include "buffer.h"
19
19
  #include "common.h"
20
20
  #include "strnlen.h"
21
- #include "thread-utils.h"
21
+ #include "thread.h"
22
22
 
23
23
  #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
24
24
  #define bitsizeof(x) (CHAR_BIT * sizeof(x))
25
- #define MSB(x, bits) ((x) & (~0ULL << (bitsizeof(x) - (bits))))
25
+ #define MSB(x, bits) ((x) & (~UINT64_C(0) << (bitsizeof(x) - (bits))))
26
26
  #ifndef min
27
27
  # define min(a,b) ((a) < (b) ? (a) : (b))
28
28
  #endif
@@ -168,30 +168,41 @@ extern int git__strncasecmp(const char *a, const char *b, size_t sz);
168
168
 
169
169
  extern int git__strcasesort_cmp(const char *a, const char *b);
170
170
 
171
+ /*
172
+ * Compare some NUL-terminated `a` to a possibly non-NUL terminated
173
+ * `b` of length `b_len`; like `strncmp` but ensuring that
174
+ * `strlen(a) == b_len` as well.
175
+ */
176
+ GIT_INLINE(int) git__strlcmp(const char *a, const char *b, size_t b_len)
177
+ {
178
+ int cmp = strncmp(a, b, b_len);
179
+ return cmp ? cmp : (int)a[b_len];
180
+ }
181
+
171
182
  typedef struct {
172
- git_atomic refcount;
183
+ git_atomic32 refcount;
173
184
  void *owner;
174
185
  } git_refcount;
175
186
 
176
187
  typedef void (*git_refcount_freeptr)(void *r);
177
188
 
178
189
  #define GIT_REFCOUNT_INC(r) { \
179
- git_atomic_inc(&(r)->rc.refcount); \
190
+ git_atomic32_inc(&(r)->rc.refcount); \
180
191
  }
181
192
 
182
193
  #define GIT_REFCOUNT_DEC(_r, do_free) { \
183
194
  git_refcount *r = &(_r)->rc; \
184
- int val = git_atomic_dec(&r->refcount); \
195
+ int val = git_atomic32_dec(&r->refcount); \
185
196
  if (val <= 0 && r->owner == NULL) { do_free(_r); } \
186
197
  }
187
198
 
188
199
  #define GIT_REFCOUNT_OWN(r, o) { \
189
- (r)->rc.owner = o; \
200
+ (void)git_atomic_swap((r)->rc.owner, o); \
190
201
  }
191
202
 
192
- #define GIT_REFCOUNT_OWNER(r) ((r)->rc.owner)
203
+ #define GIT_REFCOUNT_OWNER(r) git_atomic_load((r)->rc.owner)
193
204
 
194
- #define GIT_REFCOUNT_VAL(r) git_atomic_get((r)->rc.refcount)
205
+ #define GIT_REFCOUNT_VAL(r) git_atomic32_get((r)->rc.refcount)
195
206
 
196
207
 
197
208
  static signed char from_hex[] = {
@@ -316,27 +327,6 @@ extern int git__date_rfc2822_fmt(char *out, size_t len, const git_time *date);
316
327
  */
317
328
  extern size_t git__unescape(char *str);
318
329
 
319
- /*
320
- * Iterate through an UTF-8 string, yielding one
321
- * codepoint at a time.
322
- *
323
- * @param str current position in the string
324
- * @param str_len size left in the string; -1 if the string is NULL-terminated
325
- * @param dst pointer where to store the current codepoint
326
- * @return length in bytes of the read codepoint; -1 if the codepoint was invalid
327
- */
328
- extern int git__utf8_iterate(const uint8_t *str, int str_len, int32_t *dst);
329
-
330
- /*
331
- * Iterate through an UTF-8 string and stops after finding any invalid UTF-8
332
- * codepoints.
333
- *
334
- * @param str string to scan
335
- * @param str_len size of the string
336
- * @return length in bytes of the string that contains valid data
337
- */
338
- extern size_t git__utf8_valid_buf_length(const uint8_t *str, size_t str_len);
339
-
340
330
  /*
341
331
  * Safely zero-out memory, making sure that the compiler
342
332
  * doesn't optimize away the operation.
@@ -380,7 +370,7 @@ GIT_INLINE(double) git__timer(void)
380
370
  return (double)time * scaling_factor / 1.0E9;
381
371
  }
382
372
 
383
- #elif defined(AMIGA)
373
+ #elif defined(__amigaos4__)
384
374
 
385
375
  #include <proto/timer.h>
386
376
 
@@ -397,23 +387,27 @@ GIT_INLINE(double) git__timer(void)
397
387
 
398
388
  GIT_INLINE(double) git__timer(void)
399
389
  {
400
- struct timespec tp;
390
+ struct timeval tv;
401
391
 
402
- if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0) {
392
+ #ifdef CLOCK_MONOTONIC
393
+ struct timespec tp;
394
+ if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0)
403
395
  return (double) tp.tv_sec + (double) tp.tv_nsec / 1.0E9;
404
- } else {
405
- /* Fall back to using gettimeofday */
406
- struct timeval tv;
407
- struct timezone tz;
408
- gettimeofday(&tv, &tz);
409
- return (double)tv.tv_sec + (double)tv.tv_usec / 1.0E6;
410
- }
396
+ #endif
397
+
398
+ /* Fall back to using gettimeofday */
399
+ gettimeofday(&tv, NULL);
400
+ return (double)tv.tv_sec + (double)tv.tv_usec / 1.0E6;
411
401
  }
412
402
 
413
403
  #endif
414
404
 
415
405
  extern int git__getenv(git_buf *out, const char *name);
416
406
 
407
+ extern int git__online_cpus(void);
408
+
409
+ GIT_INLINE(int) git__noop(void) { return 0; }
410
+
417
411
  #include "alloc.h"
418
412
 
419
413
  #endif