rugged 1.0.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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