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
@@ -7,7 +7,6 @@
7
7
  #include "buffer.h"
8
8
  #include "posix.h"
9
9
  #include "git2/buffer.h"
10
- #include "buf_text.h"
11
10
  #include <ctype.h>
12
11
 
13
12
  /* Used as default value for git_buf->ptr so that people can always
@@ -133,18 +132,24 @@ void git_buf_dispose(git_buf *buf)
133
132
  git_buf_init(buf, 0);
134
133
  }
135
134
 
135
+ #ifndef GIT_DEPRECATE_HARD
136
136
  void git_buf_free(git_buf *buf)
137
137
  {
138
138
  git_buf_dispose(buf);
139
139
  }
140
+ #endif
140
141
 
141
- void git_buf_sanitize(git_buf *buf)
142
+ int git_buf_sanitize(git_buf *buf)
142
143
  {
143
144
  if (buf->ptr == NULL) {
144
- assert(buf->size == 0 && buf->asize == 0);
145
+ GIT_ASSERT_ARG(buf->size == 0 && buf->asize == 0);
146
+
145
147
  buf->ptr = git_buf__initbuf;
146
- } else if (buf->asize > buf->size)
148
+ } else if (buf->asize > buf->size) {
147
149
  buf->ptr[buf->size] = '\0';
150
+ }
151
+
152
+ return 0;
148
153
  }
149
154
 
150
155
  void git_buf_clear(git_buf *buf)
@@ -181,16 +186,6 @@ int git_buf_set(git_buf *buf, const void *data, size_t len)
181
186
  return 0;
182
187
  }
183
188
 
184
- int git_buf_is_binary(const git_buf *buf)
185
- {
186
- return git_buf_text_is_binary(buf);
187
- }
188
-
189
- int git_buf_contains_nul(const git_buf *buf)
190
- {
191
- return git_buf_text_contains_nul(buf);
192
- }
193
-
194
189
  int git_buf_sets(git_buf *buf, const char *string)
195
190
  {
196
191
  return git_buf_set(buf, string, string ? strlen(string) : 0);
@@ -223,7 +218,7 @@ int git_buf_put(git_buf *buf, const char *data, size_t len)
223
218
  if (len) {
224
219
  size_t new_size;
225
220
 
226
- assert(data);
221
+ GIT_ASSERT_ARG(data);
227
222
 
228
223
  GIT_ERROR_CHECK_ALLOC_ADD(&new_size, buf->size, len);
229
224
  GIT_ERROR_CHECK_ALLOC_ADD(&new_size, new_size, 1);
@@ -237,7 +232,8 @@ int git_buf_put(git_buf *buf, const char *data, size_t len)
237
232
 
238
233
  int git_buf_puts(git_buf *buf, const char *string)
239
234
  {
240
- assert(string);
235
+ GIT_ASSERT_ARG(string);
236
+
241
237
  return git_buf_put(buf, string, strlen(string));
242
238
  }
243
239
 
@@ -317,7 +313,7 @@ int git_buf_decode_base64(git_buf *buf, const char *base64, size_t len)
317
313
  return -1;
318
314
  }
319
315
 
320
- assert(len % 4 == 0);
316
+ GIT_ASSERT_ARG(len % 4 == 0);
321
317
  GIT_ERROR_CHECK_ALLOC_ADD(&new_size, (len / 4 * 3), buf->size);
322
318
  GIT_ERROR_CHECK_ALLOC_ADD(&new_size, new_size, 1);
323
319
  ENSURE_SIZE(buf, new_size);
@@ -363,7 +359,7 @@ int git_buf_encode_base85(git_buf *buf, const char *data, size_t len)
363
359
 
364
360
  for (i = 24; i >= 0; i -= 8) {
365
361
  uint8_t ch = *data++;
366
- acc |= ch << i;
362
+ acc |= (uint32_t)ch << i;
367
363
 
368
364
  if (--len == 0)
369
365
  break;
@@ -549,22 +545,26 @@ int git_buf_printf(git_buf *buf, const char *format, ...)
549
545
  return r;
550
546
  }
551
547
 
552
- void git_buf_copy_cstr(char *data, size_t datasize, const git_buf *buf)
548
+ int git_buf_copy_cstr(char *data, size_t datasize, const git_buf *buf)
553
549
  {
554
550
  size_t copylen;
555
551
 
556
- assert(data && datasize && buf);
552
+ GIT_ASSERT_ARG(data);
553
+ GIT_ASSERT_ARG(datasize);
554
+ GIT_ASSERT_ARG(buf);
557
555
 
558
556
  data[0] = '\0';
559
557
 
560
558
  if (buf->size == 0 || buf->asize <= 0)
561
- return;
559
+ return 0;
562
560
 
563
561
  copylen = buf->size;
564
562
  if (copylen > datasize - 1)
565
563
  copylen = datasize - 1;
566
564
  memmove(data, buf->ptr, copylen);
567
565
  data[copylen] = '\0';
566
+
567
+ return 0;
568
568
  }
569
569
 
570
570
  void git_buf_consume_bytes(git_buf *buf, size_t len)
@@ -757,7 +757,8 @@ int git_buf_join(
757
757
  ssize_t offset_a = -1;
758
758
 
759
759
  /* not safe to have str_b point internally to the buffer */
760
- assert(str_b < buf->ptr || str_b >= buf->ptr + buf->size);
760
+ if (buf->size)
761
+ GIT_ASSERT_ARG(str_b < buf->ptr || str_b >= buf->ptr + buf->size);
761
762
 
762
763
  /* figure out if we need to insert a separator */
763
764
  if (separator && strlen_a) {
@@ -767,7 +768,7 @@ int git_buf_join(
767
768
  }
768
769
 
769
770
  /* str_a could be part of the buffer */
770
- if (str_a >= buf->ptr && str_a < buf->ptr + buf->size)
771
+ if (buf->size && str_a >= buf->ptr && str_a < buf->ptr + buf->size)
771
772
  offset_a = str_a - buf->ptr;
772
773
 
773
774
  GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, strlen_a, strlen_b);
@@ -807,9 +808,9 @@ int git_buf_join3(
807
808
  char *tgt;
808
809
 
809
810
  /* for this function, disallow pointers into the existing buffer */
810
- assert(str_a < buf->ptr || str_a >= buf->ptr + buf->size);
811
- assert(str_b < buf->ptr || str_b >= buf->ptr + buf->size);
812
- assert(str_c < buf->ptr || str_c >= buf->ptr + buf->size);
811
+ GIT_ASSERT(str_a < buf->ptr || str_a >= buf->ptr + buf->size);
812
+ GIT_ASSERT(str_b < buf->ptr || str_b >= buf->ptr + buf->size);
813
+ GIT_ASSERT(str_c < buf->ptr || str_c >= buf->ptr + buf->size);
813
814
 
814
815
  if (separator) {
815
816
  if (len_a > 0) {
@@ -882,7 +883,9 @@ int git_buf_splice(
882
883
  char *splice_loc;
883
884
  size_t new_size, alloc_size;
884
885
 
885
- assert(buf && where <= buf->size && nb_to_remove <= buf->size - where);
886
+ GIT_ASSERT(buf);
887
+ GIT_ASSERT(where <= buf->size);
888
+ GIT_ASSERT(nb_to_remove <= buf->size - where);
886
889
 
887
890
  splice_loc = buf->ptr + where;
888
891
 
@@ -1044,3 +1047,312 @@ invalid:
1044
1047
  git_error_set(GIT_ERROR_INVALID, "invalid quoted line");
1045
1048
  return -1;
1046
1049
  }
1050
+
1051
+ int git_buf_puts_escaped(
1052
+ git_buf *buf,
1053
+ const char *string,
1054
+ const char *esc_chars,
1055
+ const char *esc_with)
1056
+ {
1057
+ const char *scan;
1058
+ size_t total = 0, esc_len = strlen(esc_with), count, alloclen;
1059
+
1060
+ if (!string)
1061
+ return 0;
1062
+
1063
+ for (scan = string; *scan; ) {
1064
+ /* count run of non-escaped characters */
1065
+ count = strcspn(scan, esc_chars);
1066
+ total += count;
1067
+ scan += count;
1068
+ /* count run of escaped characters */
1069
+ count = strspn(scan, esc_chars);
1070
+ total += count * (esc_len + 1);
1071
+ scan += count;
1072
+ }
1073
+
1074
+ GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, total, 1);
1075
+ if (git_buf_grow_by(buf, alloclen) < 0)
1076
+ return -1;
1077
+
1078
+ for (scan = string; *scan; ) {
1079
+ count = strcspn(scan, esc_chars);
1080
+
1081
+ memmove(buf->ptr + buf->size, scan, count);
1082
+ scan += count;
1083
+ buf->size += count;
1084
+
1085
+ for (count = strspn(scan, esc_chars); count > 0; --count) {
1086
+ /* copy escape sequence */
1087
+ memmove(buf->ptr + buf->size, esc_with, esc_len);
1088
+ buf->size += esc_len;
1089
+ /* copy character to be escaped */
1090
+ buf->ptr[buf->size] = *scan;
1091
+ buf->size++;
1092
+ scan++;
1093
+ }
1094
+ }
1095
+
1096
+ buf->ptr[buf->size] = '\0';
1097
+
1098
+ return 0;
1099
+ }
1100
+
1101
+ void git_buf_unescape(git_buf *buf)
1102
+ {
1103
+ buf->size = git__unescape(buf->ptr);
1104
+ }
1105
+
1106
+ int git_buf_crlf_to_lf(git_buf *tgt, const git_buf *src)
1107
+ {
1108
+ const char *scan = src->ptr;
1109
+ const char *scan_end = src->ptr + src->size;
1110
+ const char *next = memchr(scan, '\r', src->size);
1111
+ size_t new_size;
1112
+ char *out;
1113
+
1114
+ GIT_ASSERT(tgt != src);
1115
+
1116
+ if (!next)
1117
+ return git_buf_set(tgt, src->ptr, src->size);
1118
+
1119
+ /* reduce reallocs while in the loop */
1120
+ GIT_ERROR_CHECK_ALLOC_ADD(&new_size, src->size, 1);
1121
+ if (git_buf_grow(tgt, new_size) < 0)
1122
+ return -1;
1123
+
1124
+ out = tgt->ptr;
1125
+ tgt->size = 0;
1126
+
1127
+ /* Find the next \r and copy whole chunk up to there to tgt */
1128
+ for (; next; scan = next + 1, next = memchr(scan, '\r', scan_end - scan)) {
1129
+ if (next > scan) {
1130
+ size_t copylen = (size_t)(next - scan);
1131
+ memcpy(out, scan, copylen);
1132
+ out += copylen;
1133
+ }
1134
+
1135
+ /* Do not drop \r unless it is followed by \n */
1136
+ if (next + 1 == scan_end || next[1] != '\n')
1137
+ *out++ = '\r';
1138
+ }
1139
+
1140
+ /* Copy remaining input into dest */
1141
+ if (scan < scan_end) {
1142
+ size_t remaining = (size_t)(scan_end - scan);
1143
+ memcpy(out, scan, remaining);
1144
+ out += remaining;
1145
+ }
1146
+
1147
+ tgt->size = (size_t)(out - tgt->ptr);
1148
+ tgt->ptr[tgt->size] = '\0';
1149
+
1150
+ return 0;
1151
+ }
1152
+
1153
+ int git_buf_lf_to_crlf(git_buf *tgt, const git_buf *src)
1154
+ {
1155
+ const char *start = src->ptr;
1156
+ const char *end = start + src->size;
1157
+ const char *scan = start;
1158
+ const char *next = memchr(scan, '\n', src->size);
1159
+ size_t alloclen;
1160
+
1161
+ GIT_ASSERT(tgt != src);
1162
+
1163
+ if (!next)
1164
+ return git_buf_set(tgt, src->ptr, src->size);
1165
+
1166
+ /* attempt to reduce reallocs while in the loop */
1167
+ GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, src->size, src->size >> 4);
1168
+ GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, alloclen, 1);
1169
+ if (git_buf_grow(tgt, alloclen) < 0)
1170
+ return -1;
1171
+ tgt->size = 0;
1172
+
1173
+ for (; next; scan = next + 1, next = memchr(scan, '\n', end - scan)) {
1174
+ size_t copylen = next - scan;
1175
+
1176
+ /* if we find mixed line endings, carry on */
1177
+ if (copylen && next[-1] == '\r')
1178
+ copylen--;
1179
+
1180
+ GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, copylen, 3);
1181
+ if (git_buf_grow_by(tgt, alloclen) < 0)
1182
+ return -1;
1183
+
1184
+ if (copylen) {
1185
+ memcpy(tgt->ptr + tgt->size, scan, copylen);
1186
+ tgt->size += copylen;
1187
+ }
1188
+
1189
+ tgt->ptr[tgt->size++] = '\r';
1190
+ tgt->ptr[tgt->size++] = '\n';
1191
+ }
1192
+
1193
+ tgt->ptr[tgt->size] = '\0';
1194
+ return git_buf_put(tgt, scan, end - scan);
1195
+ }
1196
+
1197
+ int git_buf_common_prefix(git_buf *buf, const git_strarray *strings)
1198
+ {
1199
+ size_t i;
1200
+ const char *str, *pfx;
1201
+
1202
+ git_buf_clear(buf);
1203
+
1204
+ if (!strings || !strings->count)
1205
+ return 0;
1206
+
1207
+ /* initialize common prefix to first string */
1208
+ if (git_buf_sets(buf, strings->strings[0]) < 0)
1209
+ return -1;
1210
+
1211
+ /* go through the rest of the strings, truncating to shared prefix */
1212
+ for (i = 1; i < strings->count; ++i) {
1213
+
1214
+ for (str = strings->strings[i], pfx = buf->ptr;
1215
+ *str && *str == *pfx; str++, pfx++)
1216
+ /* scanning */;
1217
+
1218
+ git_buf_truncate(buf, pfx - buf->ptr);
1219
+
1220
+ if (!buf->size)
1221
+ break;
1222
+ }
1223
+
1224
+ return 0;
1225
+ }
1226
+
1227
+ int git_buf_is_binary(const git_buf *buf)
1228
+ {
1229
+ const char *scan = buf->ptr, *end = buf->ptr + buf->size;
1230
+ git_buf_bom_t bom;
1231
+ int printable = 0, nonprintable = 0;
1232
+
1233
+ scan += git_buf_detect_bom(&bom, buf);
1234
+
1235
+ if (bom > GIT_BUF_BOM_UTF8)
1236
+ return 1;
1237
+
1238
+ while (scan < end) {
1239
+ unsigned char c = *scan++;
1240
+
1241
+ /* Printable characters are those above SPACE (0x1F) excluding DEL,
1242
+ * and including BS, ESC and FF.
1243
+ */
1244
+ if ((c > 0x1F && c != 127) || c == '\b' || c == '\033' || c == '\014')
1245
+ printable++;
1246
+ else if (c == '\0')
1247
+ return true;
1248
+ else if (!git__isspace(c))
1249
+ nonprintable++;
1250
+ }
1251
+
1252
+ return ((printable >> 7) < nonprintable);
1253
+ }
1254
+
1255
+ int git_buf_contains_nul(const git_buf *buf)
1256
+ {
1257
+ return (memchr(buf->ptr, '\0', buf->size) != NULL);
1258
+ }
1259
+
1260
+ int git_buf_detect_bom(git_buf_bom_t *bom, const git_buf *buf)
1261
+ {
1262
+ const char *ptr;
1263
+ size_t len;
1264
+
1265
+ *bom = GIT_BUF_BOM_NONE;
1266
+ /* need at least 2 bytes to look for any BOM */
1267
+ if (buf->size < 2)
1268
+ return 0;
1269
+
1270
+ ptr = buf->ptr;
1271
+ len = buf->size;
1272
+
1273
+ switch (*ptr++) {
1274
+ case 0:
1275
+ if (len >= 4 && ptr[0] == 0 && ptr[1] == '\xFE' && ptr[2] == '\xFF') {
1276
+ *bom = GIT_BUF_BOM_UTF32_BE;
1277
+ return 4;
1278
+ }
1279
+ break;
1280
+ case '\xEF':
1281
+ if (len >= 3 && ptr[0] == '\xBB' && ptr[1] == '\xBF') {
1282
+ *bom = GIT_BUF_BOM_UTF8;
1283
+ return 3;
1284
+ }
1285
+ break;
1286
+ case '\xFE':
1287
+ if (*ptr == '\xFF') {
1288
+ *bom = GIT_BUF_BOM_UTF16_BE;
1289
+ return 2;
1290
+ }
1291
+ break;
1292
+ case '\xFF':
1293
+ if (*ptr != '\xFE')
1294
+ break;
1295
+ if (len >= 4 && ptr[1] == 0 && ptr[2] == 0) {
1296
+ *bom = GIT_BUF_BOM_UTF32_LE;
1297
+ return 4;
1298
+ } else {
1299
+ *bom = GIT_BUF_BOM_UTF16_LE;
1300
+ return 2;
1301
+ }
1302
+ break;
1303
+ default:
1304
+ break;
1305
+ }
1306
+
1307
+ return 0;
1308
+ }
1309
+
1310
+ bool git_buf_gather_text_stats(
1311
+ git_buf_text_stats *stats, const git_buf *buf, bool skip_bom)
1312
+ {
1313
+ const char *scan = buf->ptr, *end = buf->ptr + buf->size;
1314
+ int skip;
1315
+
1316
+ memset(stats, 0, sizeof(*stats));
1317
+
1318
+ /* BOM detection */
1319
+ skip = git_buf_detect_bom(&stats->bom, buf);
1320
+ if (skip_bom)
1321
+ scan += skip;
1322
+
1323
+ /* Ignore EOF character */
1324
+ if (buf->size > 0 && end[-1] == '\032')
1325
+ end--;
1326
+
1327
+ /* Counting loop */
1328
+ while (scan < end) {
1329
+ unsigned char c = *scan++;
1330
+
1331
+ if (c > 0x1F && c != 0x7F)
1332
+ stats->printable++;
1333
+ else switch (c) {
1334
+ case '\0':
1335
+ stats->nul++;
1336
+ stats->nonprintable++;
1337
+ break;
1338
+ case '\n':
1339
+ stats->lf++;
1340
+ break;
1341
+ case '\r':
1342
+ stats->cr++;
1343
+ if (scan < end && *scan == '\n')
1344
+ stats->crlf++;
1345
+ break;
1346
+ case '\t': case '\f': case '\v': case '\b': case 0x1b: /*ESC*/
1347
+ stats->printable++;
1348
+ break;
1349
+ default:
1350
+ stats->nonprintable++;
1351
+ break;
1352
+ }
1353
+ }
1354
+
1355
+ /* Treat files with a bare CR as binary */
1356
+ return (stats->cr != stats->crlf || stats->nul > 0 ||
1357
+ ((stats->printable >> 7) < stats->nonprintable));
1358
+ }