rugged 0.28.4 → 0.28.4.1

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 (350) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/AUTHORS +0 -1
  4. data/vendor/libgit2/CMakeLists.txt +16 -36
  5. data/vendor/libgit2/COPYING +0 -28
  6. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +1 -5
  7. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  8. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  9. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  10. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +0 -6
  11. data/vendor/libgit2/deps/http-parser/http_parser.c +6 -11
  12. data/vendor/libgit2/deps/regex/CMakeLists.txt +2 -0
  13. data/vendor/libgit2/deps/regex/COPYING +502 -0
  14. data/vendor/libgit2/deps/regex/config.h +7 -0
  15. data/vendor/libgit2/deps/regex/regcomp.c +3857 -0
  16. data/vendor/libgit2/deps/regex/regex.c +92 -0
  17. data/vendor/libgit2/deps/regex/regex.h +582 -0
  18. data/vendor/libgit2/deps/regex/regex_internal.c +1744 -0
  19. data/vendor/libgit2/deps/regex/regex_internal.h +819 -0
  20. data/vendor/libgit2/deps/regex/regexec.c +4369 -0
  21. data/vendor/libgit2/deps/zlib/adler32.c +7 -0
  22. data/vendor/libgit2/deps/zlib/crc32.c +7 -0
  23. data/vendor/libgit2/include/git2.h +0 -2
  24. data/vendor/libgit2/include/git2/apply.h +2 -22
  25. data/vendor/libgit2/include/git2/attr.h +12 -19
  26. data/vendor/libgit2/include/git2/blame.h +2 -2
  27. data/vendor/libgit2/include/git2/blob.h +12 -44
  28. data/vendor/libgit2/include/git2/buffer.h +14 -20
  29. data/vendor/libgit2/include/git2/checkout.h +14 -46
  30. data/vendor/libgit2/include/git2/cherrypick.h +3 -3
  31. data/vendor/libgit2/include/git2/clone.h +2 -2
  32. data/vendor/libgit2/include/git2/commit.h +1 -23
  33. data/vendor/libgit2/include/git2/common.h +5 -7
  34. data/vendor/libgit2/include/git2/config.h +12 -12
  35. data/vendor/libgit2/include/git2/deprecated.h +3 -243
  36. data/vendor/libgit2/include/git2/describe.h +4 -4
  37. data/vendor/libgit2/include/git2/diff.h +14 -16
  38. data/vendor/libgit2/include/git2/filter.h +0 -8
  39. data/vendor/libgit2/include/git2/index.h +1 -2
  40. data/vendor/libgit2/include/git2/indexer.h +4 -48
  41. data/vendor/libgit2/include/git2/inttypes.h +309 -0
  42. data/vendor/libgit2/include/git2/merge.h +10 -6
  43. data/vendor/libgit2/include/git2/net.h +5 -0
  44. data/vendor/libgit2/include/git2/object.h +14 -2
  45. data/vendor/libgit2/include/git2/odb.h +2 -3
  46. data/vendor/libgit2/include/git2/odb_backend.h +4 -5
  47. data/vendor/libgit2/include/git2/oid.h +1 -1
  48. data/vendor/libgit2/include/git2/pack.h +1 -12
  49. data/vendor/libgit2/include/git2/proxy.h +3 -5
  50. data/vendor/libgit2/include/git2/rebase.h +2 -46
  51. data/vendor/libgit2/include/git2/refs.h +0 -19
  52. data/vendor/libgit2/include/git2/remote.h +12 -35
  53. data/vendor/libgit2/include/git2/repository.h +2 -24
  54. data/vendor/libgit2/include/git2/revert.h +1 -1
  55. data/vendor/libgit2/include/git2/stash.h +3 -3
  56. data/vendor/libgit2/include/git2/status.h +16 -25
  57. data/vendor/libgit2/include/git2/submodule.h +3 -20
  58. data/vendor/libgit2/include/git2/sys/alloc.h +9 -9
  59. data/vendor/libgit2/include/git2/sys/odb_backend.h +4 -48
  60. data/vendor/libgit2/include/git2/sys/refdb_backend.h +21 -57
  61. data/vendor/libgit2/include/git2/sys/repository.h +1 -5
  62. data/vendor/libgit2/include/git2/sys/time.h +31 -0
  63. data/vendor/libgit2/include/git2/sys/transport.h +2 -2
  64. data/vendor/libgit2/include/git2/tag.h +2 -11
  65. data/vendor/libgit2/include/git2/trace.h +2 -2
  66. data/vendor/libgit2/include/git2/transport.h +340 -11
  67. data/vendor/libgit2/include/git2/tree.h +1 -1
  68. data/vendor/libgit2/include/git2/types.h +89 -4
  69. data/vendor/libgit2/include/git2/version.h +2 -2
  70. data/vendor/libgit2/include/git2/worktree.h +5 -5
  71. data/vendor/libgit2/libgit2.pc.in +13 -0
  72. data/vendor/libgit2/src/CMakeLists.txt +222 -88
  73. data/vendor/libgit2/src/alloc.c +14 -2
  74. data/vendor/libgit2/src/apply.c +30 -60
  75. data/vendor/libgit2/src/attr.c +64 -70
  76. data/vendor/libgit2/src/attr_file.c +96 -189
  77. data/vendor/libgit2/src/attr_file.h +9 -9
  78. data/vendor/libgit2/src/attrcache.c +46 -44
  79. data/vendor/libgit2/src/attrcache.h +1 -2
  80. data/vendor/libgit2/src/blame.c +5 -17
  81. data/vendor/libgit2/src/blame.h +1 -1
  82. data/vendor/libgit2/src/blame_git.c +7 -21
  83. data/vendor/libgit2/src/blob.c +17 -81
  84. data/vendor/libgit2/src/blob.h +2 -2
  85. data/vendor/libgit2/src/branch.c +5 -29
  86. data/vendor/libgit2/src/buffer.c +7 -14
  87. data/vendor/libgit2/src/cache.c +33 -26
  88. data/vendor/libgit2/src/cache.h +1 -1
  89. data/vendor/libgit2/src/cc-compat.h +0 -5
  90. data/vendor/libgit2/src/checkout.c +16 -26
  91. data/vendor/libgit2/src/cherrypick.c +3 -9
  92. data/vendor/libgit2/src/clone.c +7 -29
  93. data/vendor/libgit2/src/clone.h +0 -4
  94. data/vendor/libgit2/src/commit.c +21 -69
  95. data/vendor/libgit2/src/commit.h +0 -6
  96. data/vendor/libgit2/src/commit_list.c +76 -28
  97. data/vendor/libgit2/src/commit_list.h +2 -2
  98. data/vendor/libgit2/src/common.h +75 -3
  99. data/vendor/libgit2/src/config.c +40 -31
  100. data/vendor/libgit2/src/config.h +6 -7
  101. data/vendor/libgit2/src/config_backend.h +0 -12
  102. data/vendor/libgit2/src/config_cache.c +39 -39
  103. data/vendor/libgit2/src/config_entries.c +99 -69
  104. data/vendor/libgit2/src/config_entries.h +0 -1
  105. data/vendor/libgit2/src/config_file.c +380 -337
  106. data/vendor/libgit2/src/config_mem.c +16 -12
  107. data/vendor/libgit2/src/config_parse.c +29 -49
  108. data/vendor/libgit2/src/config_parse.h +12 -13
  109. data/vendor/libgit2/src/crlf.c +14 -14
  110. data/vendor/libgit2/src/describe.c +20 -21
  111. data/vendor/libgit2/src/diff.c +58 -43
  112. data/vendor/libgit2/src/diff.h +1 -2
  113. data/vendor/libgit2/src/diff_driver.c +38 -37
  114. data/vendor/libgit2/src/diff_file.c +7 -9
  115. data/vendor/libgit2/src/diff_file.h +1 -1
  116. data/vendor/libgit2/src/diff_generate.c +85 -135
  117. data/vendor/libgit2/src/diff_generate.h +2 -2
  118. data/vendor/libgit2/src/diff_parse.c +1 -1
  119. data/vendor/libgit2/src/diff_print.c +13 -25
  120. data/vendor/libgit2/src/diff_stats.c +1 -1
  121. data/vendor/libgit2/src/diff_tform.c +4 -4
  122. data/vendor/libgit2/src/errors.c +22 -12
  123. data/vendor/libgit2/src/features.h.in +2 -9
  124. data/vendor/libgit2/src/fetch.c +2 -7
  125. data/vendor/libgit2/src/fetchhead.c +1 -1
  126. data/vendor/libgit2/src/filebuf.c +10 -6
  127. data/vendor/libgit2/src/filebuf.h +2 -2
  128. data/vendor/libgit2/src/{futils.c → fileops.c} +17 -21
  129. data/vendor/libgit2/src/{futils.h → fileops.h} +5 -5
  130. data/vendor/libgit2/src/filter.c +8 -16
  131. data/vendor/libgit2/src/fnmatch.c +248 -0
  132. data/vendor/libgit2/src/fnmatch.h +48 -0
  133. data/vendor/libgit2/src/global.c +40 -12
  134. data/vendor/libgit2/src/global.h +2 -0
  135. data/vendor/libgit2/src/hash.c +0 -61
  136. data/vendor/libgit2/src/hash.h +21 -19
  137. data/vendor/libgit2/src/hash/{sha1/collisiondetect.c → hash_collisiondetect.h} +17 -14
  138. data/vendor/libgit2/src/hash/{sha1/common_crypto.c → hash_common_crypto.h} +19 -15
  139. data/vendor/libgit2/src/hash/{sha1/generic.c → hash_generic.c} +10 -22
  140. data/vendor/libgit2/src/hash/{sha1/generic.h → hash_generic.h} +14 -4
  141. data/vendor/libgit2/src/hash/{sha1/mbedtls.c → hash_mbedtls.c} +7 -15
  142. data/vendor/libgit2/src/hash/{sha1/mbedtls.h → hash_mbedtls.h} +11 -6
  143. data/vendor/libgit2/src/hash/{sha1/openssl.c → hash_openssl.h} +18 -14
  144. data/vendor/libgit2/src/hash/{sha1/win32.c → hash_win32.c} +24 -34
  145. data/vendor/libgit2/src/hash/{sha1/win32.h → hash_win32.h} +19 -6
  146. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.c +3 -14
  147. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.h +0 -0
  148. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.c +0 -0
  149. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.h +0 -0
  150. data/vendor/libgit2/src/hashsig.c +1 -1
  151. data/vendor/libgit2/src/idxmap.c +65 -91
  152. data/vendor/libgit2/src/idxmap.h +15 -151
  153. data/vendor/libgit2/src/ignore.c +38 -32
  154. data/vendor/libgit2/src/index.c +43 -66
  155. data/vendor/libgit2/src/index.h +1 -1
  156. data/vendor/libgit2/src/indexer.c +70 -69
  157. data/vendor/libgit2/src/integer.h +4 -39
  158. data/vendor/libgit2/src/iterator.c +22 -27
  159. data/vendor/libgit2/src/map.h +1 -1
  160. data/vendor/libgit2/src/merge.c +44 -58
  161. data/vendor/libgit2/src/merge_driver.c +4 -4
  162. data/vendor/libgit2/src/merge_file.c +1 -1
  163. data/vendor/libgit2/src/mwindow.c +23 -18
  164. data/vendor/libgit2/src/mwindow.h +4 -4
  165. data/vendor/libgit2/src/netops.c +165 -55
  166. data/vendor/libgit2/src/netops.h +25 -3
  167. data/vendor/libgit2/src/notes.c +2 -2
  168. data/vendor/libgit2/src/object.c +2 -2
  169. data/vendor/libgit2/src/object.h +0 -2
  170. data/vendor/libgit2/src/odb.c +23 -41
  171. data/vendor/libgit2/src/odb.h +2 -3
  172. data/vendor/libgit2/src/odb_loose.c +10 -17
  173. data/vendor/libgit2/src/odb_mempack.c +23 -10
  174. data/vendor/libgit2/src/odb_pack.c +4 -4
  175. data/vendor/libgit2/src/offmap.c +55 -43
  176. data/vendor/libgit2/src/offmap.h +24 -102
  177. data/vendor/libgit2/src/oid.c +1 -6
  178. data/vendor/libgit2/src/oidmap.c +57 -39
  179. data/vendor/libgit2/src/oidmap.h +19 -99
  180. data/vendor/libgit2/src/pack-objects.c +32 -25
  181. data/vendor/libgit2/src/pack-objects.h +1 -1
  182. data/vendor/libgit2/src/pack.c +47 -45
  183. data/vendor/libgit2/src/pack.h +14 -12
  184. data/vendor/libgit2/src/parse.c +0 -10
  185. data/vendor/libgit2/src/parse.h +3 -3
  186. data/vendor/libgit2/src/patch.c +1 -1
  187. data/vendor/libgit2/src/patch_generate.c +2 -2
  188. data/vendor/libgit2/src/patch_parse.c +31 -124
  189. data/vendor/libgit2/src/path.c +6 -43
  190. data/vendor/libgit2/src/path.h +0 -2
  191. data/vendor/libgit2/src/pathspec.c +13 -13
  192. data/vendor/libgit2/src/pool.c +22 -26
  193. data/vendor/libgit2/src/pool.h +7 -7
  194. data/vendor/libgit2/src/posix.c +7 -7
  195. data/vendor/libgit2/src/posix.h +1 -12
  196. data/vendor/libgit2/src/proxy.c +2 -7
  197. data/vendor/libgit2/src/push.c +5 -10
  198. data/vendor/libgit2/src/reader.c +2 -2
  199. data/vendor/libgit2/src/rebase.c +7 -66
  200. data/vendor/libgit2/src/refdb.c +0 -12
  201. data/vendor/libgit2/src/refdb_fs.c +165 -214
  202. data/vendor/libgit2/src/reflog.c +13 -11
  203. data/vendor/libgit2/src/refs.c +18 -24
  204. data/vendor/libgit2/src/refspec.c +16 -9
  205. data/vendor/libgit2/src/remote.c +52 -50
  206. data/vendor/libgit2/src/remote.h +2 -2
  207. data/vendor/libgit2/src/repository.c +100 -115
  208. data/vendor/libgit2/src/repository.h +40 -49
  209. data/vendor/libgit2/src/revert.c +3 -8
  210. data/vendor/libgit2/src/revparse.c +19 -18
  211. data/vendor/libgit2/src/revwalk.c +30 -63
  212. data/vendor/libgit2/src/revwalk.h +0 -20
  213. data/vendor/libgit2/src/settings.c +0 -5
  214. data/vendor/libgit2/src/sortedcache.c +26 -12
  215. data/vendor/libgit2/src/sortedcache.h +1 -1
  216. data/vendor/libgit2/src/stash.c +65 -45
  217. data/vendor/libgit2/src/status.c +9 -15
  218. data/vendor/libgit2/src/{allocators/stdalloc.c → stdalloc.c} +4 -3
  219. data/vendor/libgit2/src/{allocators/stdalloc.h → stdalloc.h} +4 -4
  220. data/vendor/libgit2/src/streams/openssl.c +0 -20
  221. data/vendor/libgit2/src/streams/socket.c +2 -2
  222. data/vendor/libgit2/src/strmap.c +84 -37
  223. data/vendor/libgit2/src/strmap.h +33 -105
  224. data/vendor/libgit2/src/submodule.c +70 -102
  225. data/vendor/libgit2/src/submodule.h +1 -1
  226. data/vendor/libgit2/src/sysdir.c +1 -11
  227. data/vendor/libgit2/src/tag.c +2 -10
  228. data/vendor/libgit2/src/trace.c +1 -1
  229. data/vendor/libgit2/src/trace.h +2 -2
  230. data/vendor/libgit2/src/trailer.c +32 -46
  231. data/vendor/libgit2/src/transaction.c +9 -10
  232. data/vendor/libgit2/src/transports/auth.c +9 -10
  233. data/vendor/libgit2/src/transports/auth.h +4 -11
  234. data/vendor/libgit2/src/transports/auth_negotiate.c +9 -23
  235. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  236. data/vendor/libgit2/src/transports/cred.c +6 -6
  237. data/vendor/libgit2/src/{allocators/win32_crtdbg.h → transports/cred.h} +4 -5
  238. data/vendor/libgit2/src/transports/git.c +16 -11
  239. data/vendor/libgit2/src/transports/http.c +276 -419
  240. data/vendor/libgit2/src/transports/http.h +1 -1
  241. data/vendor/libgit2/src/transports/local.c +9 -9
  242. data/vendor/libgit2/src/transports/smart.c +17 -17
  243. data/vendor/libgit2/src/transports/smart.h +2 -2
  244. data/vendor/libgit2/src/transports/smart_protocol.c +60 -36
  245. data/vendor/libgit2/src/transports/ssh.c +36 -46
  246. data/vendor/libgit2/src/transports/winhttp.c +207 -231
  247. data/vendor/libgit2/src/tree-cache.c +7 -14
  248. data/vendor/libgit2/src/tree.c +24 -10
  249. data/vendor/libgit2/src/unix/map.c +1 -1
  250. data/vendor/libgit2/src/unix/posix.h +11 -1
  251. data/vendor/libgit2/src/userdiff.h +1 -3
  252. data/vendor/libgit2/src/util.c +53 -51
  253. data/vendor/libgit2/src/util.h +21 -16
  254. data/vendor/libgit2/src/win32/map.c +5 -3
  255. data/vendor/libgit2/src/win32/path_w32.c +2 -12
  256. data/vendor/libgit2/src/win32/path_w32.h +29 -0
  257. data/vendor/libgit2/src/win32/posix.h +4 -1
  258. data/vendor/libgit2/src/win32/posix_w32.c +5 -40
  259. data/vendor/libgit2/src/win32/precompiled.h +2 -0
  260. data/vendor/libgit2/src/win32/thread.c +10 -5
  261. data/vendor/libgit2/src/win32/w32_buffer.c +3 -7
  262. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +93 -0
  263. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +2 -0
  264. data/vendor/libgit2/src/win32/w32_stack.c +9 -4
  265. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  266. data/vendor/libgit2/src/win32/w32_util.c +0 -31
  267. data/vendor/libgit2/src/win32/w32_util.h +32 -6
  268. data/vendor/libgit2/src/worktree.c +22 -36
  269. data/vendor/libgit2/src/xdiff/xdiffi.c +1 -1
  270. data/vendor/libgit2/src/xdiff/xmerge.c +0 -12
  271. data/vendor/libgit2/src/xdiff/xpatience.c +0 -3
  272. metadata +34 -98
  273. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +0 -28
  274. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +0 -38
  275. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +0 -37
  276. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +0 -110
  277. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +0 -53
  278. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +0 -124
  279. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +0 -66
  280. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +0 -21
  281. data/vendor/libgit2/deps/ntlmclient/compat.h +0 -33
  282. data/vendor/libgit2/deps/ntlmclient/crypt.h +0 -64
  283. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +0 -120
  284. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +0 -18
  285. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -145
  286. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +0 -18
  287. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +0 -130
  288. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +0 -21
  289. data/vendor/libgit2/deps/ntlmclient/ntlm.c +0 -1420
  290. data/vendor/libgit2/deps/ntlmclient/ntlm.h +0 -174
  291. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +0 -320
  292. data/vendor/libgit2/deps/ntlmclient/unicode.h +0 -36
  293. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +0 -445
  294. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +0 -201
  295. data/vendor/libgit2/deps/ntlmclient/utf8.h +0 -1257
  296. data/vendor/libgit2/deps/ntlmclient/util.c +0 -21
  297. data/vendor/libgit2/deps/ntlmclient/util.h +0 -14
  298. data/vendor/libgit2/deps/pcre/CMakeLists.txt +0 -140
  299. data/vendor/libgit2/deps/pcre/COPYING +0 -5
  300. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +0 -22
  301. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +0 -17
  302. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +0 -58
  303. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +0 -29
  304. data/vendor/libgit2/deps/pcre/config.h.in +0 -57
  305. data/vendor/libgit2/deps/pcre/pcre.h +0 -641
  306. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +0 -319
  307. data/vendor/libgit2/deps/pcre/pcre_chartables.c +0 -198
  308. data/vendor/libgit2/deps/pcre/pcre_compile.c +0 -9800
  309. data/vendor/libgit2/deps/pcre/pcre_config.c +0 -190
  310. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +0 -3676
  311. data/vendor/libgit2/deps/pcre/pcre_exec.c +0 -7173
  312. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +0 -245
  313. data/vendor/libgit2/deps/pcre/pcre_get.c +0 -669
  314. data/vendor/libgit2/deps/pcre/pcre_globals.c +0 -86
  315. data/vendor/libgit2/deps/pcre/pcre_internal.h +0 -2787
  316. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +0 -11913
  317. data/vendor/libgit2/deps/pcre/pcre_maketables.c +0 -156
  318. data/vendor/libgit2/deps/pcre/pcre_newline.c +0 -210
  319. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +0 -94
  320. data/vendor/libgit2/deps/pcre/pcre_printint.c +0 -834
  321. data/vendor/libgit2/deps/pcre/pcre_refcount.c +0 -92
  322. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +0 -211
  323. data/vendor/libgit2/deps/pcre/pcre_study.c +0 -1686
  324. data/vendor/libgit2/deps/pcre/pcre_tables.c +0 -727
  325. data/vendor/libgit2/deps/pcre/pcre_ucd.c +0 -3644
  326. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +0 -301
  327. data/vendor/libgit2/deps/pcre/pcre_version.c +0 -98
  328. data/vendor/libgit2/deps/pcre/pcre_xclass.c +0 -268
  329. data/vendor/libgit2/deps/pcre/pcreposix.c +0 -421
  330. data/vendor/libgit2/deps/pcre/pcreposix.h +0 -117
  331. data/vendor/libgit2/deps/pcre/ucp.h +0 -224
  332. data/vendor/libgit2/include/git2/cert.h +0 -135
  333. data/vendor/libgit2/include/git2/cred.h +0 -308
  334. data/vendor/libgit2/include/git2/sys/cred.h +0 -90
  335. data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
  336. data/vendor/libgit2/src/config_snapshot.c +0 -206
  337. data/vendor/libgit2/src/errors.h +0 -81
  338. data/vendor/libgit2/src/hash/sha1.h +0 -38
  339. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +0 -19
  340. data/vendor/libgit2/src/hash/sha1/common_crypto.h +0 -19
  341. data/vendor/libgit2/src/hash/sha1/openssl.h +0 -19
  342. data/vendor/libgit2/src/net.c +0 -184
  343. data/vendor/libgit2/src/net.h +0 -36
  344. data/vendor/libgit2/src/regexp.c +0 -221
  345. data/vendor/libgit2/src/regexp.h +0 -97
  346. data/vendor/libgit2/src/transports/auth_ntlm.c +0 -223
  347. data/vendor/libgit2/src/transports/auth_ntlm.h +0 -35
  348. data/vendor/libgit2/src/wildmatch.c +0 -320
  349. data/vendor/libgit2/src/wildmatch.h +0 -23
  350. data/vendor/libgit2/src/win32/w32_common.h +0 -39
@@ -88,10 +88,11 @@ static void *stdalloc__reallocarray(void *ptr, size_t nelem, size_t elsize, cons
88
88
  {
89
89
  size_t newsize;
90
90
 
91
- if (GIT_MULTIPLY_SIZET_OVERFLOW(&newsize, nelem, elsize))
92
- return NULL;
91
+ GIT_UNUSED(file);
92
+ GIT_UNUSED(line);
93
93
 
94
- return stdalloc__realloc(ptr, newsize, file, line);
94
+ return GIT_MULTIPLY_SIZET_OVERFLOW(&newsize, nelem, elsize) ?
95
+ NULL : realloc(ptr, newsize);
95
96
  }
96
97
 
97
98
  static void *stdalloc__mallocarray(size_t nelem, size_t elsize, const char *file, int line)
@@ -5,13 +5,13 @@
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
7
 
8
- #ifndef INCLUDE_allocators_stdalloc_h__
9
- #define INCLUDE_allocators_stdalloc_h__
10
-
11
- #include "common.h"
8
+ #ifndef INCLUDE_stdalloc_h__
9
+ #define INCLUDE_stdalloc_h__
12
10
 
13
11
  #include "alloc.h"
14
12
 
13
+ #include "common.h"
14
+
15
15
  int git_stdalloc_init_allocator(git_allocator *allocator);
16
16
 
17
17
  #endif
@@ -30,10 +30,6 @@
30
30
  #include <openssl/x509v3.h>
31
31
  #include <openssl/bio.h>
32
32
 
33
- #ifdef VALGRIND
34
- # include <valgrind/memcheck.h>
35
- #endif
36
-
37
33
  SSL_CTX *git__ssl_ctx;
38
34
 
39
35
  #define GIT_SSL_DEFAULT_CIPHERS "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA256:DHE-DSS-AES128-SHA:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA"
@@ -315,10 +311,6 @@ static int bio_write(BIO *b, const char *buf, int len)
315
311
  {
316
312
  git_stream *io = (git_stream *) BIO_get_data(b);
317
313
 
318
- #ifdef VALGRIND
319
- VALGRIND_MAKE_MEM_DEFINED(buf, len);
320
- #endif
321
-
322
314
  return (int) git_stream_write(io, buf, len, 0);
323
315
  }
324
316
 
@@ -595,10 +587,6 @@ static int openssl_connect(git_stream *stream)
595
587
  BIO_set_data(bio, st->io);
596
588
  SSL_set_bio(st->ssl, bio, bio);
597
589
 
598
- #ifdef VALGRIND
599
- VALGRIND_MAKE_MEM_DEFINED(st->ssl, sizeof(SSL));
600
- #endif
601
-
602
590
  /* specify the host in case SNI is needed */
603
591
  #ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
604
592
  SSL_set_tlsext_host_name(st->ssl, st->host);
@@ -609,10 +597,6 @@ static int openssl_connect(git_stream *stream)
609
597
 
610
598
  st->connected = true;
611
599
 
612
- #ifdef VALGRIND
613
- VALGRIND_MAKE_MEM_DEFINED(st->ssl, sizeof(SSL));
614
- #endif
615
-
616
600
  return verify_server_cert(st->ssl, st->host);
617
601
  }
618
602
 
@@ -679,10 +663,6 @@ static ssize_t openssl_read(git_stream *stream, void *data, size_t len)
679
663
  if ((ret = SSL_read(st->ssl, data, len)) <= 0)
680
664
  return ssl_set_error(st->ssl, ret);
681
665
 
682
- #ifdef VALGRIND
683
- VALGRIND_MAKE_MEM_DEFINED(data, ret);
684
- #endif
685
-
686
666
  return ret;
687
667
  }
688
668
 
@@ -138,7 +138,7 @@ static ssize_t socket_write(git_stream *stream, const char *data, size_t len, in
138
138
  errno = 0;
139
139
 
140
140
  if ((written = p_send(st->s, data, len, flags)) < 0) {
141
- net_set_error("error sending data");
141
+ net_set_error("Error sending data");
142
142
  return -1;
143
143
  }
144
144
 
@@ -151,7 +151,7 @@ static ssize_t socket_read(git_stream *stream, void *data, size_t len)
151
151
  git_socket_stream *st = (git_socket_stream *) stream;
152
152
 
153
153
  if ((ret = p_recv(st->s, data, len, 0)) < 0)
154
- net_set_error("error receiving socket data");
154
+ net_set_error("Error receiving socket data");
155
155
 
156
156
  return ret;
157
157
  }
@@ -18,10 +18,12 @@ __KHASH_TYPE(str, const char *, void *)
18
18
 
19
19
  __KHASH_IMPL(str, static kh_inline, const char *, void *, 1, kh_str_hash_func, kh_str_hash_equal)
20
20
 
21
- int git_strmap_new(git_strmap **out)
21
+ int git_strmap_alloc(git_strmap **map)
22
22
  {
23
- *out = kh_init(str);
24
- GIT_ERROR_CHECK_ALLOC(*out);
23
+ if ((*map = kh_init(str)) == NULL) {
24
+ git_error_set_oom();
25
+ return -1;
26
+ }
25
27
 
26
28
  return 0;
27
29
  }
@@ -36,65 +38,110 @@ void git_strmap_clear(git_strmap *map)
36
38
  kh_clear(str, map);
37
39
  }
38
40
 
39
- size_t git_strmap_size(git_strmap *map)
41
+ size_t git_strmap_num_entries(git_strmap *map)
40
42
  {
41
43
  return kh_size(map);
42
44
  }
43
45
 
44
- void *git_strmap_get(git_strmap *map, const char *key)
46
+ size_t git_strmap_lookup_index(git_strmap *map, const char *key)
45
47
  {
46
- size_t idx = kh_get(str, map, key);
47
- if (idx == kh_end(map) || !kh_exist(map, idx))
48
- return NULL;
49
- return kh_val(map, idx);
48
+ return kh_get(str, map, key);
50
49
  }
51
50
 
52
- int git_strmap_set(git_strmap *map, const char *key, void *value)
51
+ int git_strmap_valid_index(git_strmap *map, size_t idx)
53
52
  {
54
- size_t idx;
55
- int rval;
53
+ return idx != kh_end(map);
54
+ }
56
55
 
57
- idx = kh_put(str, map, key, &rval);
58
- if (rval < 0)
59
- return -1;
56
+ int git_strmap_exists(git_strmap *map, const char *key)
57
+ {
58
+ return kh_get(str, map, key) != kh_end(map);
59
+ }
60
+
61
+ int git_strmap_has_data(git_strmap *map, size_t idx)
62
+ {
63
+ return kh_exist(map, idx);
64
+ }
60
65
 
61
- if (rval == 0)
62
- kh_key(map, idx) = key;
66
+ const char *git_strmap_key(git_strmap *map, size_t idx)
67
+ {
68
+ return kh_key(map, idx);
69
+ }
63
70
 
64
- kh_val(map, idx) = value;
71
+ void git_strmap_set_key_at(git_strmap *map, size_t idx, char *key)
72
+ {
73
+ kh_val(map, idx) = key;
74
+ }
65
75
 
66
- return 0;
76
+ void *git_strmap_value_at(git_strmap *map, size_t idx)
77
+ {
78
+ return kh_val(map, idx);
79
+ }
80
+
81
+ void git_strmap_set_value_at(git_strmap *map, size_t idx, void *value)
82
+ {
83
+ kh_val(map, idx) = value;
67
84
  }
68
85
 
69
- int git_strmap_delete(git_strmap *map, const char *key)
86
+ void git_strmap_delete_at(git_strmap *map, size_t idx)
70
87
  {
71
- khiter_t idx = kh_get(str, map, key);
72
- if (idx == kh_end(map))
73
- return GIT_ENOTFOUND;
74
88
  kh_del(str, map, idx);
89
+ }
90
+
91
+ int git_strmap_put(git_strmap *map, const char *key, int *err)
92
+ {
93
+ return kh_put(str, map, key, err);
94
+ }
95
+
96
+ void git_strmap_insert(git_strmap *map, const char *key, void *value, int *rval)
97
+ {
98
+ khiter_t idx = kh_put(str, map, key, rval);
99
+
100
+ if ((*rval) >= 0) {
101
+ if ((*rval) == 0)
102
+ kh_key(map, idx) = key;
103
+ kh_val(map, idx) = value;
104
+ }
105
+ }
106
+
107
+ void git_strmap_delete(git_strmap *map, const char *key)
108
+ {
109
+ khiter_t idx = git_strmap_lookup_index(map, key);
110
+ if (git_strmap_valid_index(map, idx))
111
+ git_strmap_delete_at(map, idx);
112
+ }
113
+
114
+ size_t git_strmap_begin(git_strmap *map)
115
+ {
116
+ GIT_UNUSED(map);
75
117
  return 0;
76
118
  }
77
119
 
78
- int git_strmap_exists(git_strmap *map, const char *key)
120
+ size_t git_strmap_end(git_strmap *map)
79
121
  {
80
- return kh_get(str, map, key) != kh_end(map);
122
+ return map->n_buckets;
81
123
  }
82
124
 
83
- int git_strmap_iterate(void **value, git_strmap *map, size_t *iter, const char **key)
125
+ int git_strmap_next(
126
+ void **data,
127
+ size_t* iter,
128
+ git_strmap *map)
84
129
  {
85
- size_t i = *iter;
130
+ if (!map)
131
+ return GIT_ERROR;
86
132
 
87
- while (i < map->n_buckets && !kh_exist(map, i))
88
- i++;
133
+ while (*iter != git_strmap_end(map)) {
134
+ if (!(git_strmap_has_data(map, *iter))) {
135
+ ++(*iter);
136
+ continue;
137
+ }
89
138
 
90
- if (i >= map->n_buckets)
91
- return GIT_ITEROVER;
139
+ *data = git_strmap_value_at(map, *iter);
92
140
 
93
- if (key)
94
- *key = kh_key(map, i);
95
- if (value)
96
- *value = kh_val(map, i);
97
- *iter = ++i;
141
+ ++(*iter);
98
142
 
99
- return 0;
143
+ return GIT_OK;
144
+ }
145
+
146
+ return GIT_ITEROVER;
100
147
  }
@@ -9,123 +9,51 @@
9
9
 
10
10
  #include "common.h"
11
11
 
12
- /** A map with C strings as key. */
13
12
  typedef struct kh_str_s git_strmap;
14
13
 
15
- /**
16
- * Allocate a new string map.
17
- *
18
- * @param out Pointer to the map that shall be allocated.
19
- * @return 0 on success, an error code if allocation has failed.
20
- */
21
- int git_strmap_new(git_strmap **out);
22
-
23
- /**
24
- * Free memory associated with the map.
25
- *
26
- * Note that this function will _not_ free keys or values added
27
- * to this map.
28
- *
29
- * @param map Pointer to the map that is to be free'd. May be
30
- * `NULL`.
31
- */
14
+ int git_strmap_alloc(git_strmap **map);
32
15
  void git_strmap_free(git_strmap *map);
33
-
34
- /**
35
- * Clear all entries from the map.
36
- *
37
- * This function will remove all entries from the associated map.
38
- * Memory associated with it will not be released, though.
39
- *
40
- * @param map Pointer to the map that shall be cleared. May be
41
- * `NULL`.
42
- */
43
16
  void git_strmap_clear(git_strmap *map);
44
17
 
45
- /**
46
- * Return the number of elements in the map.
47
- *
48
- * @parameter map map containing the elements
49
- * @return number of elements in the map
50
- */
51
- size_t git_strmap_size(git_strmap *map);
18
+ size_t git_strmap_num_entries(git_strmap *map);
52
19
 
53
- /**
54
- * Return value associated with the given key.
55
- *
56
- * @param map map to search key in
57
- * @param key key to search for
58
- * @return value associated with the given key or NULL if the key was not found
59
- */
60
- void *git_strmap_get(git_strmap *map, const char *key);
20
+ size_t git_strmap_lookup_index(git_strmap *map, const char *key);
21
+ int git_strmap_valid_index(git_strmap *map, size_t idx);
61
22
 
62
- /**
63
- * Set the entry for key to value.
64
- *
65
- * If the map has no corresponding entry for the given key, a new
66
- * entry will be created with the given value. If an entry exists
67
- * already, its value will be updated to match the given value.
68
- *
69
- * @param map map to create new entry in
70
- * @param key key to set
71
- * @param value value to associate the key with; may be NULL
72
- * @return zero if the key was successfully set, a negative error
73
- * code otherwise
74
- */
75
- int git_strmap_set(git_strmap *map, const char *key, void *value);
76
-
77
- /**
78
- * Delete an entry from the map.
79
- *
80
- * Delete the given key and its value from the map. If no such
81
- * key exists, this will do nothing.
82
- *
83
- * @param map map to delete key in
84
- * @param key key to delete
85
- * @return `0` if the key has been deleted, GIT_ENOTFOUND if no
86
- * such key was found, a negative code in case of an
87
- * error
88
- */
89
- int git_strmap_delete(git_strmap *map, const char *key);
90
-
91
- /**
92
- * Check whether a key exists in the given map.
93
- *
94
- * @param map map to query for the key
95
- * @param key key to search for
96
- * @return 0 if the key has not been found, 1 otherwise
97
- */
98
23
  int git_strmap_exists(git_strmap *map, const char *key);
99
-
100
- /**
101
- * Iterate over entries of the map.
102
- *
103
- * This functions allows to iterate over all key-value entries of
104
- * the map. The current position is stored in the `iter` variable
105
- * and should be initialized to `0` before the first call to this
106
- * function.
107
- *
108
- * @param map map to iterate over
109
- * @param value pointer to the variable where to store the current
110
- * value. May be NULL.
111
- * @param iter iterator storing the current position. Initialize
112
- * with zero previous to the first call.
113
- * @param key pointer to the variable where to store the current
114
- * key. May be NULL.
115
- * @return `0` if the next entry was correctly retrieved.
116
- * GIT_ITEROVER if no entries are left. A negative error
117
- * code otherwise.
118
- */
119
- int git_strmap_iterate(void **value, git_strmap *map, size_t *iter, const char **key);
120
-
121
- #define git_strmap_foreach(h, kvar, vvar, code) { size_t __i = 0; \
122
- while (git_strmap_iterate((void **) &(vvar), h, &__i, &(kvar)) == 0) { \
24
+ int git_strmap_has_data(git_strmap *map, size_t idx);
25
+
26
+ const char *git_strmap_key(git_strmap *map, size_t idx);
27
+ void git_strmap_set_key_at(git_strmap *map, size_t idx, char *key);
28
+ void *git_strmap_value_at(git_strmap *map, size_t idx);
29
+ void git_strmap_set_value_at(git_strmap *map, size_t idx, void *value);
30
+ void git_strmap_delete_at(git_strmap *map, size_t idx);
31
+
32
+ int git_strmap_put(git_strmap *map, const char *key, int *err);
33
+ void git_strmap_insert(git_strmap *map, const char *key, void *value, int *rval);
34
+ void git_strmap_delete(git_strmap *map, const char *key);
35
+
36
+ #define git_strmap_foreach(h, kvar, vvar, code) { size_t __i; \
37
+ for (__i = git_strmap_begin(h); __i != git_strmap_end(h); ++__i) { \
38
+ if (!git_strmap_has_data(h,__i)) continue; \
39
+ (kvar) = git_strmap_key(h,__i); \
40
+ (vvar) = git_strmap_value_at(h,__i); \
123
41
  code; \
124
42
  } }
125
43
 
126
- #define git_strmap_foreach_value(h, vvar, code) { size_t __i = 0; \
127
- while (git_strmap_iterate((void **) &(vvar), h, &__i, NULL) == 0) { \
44
+ #define git_strmap_foreach_value(h, vvar, code) { size_t __i; \
45
+ for (__i = git_strmap_begin(h); __i != git_strmap_end(h); ++__i) { \
46
+ if (!git_strmap_has_data(h,__i)) continue; \
47
+ (vvar) = git_strmap_value_at(h,__i); \
128
48
  code; \
129
49
  } }
130
50
 
51
+ size_t git_strmap_begin(git_strmap *map);
52
+ size_t git_strmap_end(git_strmap *map);
53
+
54
+ int git_strmap_next(
55
+ void **data,
56
+ size_t *iter,
57
+ git_strmap *map);
58
+
131
59
  #endif
@@ -23,32 +23,31 @@
23
23
  #include "path.h"
24
24
  #include "index.h"
25
25
  #include "worktree.h"
26
- #include "clone.h"
27
26
 
28
27
  #define GIT_MODULES_FILE ".gitmodules"
29
28
 
30
- static git_configmap _sm_update_map[] = {
31
- {GIT_CONFIGMAP_STRING, "checkout", GIT_SUBMODULE_UPDATE_CHECKOUT},
32
- {GIT_CONFIGMAP_STRING, "rebase", GIT_SUBMODULE_UPDATE_REBASE},
33
- {GIT_CONFIGMAP_STRING, "merge", GIT_SUBMODULE_UPDATE_MERGE},
34
- {GIT_CONFIGMAP_STRING, "none", GIT_SUBMODULE_UPDATE_NONE},
35
- {GIT_CONFIGMAP_FALSE, NULL, GIT_SUBMODULE_UPDATE_NONE},
36
- {GIT_CONFIGMAP_TRUE, NULL, GIT_SUBMODULE_UPDATE_CHECKOUT},
29
+ static git_cvar_map _sm_update_map[] = {
30
+ {GIT_CVAR_STRING, "checkout", GIT_SUBMODULE_UPDATE_CHECKOUT},
31
+ {GIT_CVAR_STRING, "rebase", GIT_SUBMODULE_UPDATE_REBASE},
32
+ {GIT_CVAR_STRING, "merge", GIT_SUBMODULE_UPDATE_MERGE},
33
+ {GIT_CVAR_STRING, "none", GIT_SUBMODULE_UPDATE_NONE},
34
+ {GIT_CVAR_FALSE, NULL, GIT_SUBMODULE_UPDATE_NONE},
35
+ {GIT_CVAR_TRUE, NULL, GIT_SUBMODULE_UPDATE_CHECKOUT},
37
36
  };
38
37
 
39
- static git_configmap _sm_ignore_map[] = {
40
- {GIT_CONFIGMAP_STRING, "none", GIT_SUBMODULE_IGNORE_NONE},
41
- {GIT_CONFIGMAP_STRING, "untracked", GIT_SUBMODULE_IGNORE_UNTRACKED},
42
- {GIT_CONFIGMAP_STRING, "dirty", GIT_SUBMODULE_IGNORE_DIRTY},
43
- {GIT_CONFIGMAP_STRING, "all", GIT_SUBMODULE_IGNORE_ALL},
44
- {GIT_CONFIGMAP_FALSE, NULL, GIT_SUBMODULE_IGNORE_NONE},
45
- {GIT_CONFIGMAP_TRUE, NULL, GIT_SUBMODULE_IGNORE_ALL},
38
+ static git_cvar_map _sm_ignore_map[] = {
39
+ {GIT_CVAR_STRING, "none", GIT_SUBMODULE_IGNORE_NONE},
40
+ {GIT_CVAR_STRING, "untracked", GIT_SUBMODULE_IGNORE_UNTRACKED},
41
+ {GIT_CVAR_STRING, "dirty", GIT_SUBMODULE_IGNORE_DIRTY},
42
+ {GIT_CVAR_STRING, "all", GIT_SUBMODULE_IGNORE_ALL},
43
+ {GIT_CVAR_FALSE, NULL, GIT_SUBMODULE_IGNORE_NONE},
44
+ {GIT_CVAR_TRUE, NULL, GIT_SUBMODULE_IGNORE_ALL},
46
45
  };
47
46
 
48
- static git_configmap _sm_recurse_map[] = {
49
- {GIT_CONFIGMAP_STRING, "on-demand", GIT_SUBMODULE_RECURSE_ONDEMAND},
50
- {GIT_CONFIGMAP_FALSE, NULL, GIT_SUBMODULE_RECURSE_NO},
51
- {GIT_CONFIGMAP_TRUE, NULL, GIT_SUBMODULE_RECURSE_YES},
47
+ static git_cvar_map _sm_recurse_map[] = {
48
+ {GIT_CVAR_STRING, "on-demand", GIT_SUBMODULE_RECURSE_ONDEMAND},
49
+ {GIT_CVAR_FALSE, NULL, GIT_SUBMODULE_RECURSE_NO},
50
+ {GIT_CVAR_TRUE, NULL, GIT_SUBMODULE_RECURSE_YES},
52
51
  };
53
52
 
54
53
  enum {
@@ -198,11 +197,12 @@ static int load_submodule_names(git_strmap **out, git_repository *repo, git_conf
198
197
  git_config_entry *entry;
199
198
  git_buf buf = GIT_BUF_INIT;
200
199
  git_strmap *names;
201
- int isvalid, error;
200
+ int rval, isvalid;
201
+ int error = 0;
202
202
 
203
203
  *out = NULL;
204
204
 
205
- if ((error = git_strmap_new(&names)) < 0)
205
+ if ((error = git_strmap_alloc(&names)) < 0)
206
206
  goto out;
207
207
 
208
208
  if ((error = git_config_iterator_glob_new(&iter, cfg, key)) < 0)
@@ -230,7 +230,8 @@ static int load_submodule_names(git_strmap **out, git_repository *repo, git_conf
230
230
  if (!isvalid)
231
231
  continue;
232
232
 
233
- if ((error = git_strmap_set(names, git__strdup(entry->value), git_buf_detach(&buf))) < 0) {
233
+ git_strmap_insert(names, git__strdup(entry->value), git_buf_detach(&buf), &rval);
234
+ if (rval < 0) {
234
235
  git_error_set(GIT_ERROR_NOMEMORY, "error inserting submodule into hash table");
235
236
  error = -1;
236
237
  goto out;
@@ -266,9 +267,10 @@ int git_submodule_lookup(
266
267
  }
267
268
 
268
269
  if (repo->submodule_cache != NULL) {
269
- if ((sm = git_strmap_get(repo->submodule_cache, name)) != NULL) {
270
+ size_t pos = git_strmap_lookup_index(repo->submodule_cache, name);
271
+ if (git_strmap_valid_index(repo->submodule_cache, pos)) {
270
272
  if (out) {
271
- *out = sm;
273
+ *out = git_strmap_value_at(repo->submodule_cache, pos);
272
274
  GIT_REFCOUNT_INC(*out);
273
275
  }
274
276
  return 0;
@@ -393,21 +395,30 @@ static void submodule_free_dup(void *sm)
393
395
 
394
396
  static int submodule_get_or_create(git_submodule **out, git_repository *repo, git_strmap *map, const char *name)
395
397
  {
398
+ int error = 0;
399
+ size_t pos;
396
400
  git_submodule *sm = NULL;
397
- int error;
398
401
 
399
- if ((sm = git_strmap_get(map, name)) != NULL)
402
+ pos = git_strmap_lookup_index(map, name);
403
+ if (git_strmap_valid_index(map, pos)) {
404
+ sm = git_strmap_value_at(map, pos);
400
405
  goto done;
406
+ }
401
407
 
402
408
  /* if the submodule doesn't exist yet in the map, create it */
403
409
  if ((error = submodule_alloc(&sm, repo, name)) < 0)
404
410
  return error;
405
411
 
406
- if ((error = git_strmap_set(map, sm->name, sm)) < 0) {
412
+ pos = git_strmap_put(map, sm->name, &error);
413
+ /* nobody can beat us to adding it */
414
+ assert(error != 0);
415
+ if (error < 0) {
407
416
  git_submodule_free(sm);
408
417
  return error;
409
418
  }
410
419
 
420
+ git_strmap_set_value_at(map, pos, sm);
421
+
411
422
  done:
412
423
  GIT_REFCOUNT_INC(sm);
413
424
  *out = sm;
@@ -428,18 +439,26 @@ static int submodules_from_index(git_strmap *map, git_index *idx, git_config *cf
428
439
  goto done;
429
440
 
430
441
  while (!(error = git_iterator_advance(&entry, i))) {
442
+ size_t pos = git_strmap_lookup_index(map, entry->path);
431
443
  git_submodule *sm;
432
444
 
433
- if ((sm = git_strmap_get(map, entry->path)) != NULL) {
445
+ if (git_strmap_valid_index(map, pos)) {
446
+ sm = git_strmap_value_at(map, pos);
447
+
434
448
  if (S_ISGITLINK(entry->mode))
435
449
  submodule_update_from_index_entry(sm, entry);
436
450
  else
437
451
  sm->flags |= GIT_SUBMODULE_STATUS__INDEX_NOT_SUBMODULE;
438
452
  } else if (S_ISGITLINK(entry->mode)) {
453
+ size_t name_pos;
439
454
  const char *name;
440
455
 
441
- if ((name = git_strmap_get(names, entry->path)) == NULL)
456
+ name_pos = git_strmap_lookup_index(names, entry->path);
457
+ if (git_strmap_valid_index(names, name_pos)) {
458
+ name = git_strmap_value_at(names, name_pos);
459
+ } else {
442
460
  name = entry->path;
461
+ }
443
462
 
444
463
  if (!submodule_get_or_create(&sm, git_index_owner(idx), map, name)) {
445
464
  submodule_update_from_index_entry(sm, entry);
@@ -472,18 +491,26 @@ static int submodules_from_head(git_strmap *map, git_tree *head, git_config *cfg
472
491
  goto done;
473
492
 
474
493
  while (!(error = git_iterator_advance(&entry, i))) {
494
+ size_t pos = git_strmap_lookup_index(map, entry->path);
475
495
  git_submodule *sm;
476
496
 
477
- if ((sm = git_strmap_get(map, entry->path)) != NULL) {
497
+ if (git_strmap_valid_index(map, pos)) {
498
+ sm = git_strmap_value_at(map, pos);
499
+
478
500
  if (S_ISGITLINK(entry->mode))
479
501
  submodule_update_from_head_data(sm, entry->mode, &entry->id);
480
502
  else
481
503
  sm->flags |= GIT_SUBMODULE_STATUS__HEAD_NOT_SUBMODULE;
482
504
  } else if (S_ISGITLINK(entry->mode)) {
505
+ size_t name_pos;
483
506
  const char *name;
484
507
 
485
- if ((name = git_strmap_get(names, entry->path)) == NULL)
508
+ name_pos = git_strmap_lookup_index(names, entry->path);
509
+ if (git_strmap_valid_index(names, name_pos)) {
510
+ name = git_strmap_value_at(names, name_pos);
511
+ } else {
486
512
  name = entry->path;
513
+ }
487
514
 
488
515
  if (!submodule_get_or_create(&sm, git_tree_owner(head), map, name)) {
489
516
  submodule_update_from_head_data(
@@ -591,14 +618,14 @@ int git_submodule_foreach(
591
618
  return -1;
592
619
  }
593
620
 
594
- if ((error = git_strmap_new(&submodules)) < 0)
621
+ if ((error = git_strmap_alloc(&submodules)) < 0)
595
622
  return error;
596
623
 
597
624
  if ((error = git_submodule__map(repo, submodules)) < 0)
598
625
  goto done;
599
626
 
600
627
  if (!(error = git_vector_init(
601
- &snapshot, git_strmap_size(submodules), submodule_cmp))) {
628
+ &snapshot, git_strmap_num_entries(submodules), submodule_cmp))) {
602
629
 
603
630
  git_strmap_foreach_value(submodules, sm, {
604
631
  if ((error = git_vector_insert(&snapshot, sm)) < 0)
@@ -816,64 +843,6 @@ done:
816
843
  return error;
817
844
  }
818
845
 
819
- static int clone_return_origin(git_remote **out, git_repository *repo, const char *name, const char *url, void *payload)
820
- {
821
- GIT_UNUSED(url);
822
- GIT_UNUSED(payload);
823
- return git_remote_lookup(out, repo, name);
824
- }
825
-
826
- static int clone_return_repo(git_repository **out, const char *path, int bare, void *payload)
827
- {
828
- git_submodule *sm = payload;
829
-
830
- GIT_UNUSED(path);
831
- GIT_UNUSED(bare);
832
- return git_submodule_open(out, sm);
833
- }
834
-
835
- int git_submodule_clone(git_repository **out, git_submodule *submodule, const git_submodule_update_options *given_opts)
836
- {
837
- int error;
838
- git_repository *clone;
839
- git_buf rel_path = GIT_BUF_INIT;
840
- git_submodule_update_options sub_opts = GIT_SUBMODULE_UPDATE_OPTIONS_INIT;
841
- git_clone_options opts = GIT_CLONE_OPTIONS_INIT;
842
-
843
- assert(submodule);
844
-
845
- if (given_opts)
846
- memcpy(&sub_opts, given_opts, sizeof(sub_opts));
847
-
848
- GIT_ERROR_CHECK_VERSION(&sub_opts, GIT_SUBMODULE_UPDATE_OPTIONS_VERSION, "git_submodule_update_options");
849
-
850
- memcpy(&opts.checkout_opts, &sub_opts.checkout_opts, sizeof(sub_opts.checkout_opts));
851
- memcpy(&opts.fetch_opts, &sub_opts.fetch_opts, sizeof(sub_opts.fetch_opts));
852
- opts.repository_cb = clone_return_repo;
853
- opts.repository_cb_payload = submodule;
854
- opts.remote_cb = clone_return_origin;
855
- opts.remote_cb_payload = submodule;
856
-
857
- git_buf_puts(&rel_path, git_repository_workdir(git_submodule_owner(submodule)));
858
- git_buf_joinpath(&rel_path, git_buf_cstr(&rel_path), git_submodule_path(submodule));
859
-
860
- GIT_ERROR_CHECK_ALLOC_BUF(&rel_path);
861
-
862
- error = git_clone__submodule(&clone, git_submodule_url(submodule), git_buf_cstr(&rel_path), &opts);
863
- if (error < 0)
864
- goto cleanup;
865
-
866
- if (!out)
867
- git_repository_free(clone);
868
- else
869
- *out = clone;
870
-
871
- cleanup:
872
- git_buf_dispose(&rel_path);
873
-
874
- return error;
875
- }
876
-
877
846
  int git_submodule_add_finalize(git_submodule *sm)
878
847
  {
879
848
  int error;
@@ -1048,9 +1017,9 @@ cleanup:
1048
1017
  return error;
1049
1018
  }
1050
1019
 
1051
- static int write_mapped_var(git_repository *repo, const char *name, git_configmap *maps, size_t nmaps, const char *var, int ival)
1020
+ static int write_mapped_var(git_repository *repo, const char *name, git_cvar_map *maps, size_t nmaps, const char *var, int ival)
1052
1021
  {
1053
- git_configmap_t type;
1022
+ git_cvar_t type;
1054
1023
  const char *val;
1055
1024
 
1056
1025
  if (git_config_lookup_map_enum(&type, &val, maps, nmaps, ival) < 0) {
@@ -1058,7 +1027,7 @@ static int write_mapped_var(git_repository *repo, const char *name, git_configma
1058
1027
  return -1;
1059
1028
  }
1060
1029
 
1061
- if (type == GIT_CONFIGMAP_TRUE)
1030
+ if (type == GIT_CVAR_TRUE)
1062
1031
  val = "true";
1063
1032
 
1064
1033
  return write_var(repo, name, var, val);
@@ -1233,18 +1202,13 @@ static int git_submodule_update_repo_init_cb(
1233
1202
  return submodule_repo_create(out, sm->repo, path);
1234
1203
  }
1235
1204
 
1236
- int git_submodule_update_options_init(git_submodule_update_options *opts, unsigned int version)
1205
+ int git_submodule_update_init_options(git_submodule_update_options *opts, unsigned int version)
1237
1206
  {
1238
1207
  GIT_INIT_STRUCTURE_FROM_TEMPLATE(
1239
1208
  opts, version, git_submodule_update_options, GIT_SUBMODULE_UPDATE_OPTIONS_INIT);
1240
1209
  return 0;
1241
1210
  }
1242
1211
 
1243
- int git_submodule_update_init_options(git_submodule_update_options *opts, unsigned int version)
1244
- {
1245
- return git_submodule_update_options_init(opts, version);
1246
- }
1247
-
1248
1212
  int git_submodule_update(git_submodule *sm, int init, git_submodule_update_options *_update_options)
1249
1213
  {
1250
1214
  int error;
@@ -1971,6 +1935,7 @@ static int submodule_load_each(const git_config_entry *entry, void *payload)
1971
1935
  {
1972
1936
  lfc_data *data = payload;
1973
1937
  const char *namestart, *property;
1938
+ size_t pos;
1974
1939
  git_strmap *map = data->map;
1975
1940
  git_buf name = GIT_BUF_INIT;
1976
1941
  git_submodule *sm;
@@ -2002,7 +1967,8 @@ static int submodule_load_each(const git_config_entry *entry, void *payload)
2002
1967
  * a new submodule, load the config and insert it. If it's
2003
1968
  * already inserted, we've already loaded it, so we skip.
2004
1969
  */
2005
- if (git_strmap_exists(map, name.ptr)) {
1970
+ pos = git_strmap_lookup_index(map, name.ptr);
1971
+ if (git_strmap_valid_index(map, pos)) {
2006
1972
  error = 0;
2007
1973
  goto done;
2008
1974
  }
@@ -2015,7 +1981,9 @@ static int submodule_load_each(const git_config_entry *entry, void *payload)
2015
1981
  goto done;
2016
1982
  }
2017
1983
 
2018
- if ((error = git_strmap_set(map, sm->name, sm)) < 0)
1984
+ git_strmap_insert(map, sm->name, sm, &error);
1985
+ assert(error != 0);
1986
+ if (error < 0)
2019
1987
  goto done;
2020
1988
 
2021
1989
  error = 0;