rugged 0.27.10 → 0.27.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (420) 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 +54 -98
  5. data/vendor/libgit2/COPYING +0 -28
  6. data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +1 -15
  7. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +8 -9
  8. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  9. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  10. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  11. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +0 -6
  12. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -2
  13. data/vendor/libgit2/deps/http-parser/{COPYING → LICENSE-MIT} +0 -0
  14. data/vendor/libgit2/deps/http-parser/http_parser.c +6 -11
  15. data/vendor/libgit2/deps/regex/CMakeLists.txt +2 -0
  16. data/vendor/libgit2/deps/regex/config.h +7 -0
  17. data/vendor/libgit2/deps/regex/regcomp.c +3857 -0
  18. data/vendor/libgit2/deps/regex/regex.c +92 -0
  19. data/vendor/libgit2/deps/regex/regex.h +582 -0
  20. data/vendor/libgit2/deps/regex/regex_internal.c +1744 -0
  21. data/vendor/libgit2/deps/regex/regex_internal.h +819 -0
  22. data/vendor/libgit2/deps/regex/regexec.c +4369 -0
  23. data/vendor/libgit2/deps/zlib/CMakeLists.txt +0 -1
  24. data/vendor/libgit2/deps/zlib/adler32.c +7 -0
  25. data/vendor/libgit2/deps/zlib/crc32.c +7 -0
  26. data/vendor/libgit2/include/git2.h +0 -5
  27. data/vendor/libgit2/include/git2/annotated_commit.h +0 -9
  28. data/vendor/libgit2/include/git2/attr.h +20 -38
  29. data/vendor/libgit2/include/git2/blame.h +25 -42
  30. data/vendor/libgit2/include/git2/blob.h +13 -45
  31. data/vendor/libgit2/include/git2/branch.h +1 -1
  32. data/vendor/libgit2/include/git2/buffer.h +16 -22
  33. data/vendor/libgit2/include/git2/checkout.h +32 -65
  34. data/vendor/libgit2/include/git2/cherrypick.h +7 -9
  35. data/vendor/libgit2/include/git2/clone.h +10 -12
  36. data/vendor/libgit2/include/git2/commit.h +3 -53
  37. data/vendor/libgit2/include/git2/common.h +8 -60
  38. data/vendor/libgit2/include/git2/config.h +19 -30
  39. data/vendor/libgit2/include/git2/describe.h +9 -32
  40. data/vendor/libgit2/include/git2/diff.h +156 -208
  41. data/vendor/libgit2/include/git2/errors.h +46 -54
  42. data/vendor/libgit2/include/git2/filter.h +0 -8
  43. data/vendor/libgit2/include/git2/ignore.h +2 -2
  44. data/vendor/libgit2/include/git2/index.h +52 -74
  45. data/vendor/libgit2/include/git2/indexer.h +6 -76
  46. data/vendor/libgit2/include/git2/inttypes.h +309 -0
  47. data/vendor/libgit2/include/git2/merge.h +18 -35
  48. data/vendor/libgit2/include/git2/net.h +5 -0
  49. data/vendor/libgit2/include/git2/notes.h +1 -1
  50. data/vendor/libgit2/include/git2/object.h +29 -17
  51. data/vendor/libgit2/include/git2/odb.h +11 -12
  52. data/vendor/libgit2/include/git2/odb_backend.h +9 -10
  53. data/vendor/libgit2/include/git2/oid.h +2 -2
  54. data/vendor/libgit2/include/git2/pack.h +3 -14
  55. data/vendor/libgit2/include/git2/proxy.h +8 -14
  56. data/vendor/libgit2/include/git2/rebase.h +6 -53
  57. data/vendor/libgit2/include/git2/refs.h +15 -33
  58. data/vendor/libgit2/include/git2/refspec.h +0 -17
  59. data/vendor/libgit2/include/git2/remote.h +24 -123
  60. data/vendor/libgit2/include/git2/repository.h +39 -76
  61. data/vendor/libgit2/include/git2/revert.h +4 -6
  62. data/vendor/libgit2/include/git2/revwalk.h +7 -7
  63. data/vendor/libgit2/include/git2/signature.h +2 -2
  64. data/vendor/libgit2/include/git2/stash.h +12 -15
  65. data/vendor/libgit2/include/git2/status.h +20 -33
  66. data/vendor/libgit2/include/git2/submodule.h +12 -30
  67. data/vendor/libgit2/include/git2/sys/commit.h +1 -1
  68. data/vendor/libgit2/include/git2/sys/config.h +13 -13
  69. data/vendor/libgit2/include/git2/sys/filter.h +6 -6
  70. data/vendor/libgit2/include/git2/sys/index.h +0 -3
  71. data/vendor/libgit2/include/git2/sys/mempack.h +35 -35
  72. data/vendor/libgit2/include/git2/sys/merge.h +4 -9
  73. data/vendor/libgit2/include/git2/sys/odb_backend.h +22 -66
  74. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -76
  75. data/vendor/libgit2/include/git2/sys/repository.h +1 -5
  76. data/vendor/libgit2/include/git2/sys/stream.h +12 -92
  77. data/vendor/libgit2/include/git2/sys/time.h +31 -0
  78. data/vendor/libgit2/include/git2/sys/transport.h +83 -129
  79. data/vendor/libgit2/include/git2/tag.h +4 -13
  80. data/vendor/libgit2/include/git2/trace.h +2 -2
  81. data/vendor/libgit2/include/git2/transaction.h +0 -1
  82. data/vendor/libgit2/include/git2/transport.h +311 -11
  83. data/vendor/libgit2/include/git2/tree.h +4 -4
  84. data/vendor/libgit2/include/git2/types.h +111 -33
  85. data/vendor/libgit2/include/git2/version.h +4 -4
  86. data/vendor/libgit2/include/git2/worktree.h +13 -48
  87. data/vendor/libgit2/libgit2.pc.in +13 -0
  88. data/vendor/libgit2/src/CMakeLists.txt +164 -96
  89. data/vendor/libgit2/src/annotated_commit.c +8 -15
  90. data/vendor/libgit2/src/apply.c +31 -537
  91. data/vendor/libgit2/src/apply.h +1 -3
  92. data/vendor/libgit2/src/array.h +2 -2
  93. data/vendor/libgit2/src/attr.c +75 -81
  94. data/vendor/libgit2/src/attr_file.c +121 -207
  95. data/vendor/libgit2/src/attr_file.h +9 -9
  96. data/vendor/libgit2/src/attrcache.c +53 -51
  97. data/vendor/libgit2/src/attrcache.h +1 -2
  98. data/vendor/libgit2/src/blame.c +20 -47
  99. data/vendor/libgit2/src/blame.h +1 -2
  100. data/vendor/libgit2/src/blame_git.c +20 -37
  101. data/vendor/libgit2/src/blob.c +42 -128
  102. data/vendor/libgit2/src/blob.h +2 -19
  103. data/vendor/libgit2/src/branch.c +43 -67
  104. data/vendor/libgit2/src/buf_text.c +6 -7
  105. data/vendor/libgit2/src/buffer.c +57 -69
  106. data/vendor/libgit2/src/buffer.h +1 -1
  107. data/vendor/libgit2/src/cache.c +45 -38
  108. data/vendor/libgit2/src/cache.h +3 -3
  109. data/vendor/libgit2/src/cc-compat.h +3 -20
  110. data/vendor/libgit2/src/checkout.c +90 -109
  111. data/vendor/libgit2/src/cherrypick.c +9 -15
  112. data/vendor/libgit2/src/clone.c +27 -49
  113. data/vendor/libgit2/src/clone.h +0 -4
  114. data/vendor/libgit2/src/commit.c +49 -117
  115. data/vendor/libgit2/src/commit.h +0 -7
  116. data/vendor/libgit2/src/commit_list.c +78 -30
  117. data/vendor/libgit2/src/commit_list.h +2 -2
  118. data/vendor/libgit2/src/common.h +91 -27
  119. data/vendor/libgit2/src/config.c +176 -194
  120. data/vendor/libgit2/src/config.h +20 -8
  121. data/vendor/libgit2/src/config_cache.c +35 -41
  122. data/vendor/libgit2/src/config_file.c +753 -439
  123. data/vendor/libgit2/src/config_file.h +73 -0
  124. data/vendor/libgit2/src/config_parse.c +63 -114
  125. data/vendor/libgit2/src/config_parse.h +16 -17
  126. data/vendor/libgit2/src/crlf.c +190 -219
  127. data/vendor/libgit2/src/delta.c +18 -25
  128. data/vendor/libgit2/src/describe.c +41 -42
  129. data/vendor/libgit2/src/diff.c +68 -53
  130. data/vendor/libgit2/src/diff.h +1 -2
  131. data/vendor/libgit2/src/diff_driver.c +49 -47
  132. data/vendor/libgit2/src/diff_file.c +17 -19
  133. data/vendor/libgit2/src/diff_file.h +1 -1
  134. data/vendor/libgit2/src/diff_generate.c +106 -162
  135. data/vendor/libgit2/src/diff_generate.h +3 -3
  136. data/vendor/libgit2/src/diff_parse.c +4 -4
  137. data/vendor/libgit2/src/diff_print.c +30 -42
  138. data/vendor/libgit2/src/diff_stats.c +7 -22
  139. data/vendor/libgit2/src/diff_tform.c +16 -16
  140. data/vendor/libgit2/src/diff_xdiff.c +3 -15
  141. data/vendor/libgit2/src/errors.c +39 -51
  142. data/vendor/libgit2/src/features.h.in +3 -11
  143. data/vendor/libgit2/src/fetch.c +5 -10
  144. data/vendor/libgit2/src/fetchhead.c +17 -17
  145. data/vendor/libgit2/src/filebuf.c +36 -32
  146. data/vendor/libgit2/src/filebuf.h +2 -2
  147. data/vendor/libgit2/src/{futils.c → fileops.c} +73 -80
  148. data/vendor/libgit2/src/{futils.h → fileops.h} +6 -6
  149. data/vendor/libgit2/src/filter.c +38 -46
  150. data/vendor/libgit2/src/filter.h +10 -0
  151. data/vendor/libgit2/src/fnmatch.c +248 -0
  152. data/vendor/libgit2/src/fnmatch.h +48 -0
  153. data/vendor/libgit2/src/global.c +63 -48
  154. data/vendor/libgit2/src/global.h +2 -0
  155. data/vendor/libgit2/src/hash.c +0 -61
  156. data/vendor/libgit2/src/hash.h +19 -20
  157. data/vendor/libgit2/src/hash/hash_collisiondetect.h +47 -0
  158. data/vendor/libgit2/src/hash/{sha1/common_crypto.c → hash_common_crypto.h} +17 -17
  159. data/vendor/libgit2/src/hash/{sha1/generic.c → hash_generic.c} +10 -22
  160. data/vendor/libgit2/src/hash/{sha1/generic.h → hash_generic.h} +10 -4
  161. data/vendor/libgit2/src/hash/hash_openssl.h +59 -0
  162. data/vendor/libgit2/src/hash/{sha1/win32.c → hash_win32.c} +37 -47
  163. data/vendor/libgit2/src/hash/{sha1/win32.h → hash_win32.h} +19 -6
  164. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.c +3 -14
  165. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.h +0 -0
  166. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.c +0 -0
  167. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.h +0 -0
  168. data/vendor/libgit2/src/hashsig.c +5 -5
  169. data/vendor/libgit2/src/idxmap.c +61 -107
  170. data/vendor/libgit2/src/idxmap.h +31 -153
  171. data/vendor/libgit2/src/ignore.c +47 -43
  172. data/vendor/libgit2/src/index.c +232 -337
  173. data/vendor/libgit2/src/index.h +1 -17
  174. data/vendor/libgit2/src/indexer.c +175 -346
  175. data/vendor/libgit2/src/integer.h +26 -71
  176. data/vendor/libgit2/src/iterator.c +70 -142
  177. data/vendor/libgit2/src/iterator.h +0 -15
  178. data/vendor/libgit2/src/khash.h +1 -3
  179. data/vendor/libgit2/src/map.h +1 -1
  180. data/vendor/libgit2/src/merge.c +100 -144
  181. data/vendor/libgit2/src/merge_driver.c +11 -11
  182. data/vendor/libgit2/src/merge_file.c +2 -2
  183. data/vendor/libgit2/src/mwindow.c +29 -24
  184. data/vendor/libgit2/src/mwindow.h +4 -4
  185. data/vendor/libgit2/src/netops.c +156 -55
  186. data/vendor/libgit2/src/netops.h +23 -3
  187. data/vendor/libgit2/src/notes.c +11 -16
  188. data/vendor/libgit2/src/object.c +69 -120
  189. data/vendor/libgit2/src/object.h +9 -22
  190. data/vendor/libgit2/src/object_api.c +8 -8
  191. data/vendor/libgit2/src/odb.c +93 -116
  192. data/vendor/libgit2/src/odb.h +7 -8
  193. data/vendor/libgit2/src/odb_loose.c +55 -62
  194. data/vendor/libgit2/src/odb_mempack.c +34 -21
  195. data/vendor/libgit2/src/odb_pack.c +14 -18
  196. data/vendor/libgit2/src/offmap.c +35 -53
  197. data/vendor/libgit2/src/offmap.h +21 -108
  198. data/vendor/libgit2/src/oid.c +7 -12
  199. data/vendor/libgit2/src/oidmap.c +47 -49
  200. data/vendor/libgit2/src/oidmap.h +24 -101
  201. data/vendor/libgit2/src/pack-objects.c +87 -88
  202. data/vendor/libgit2/src/pack-objects.h +8 -2
  203. data/vendor/libgit2/src/pack.c +101 -99
  204. data/vendor/libgit2/src/pack.h +19 -17
  205. data/vendor/libgit2/src/parse.c +0 -10
  206. data/vendor/libgit2/src/parse.h +3 -3
  207. data/vendor/libgit2/src/patch.c +4 -4
  208. data/vendor/libgit2/src/patch_generate.c +20 -20
  209. data/vendor/libgit2/src/patch_parse.c +63 -151
  210. data/vendor/libgit2/src/path.c +104 -117
  211. data/vendor/libgit2/src/path.h +71 -3
  212. data/vendor/libgit2/src/pathspec.c +19 -19
  213. data/vendor/libgit2/src/pool.c +22 -26
  214. data/vendor/libgit2/src/pool.h +7 -7
  215. data/vendor/libgit2/src/posix.c +10 -10
  216. data/vendor/libgit2/src/posix.h +1 -12
  217. data/vendor/libgit2/src/proxy.c +3 -8
  218. data/vendor/libgit2/src/push.c +31 -37
  219. data/vendor/libgit2/src/push.h +1 -2
  220. data/vendor/libgit2/src/rebase.c +59 -115
  221. data/vendor/libgit2/src/refdb.c +3 -15
  222. data/vendor/libgit2/src/refdb_fs.c +254 -381
  223. data/vendor/libgit2/src/reflog.c +15 -13
  224. data/vendor/libgit2/src/refs.c +88 -118
  225. data/vendor/libgit2/src/refs.h +3 -5
  226. data/vendor/libgit2/src/refspec.c +37 -56
  227. data/vendor/libgit2/src/refspec.h +1 -1
  228. data/vendor/libgit2/src/remote.c +215 -266
  229. data/vendor/libgit2/src/remote.h +2 -11
  230. data/vendor/libgit2/src/repository.c +225 -280
  231. data/vendor/libgit2/src/repository.h +40 -52
  232. data/vendor/libgit2/src/reset.c +8 -8
  233. data/vendor/libgit2/src/revert.c +9 -14
  234. data/vendor/libgit2/src/revparse.c +48 -47
  235. data/vendor/libgit2/src/revwalk.c +57 -120
  236. data/vendor/libgit2/src/revwalk.h +1 -22
  237. data/vendor/libgit2/src/settings.c +10 -47
  238. data/vendor/libgit2/src/signature.c +11 -11
  239. data/vendor/libgit2/src/sortedcache.c +36 -22
  240. data/vendor/libgit2/src/sortedcache.h +1 -1
  241. data/vendor/libgit2/src/stash.c +99 -125
  242. data/vendor/libgit2/src/status.c +22 -28
  243. data/vendor/libgit2/src/stream.h +2 -17
  244. data/vendor/libgit2/src/streams/curl.c +385 -0
  245. data/vendor/libgit2/src/{allocators/stdalloc.h → streams/curl.h} +5 -5
  246. data/vendor/libgit2/src/streams/openssl.c +114 -224
  247. data/vendor/libgit2/src/streams/openssl.h +108 -4
  248. data/vendor/libgit2/src/streams/socket.c +30 -55
  249. data/vendor/libgit2/src/streams/stransport.c +32 -57
  250. data/vendor/libgit2/src/streams/stransport.h +0 -5
  251. data/vendor/libgit2/src/streams/tls.c +19 -50
  252. data/vendor/libgit2/src/streams/tls.h +4 -12
  253. data/vendor/libgit2/src/strmap.c +74 -47
  254. data/vendor/libgit2/src/strmap.h +33 -108
  255. data/vendor/libgit2/src/submodule.c +216 -272
  256. data/vendor/libgit2/src/submodule.h +1 -1
  257. data/vendor/libgit2/src/sysdir.c +19 -29
  258. data/vendor/libgit2/src/tag.c +28 -41
  259. data/vendor/libgit2/src/tag.h +1 -2
  260. data/vendor/libgit2/src/trace.c +2 -2
  261. data/vendor/libgit2/src/trace.h +3 -3
  262. data/vendor/libgit2/src/trailer.c +38 -52
  263. data/vendor/libgit2/src/transaction.c +29 -30
  264. data/vendor/libgit2/src/transport.c +5 -5
  265. data/vendor/libgit2/src/transports/auth.c +11 -15
  266. data/vendor/libgit2/src/transports/auth.h +3 -10
  267. data/vendor/libgit2/src/transports/auth_negotiate.c +18 -33
  268. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  269. data/vendor/libgit2/src/transports/cred.c +24 -24
  270. data/vendor/libgit2/src/{allocators/win32_crtdbg.h → transports/cred.h} +4 -5
  271. data/vendor/libgit2/src/transports/git.c +31 -26
  272. data/vendor/libgit2/src/transports/http.c +348 -881
  273. data/vendor/libgit2/src/transports/http.h +0 -2
  274. data/vendor/libgit2/src/transports/local.c +35 -35
  275. data/vendor/libgit2/src/transports/smart.c +47 -70
  276. data/vendor/libgit2/src/transports/smart.h +4 -3
  277. data/vendor/libgit2/src/transports/smart_pkt.c +40 -43
  278. data/vendor/libgit2/src/transports/smart_protocol.c +116 -96
  279. data/vendor/libgit2/src/transports/ssh.c +66 -77
  280. data/vendor/libgit2/src/transports/winhttp.c +314 -318
  281. data/vendor/libgit2/src/tree-cache.c +12 -19
  282. data/vendor/libgit2/src/tree.c +142 -103
  283. data/vendor/libgit2/src/tree.h +12 -1
  284. data/vendor/libgit2/src/unix/map.c +3 -3
  285. data/vendor/libgit2/src/unix/posix.h +11 -1
  286. data/vendor/libgit2/src/userdiff.h +1 -3
  287. data/vendor/libgit2/src/util.c +56 -70
  288. data/vendor/libgit2/src/util.h +156 -28
  289. data/vendor/libgit2/src/vector.c +4 -4
  290. data/vendor/libgit2/src/win32/dir.c +3 -3
  291. data/vendor/libgit2/src/win32/findfile.c +3 -3
  292. data/vendor/libgit2/src/win32/map.c +11 -9
  293. data/vendor/libgit2/src/win32/msvc-compat.h +0 -6
  294. data/vendor/libgit2/src/win32/path_w32.c +9 -113
  295. data/vendor/libgit2/src/win32/path_w32.h +29 -18
  296. data/vendor/libgit2/src/win32/posix.h +4 -1
  297. data/vendor/libgit2/src/win32/posix_w32.c +45 -70
  298. data/vendor/libgit2/src/win32/precompiled.h +2 -0
  299. data/vendor/libgit2/src/win32/thread.c +10 -5
  300. data/vendor/libgit2/src/win32/w32_buffer.c +5 -9
  301. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -3
  302. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +75 -26
  303. data/vendor/libgit2/src/win32/w32_stack.c +11 -6
  304. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  305. data/vendor/libgit2/src/win32/w32_util.c +64 -27
  306. data/vendor/libgit2/src/win32/w32_util.h +49 -5
  307. data/vendor/libgit2/src/worktree.c +60 -95
  308. data/vendor/libgit2/src/worktree.h +0 -2
  309. data/vendor/libgit2/src/xdiff/xdiffi.c +5 -7
  310. data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
  311. data/vendor/libgit2/src/xdiff/xmerge.c +15 -27
  312. data/vendor/libgit2/src/xdiff/xpatience.c +0 -3
  313. data/vendor/libgit2/src/zstream.c +4 -4
  314. metadata +33 -122
  315. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +0 -28
  316. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +0 -38
  317. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +0 -37
  318. data/vendor/libgit2/cmake/Modules/FindmbedTLS.cmake +0 -93
  319. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +0 -110
  320. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +0 -53
  321. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +0 -124
  322. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +0 -66
  323. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +0 -21
  324. data/vendor/libgit2/deps/ntlmclient/compat.h +0 -33
  325. data/vendor/libgit2/deps/ntlmclient/crypt.h +0 -64
  326. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +0 -120
  327. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +0 -18
  328. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -145
  329. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +0 -18
  330. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +0 -130
  331. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +0 -21
  332. data/vendor/libgit2/deps/ntlmclient/ntlm.c +0 -1420
  333. data/vendor/libgit2/deps/ntlmclient/ntlm.h +0 -174
  334. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +0 -320
  335. data/vendor/libgit2/deps/ntlmclient/unicode.h +0 -36
  336. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +0 -445
  337. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +0 -201
  338. data/vendor/libgit2/deps/ntlmclient/utf8.h +0 -1257
  339. data/vendor/libgit2/deps/ntlmclient/util.c +0 -21
  340. data/vendor/libgit2/deps/ntlmclient/util.h +0 -14
  341. data/vendor/libgit2/deps/pcre/CMakeLists.txt +0 -140
  342. data/vendor/libgit2/deps/pcre/COPYING +0 -5
  343. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +0 -22
  344. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +0 -17
  345. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +0 -58
  346. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +0 -29
  347. data/vendor/libgit2/deps/pcre/config.h.in +0 -57
  348. data/vendor/libgit2/deps/pcre/pcre.h +0 -641
  349. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +0 -319
  350. data/vendor/libgit2/deps/pcre/pcre_chartables.c +0 -198
  351. data/vendor/libgit2/deps/pcre/pcre_compile.c +0 -9800
  352. data/vendor/libgit2/deps/pcre/pcre_config.c +0 -190
  353. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +0 -3676
  354. data/vendor/libgit2/deps/pcre/pcre_exec.c +0 -7173
  355. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +0 -245
  356. data/vendor/libgit2/deps/pcre/pcre_get.c +0 -669
  357. data/vendor/libgit2/deps/pcre/pcre_globals.c +0 -86
  358. data/vendor/libgit2/deps/pcre/pcre_internal.h +0 -2787
  359. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +0 -11913
  360. data/vendor/libgit2/deps/pcre/pcre_maketables.c +0 -156
  361. data/vendor/libgit2/deps/pcre/pcre_newline.c +0 -210
  362. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +0 -94
  363. data/vendor/libgit2/deps/pcre/pcre_printint.c +0 -834
  364. data/vendor/libgit2/deps/pcre/pcre_refcount.c +0 -92
  365. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +0 -211
  366. data/vendor/libgit2/deps/pcre/pcre_study.c +0 -1686
  367. data/vendor/libgit2/deps/pcre/pcre_tables.c +0 -727
  368. data/vendor/libgit2/deps/pcre/pcre_ucd.c +0 -3644
  369. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +0 -301
  370. data/vendor/libgit2/deps/pcre/pcre_version.c +0 -98
  371. data/vendor/libgit2/deps/pcre/pcre_xclass.c +0 -268
  372. data/vendor/libgit2/deps/pcre/pcreposix.c +0 -421
  373. data/vendor/libgit2/deps/pcre/pcreposix.h +0 -117
  374. data/vendor/libgit2/deps/pcre/ucp.h +0 -224
  375. data/vendor/libgit2/deps/winhttp/COPYING.GPL +0 -993
  376. data/vendor/libgit2/deps/winhttp/COPYING.LGPL +0 -502
  377. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  378. data/vendor/libgit2/include/git2/apply.h +0 -149
  379. data/vendor/libgit2/include/git2/cert.h +0 -135
  380. data/vendor/libgit2/include/git2/cred.h +0 -308
  381. data/vendor/libgit2/include/git2/deprecated.h +0 -493
  382. data/vendor/libgit2/include/git2/mailmap.h +0 -115
  383. data/vendor/libgit2/include/git2/sys/alloc.h +0 -101
  384. data/vendor/libgit2/include/git2/sys/cred.h +0 -90
  385. data/vendor/libgit2/include/git2/sys/path.h +0 -64
  386. data/vendor/libgit2/src/alloc.c +0 -43
  387. data/vendor/libgit2/src/alloc.h +0 -40
  388. data/vendor/libgit2/src/allocators/stdalloc.c +0 -119
  389. data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
  390. data/vendor/libgit2/src/config_backend.h +0 -96
  391. data/vendor/libgit2/src/config_entries.c +0 -229
  392. data/vendor/libgit2/src/config_entries.h +0 -24
  393. data/vendor/libgit2/src/config_mem.c +0 -220
  394. data/vendor/libgit2/src/config_snapshot.c +0 -206
  395. data/vendor/libgit2/src/errors.h +0 -81
  396. data/vendor/libgit2/src/hash/sha1.h +0 -38
  397. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +0 -48
  398. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +0 -19
  399. data/vendor/libgit2/src/hash/sha1/common_crypto.h +0 -19
  400. data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
  401. data/vendor/libgit2/src/hash/sha1/mbedtls.h +0 -19
  402. data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
  403. data/vendor/libgit2/src/hash/sha1/openssl.h +0 -19
  404. data/vendor/libgit2/src/mailmap.c +0 -485
  405. data/vendor/libgit2/src/mailmap.h +0 -35
  406. data/vendor/libgit2/src/net.c +0 -184
  407. data/vendor/libgit2/src/net.h +0 -36
  408. data/vendor/libgit2/src/reader.c +0 -265
  409. data/vendor/libgit2/src/reader.h +0 -107
  410. data/vendor/libgit2/src/regexp.c +0 -221
  411. data/vendor/libgit2/src/regexp.h +0 -97
  412. data/vendor/libgit2/src/streams/mbedtls.c +0 -483
  413. data/vendor/libgit2/src/streams/mbedtls.h +0 -23
  414. data/vendor/libgit2/src/streams/registry.c +0 -118
  415. data/vendor/libgit2/src/streams/registry.h +0 -19
  416. data/vendor/libgit2/src/transports/auth_ntlm.c +0 -223
  417. data/vendor/libgit2/src/transports/auth_ntlm.h +0 -35
  418. data/vendor/libgit2/src/wildmatch.c +0 -320
  419. data/vendor/libgit2/src/wildmatch.h +0 -23
  420. data/vendor/libgit2/src/win32/w32_common.h +0 -39
@@ -120,14 +120,12 @@ static int read_tree_internal(git_tree_cache **out,
120
120
 
121
121
  /* Parse children: */
122
122
  if (tree->children_count > 0) {
123
- size_t i, bufsize;
123
+ unsigned int i;
124
124
 
125
- GIT_ERROR_CHECK_ALLOC_MULTIPLY(&bufsize, tree->children_count, sizeof(git_tree_cache*));
125
+ tree->children = git_pool_malloc(pool, tree->children_count * sizeof(git_tree_cache *));
126
+ GITERR_CHECK_ALLOC(tree->children);
126
127
 
127
- tree->children = git_pool_malloc(pool, bufsize);
128
- GIT_ERROR_CHECK_ALLOC(tree->children);
129
-
130
- memset(tree->children, 0x0, bufsize);
128
+ memset(tree->children, 0x0, tree->children_count * sizeof(git_tree_cache *));
131
129
 
132
130
  for (i = 0; i < tree->children_count; ++i) {
133
131
  if (read_tree_internal(&tree->children[i], &buffer, buffer_end, pool) < 0)
@@ -140,7 +138,7 @@ static int read_tree_internal(git_tree_cache **out,
140
138
  return 0;
141
139
 
142
140
  corrupted:
143
- git_error_set(GIT_ERROR_INDEX, "corrupted TREE extension in index");
141
+ giterr_set(GITERR_INDEX, "corrupted TREE extension in index");
144
142
  return -1;
145
143
  }
146
144
 
@@ -152,7 +150,7 @@ int git_tree_cache_read(git_tree_cache **tree, const char *buffer, size_t buffer
152
150
  return -1;
153
151
 
154
152
  if (buffer < buffer_end) {
155
- git_error_set(GIT_ERROR_INDEX, "corrupted TREE extension in index (unexpected trailing data)");
153
+ giterr_set(GITERR_INDEX, "corrupted TREE extension in index (unexpected trailing data)");
156
154
  return -1;
157
155
  }
158
156
 
@@ -162,7 +160,7 @@ int git_tree_cache_read(git_tree_cache **tree, const char *buffer, size_t buffer
162
160
  static int read_tree_recursive(git_tree_cache *cache, const git_tree *tree, git_pool *pool)
163
161
  {
164
162
  git_repository *repo;
165
- size_t i, j, nentries, ntrees, alloc_size;
163
+ size_t i, j, nentries, ntrees;
166
164
  int error;
167
165
 
168
166
  repo = git_tree_owner(tree);
@@ -184,11 +182,9 @@ static int read_tree_recursive(git_tree_cache *cache, const git_tree *tree, git_
184
182
  ntrees++;
185
183
  }
186
184
 
187
- GIT_ERROR_CHECK_ALLOC_MULTIPLY(&alloc_size, ntrees, sizeof(git_tree_cache *));
188
-
189
185
  cache->children_count = ntrees;
190
- cache->children = git_pool_mallocz(pool, alloc_size);
191
- GIT_ERROR_CHECK_ALLOC(cache->children);
186
+ cache->children = git_pool_mallocz(pool, ntrees * sizeof(git_tree_cache *));
187
+ GITERR_CHECK_ALLOC(cache->children);
192
188
 
193
189
  j = 0;
194
190
  for (i = 0; i < nentries; i++) {
@@ -236,15 +232,12 @@ int git_tree_cache_read_tree(git_tree_cache **out, const git_tree *tree, git_poo
236
232
 
237
233
  int git_tree_cache_new(git_tree_cache **out, const char *name, git_pool *pool)
238
234
  {
239
- size_t name_len, alloc_size;
235
+ size_t name_len;
240
236
  git_tree_cache *tree;
241
237
 
242
238
  name_len = strlen(name);
243
-
244
- GIT_ERROR_CHECK_ALLOC_ADD3(&alloc_size, sizeof(git_tree_cache), name_len, 1);
245
-
246
- tree = git_pool_malloc(pool, alloc_size);
247
- GIT_ERROR_CHECK_ALLOC(tree);
239
+ tree = git_pool_malloc(pool, sizeof(git_tree_cache) + name_len + 1);
240
+ GITERR_CHECK_ALLOC(tree);
248
241
 
249
242
  memset(tree, 0x0, sizeof(git_tree_cache));
250
243
  /* NUL-terminated tree name */
@@ -10,7 +10,7 @@
10
10
  #include "commit.h"
11
11
  #include "git2/repository.h"
12
12
  #include "git2/object.h"
13
- #include "futils.h"
13
+ #include "fileops.h"
14
14
  #include "tree-cache.h"
15
15
  #include "index.h"
16
16
 
@@ -18,7 +18,7 @@
18
18
  #define MAX_FILEMODE_BYTES 6
19
19
 
20
20
  #define TREE_ENTRY_CHECK_NAMELEN(n) \
21
- if (n > UINT16_MAX) { git_error_set(GIT_ERROR_INVALID, "tree entry path too long"); }
21
+ if (n > UINT16_MAX) { giterr_set(GITERR_INVALID, "tree entry path too long"); }
22
22
 
23
23
  static bool valid_filemode(const int filemode)
24
24
  {
@@ -74,6 +74,14 @@ int git_tree_entry_cmp(const git_tree_entry *e1, const git_tree_entry *e2)
74
74
  return entry_sort_cmp(e1, e2);
75
75
  }
76
76
 
77
+ int git_tree_entry_icmp(const git_tree_entry *e1, const git_tree_entry *e2)
78
+ {
79
+ return git_path_cmp(
80
+ e1->filename, e1->filename_len, git_tree_entry__is_tree(e1),
81
+ e2->filename, e2->filename_len, git_tree_entry__is_tree(e2),
82
+ git__strncasecmp);
83
+ }
84
+
77
85
  /**
78
86
  * Allocate a new self-contained entry, with enough space after it to
79
87
  * store the filename and the id.
@@ -271,16 +279,16 @@ const git_oid *git_tree_entry_id(const git_tree_entry *entry)
271
279
  return entry->oid;
272
280
  }
273
281
 
274
- git_object_t git_tree_entry_type(const git_tree_entry *entry)
282
+ git_otype git_tree_entry_type(const git_tree_entry *entry)
275
283
  {
276
284
  assert(entry);
277
285
 
278
286
  if (S_ISGITLINK(entry->attr))
279
- return GIT_OBJECT_COMMIT;
287
+ return GIT_OBJ_COMMIT;
280
288
  else if (S_ISDIR(entry->attr))
281
- return GIT_OBJECT_TREE;
289
+ return GIT_OBJ_TREE;
282
290
  else
283
- return GIT_OBJECT_BLOB;
291
+ return GIT_OBJ_BLOB;
284
292
  }
285
293
 
286
294
  int git_tree_entry_to_object(
@@ -289,7 +297,7 @@ int git_tree_entry_to_object(
289
297
  const git_tree_entry *entry)
290
298
  {
291
299
  assert(entry && object_out);
292
- return git_object_lookup(object_out, repo, entry->oid, GIT_OBJECT_ANY);
300
+ return git_object_lookup(object_out, repo, entry->oid, GIT_OBJ_ANY);
293
301
  }
294
302
 
295
303
  static const git_tree_entry *entry_fromname(
@@ -334,25 +342,60 @@ const git_tree_entry *git_tree_entry_byid(
334
342
  return NULL;
335
343
  }
336
344
 
345
+ int git_tree__prefix_position(const git_tree *tree, const char *path)
346
+ {
347
+ struct tree_key_search ksearch;
348
+ size_t at_pos, path_len;
349
+
350
+ if (!path)
351
+ return 0;
352
+
353
+ path_len = strlen(path);
354
+ TREE_ENTRY_CHECK_NAMELEN(path_len);
355
+
356
+ ksearch.filename = path;
357
+ ksearch.filename_len = (uint16_t)path_len;
358
+
359
+ /* Find tree entry with appropriate prefix */
360
+ git_array_search(
361
+ &at_pos, tree->entries, &homing_search_cmp, &ksearch);
362
+
363
+ for (; at_pos < tree->entries.size; ++at_pos) {
364
+ const git_tree_entry *entry = git_array_get(tree->entries, at_pos);
365
+ if (homing_search_cmp(&ksearch, entry) < 0)
366
+ break;
367
+ }
368
+
369
+ for (; at_pos > 0; --at_pos) {
370
+ const git_tree_entry *entry =
371
+ git_array_get(tree->entries, at_pos - 1);
372
+
373
+ if (homing_search_cmp(&ksearch, entry) > 0)
374
+ break;
375
+ }
376
+
377
+ return (int)at_pos;
378
+ }
379
+
337
380
  size_t git_tree_entrycount(const git_tree *tree)
338
381
  {
339
382
  assert(tree);
340
383
  return tree->entries.size;
341
384
  }
342
385
 
343
- size_t git_treebuilder_entrycount(git_treebuilder *bld)
386
+ unsigned int git_treebuilder_entrycount(git_treebuilder *bld)
344
387
  {
345
388
  assert(bld);
346
389
 
347
- return git_strmap_size(bld->map);
390
+ return git_strmap_num_entries(bld->map);
348
391
  }
349
392
 
350
393
  static int tree_error(const char *str, const char *path)
351
394
  {
352
395
  if (path)
353
- git_error_set(GIT_ERROR_TREE, "%s - %s", str, path);
396
+ giterr_set(GITERR_TREE, "%s - %s", str, path);
354
397
  else
355
- git_error_set(GIT_ERROR_TREE, "%s", str);
398
+ giterr_set(GITERR_TREE, "%s", str);
356
399
  return -1;
357
400
  }
358
401
 
@@ -375,18 +418,20 @@ static int parse_mode(uint16_t *mode_out, const char *buffer, size_t buffer_len,
375
418
  return 0;
376
419
  }
377
420
 
378
- int git_tree__parse_raw(void *_tree, const char *data, size_t size)
421
+ int git_tree__parse(void *_tree, git_odb_object *odb_obj)
379
422
  {
380
423
  git_tree *tree = _tree;
381
424
  const char *buffer;
382
425
  const char *buffer_end;
383
426
 
384
- buffer = data;
385
- buffer_end = buffer + size;
427
+ if (git_odb_object_dup(&tree->odb_obj, odb_obj) < 0)
428
+ return -1;
429
+
430
+ buffer = git_odb_object_data(tree->odb_obj);
431
+ buffer_end = buffer + git_odb_object_size(tree->odb_obj);
386
432
 
387
- tree->odb_obj = NULL;
388
433
  git_array_init_to_size(tree->entries, DEFAULT_TREE_SIZE);
389
- GIT_ERROR_CHECK_ARRAY(tree->entries);
434
+ GITERR_CHECK_ARRAY(tree->entries);
390
435
 
391
436
  while (buffer < buffer_end) {
392
437
  git_tree_entry *entry;
@@ -403,7 +448,7 @@ int git_tree__parse_raw(void *_tree, const char *data, size_t size)
403
448
  if ((nul = memchr(buffer, 0, buffer_end - buffer)) == NULL)
404
449
  return tree_error("failed to parse tree: object is corrupted", NULL);
405
450
 
406
- if ((filename_len = nul - buffer) == 0 || filename_len > UINT16_MAX)
451
+ if ((filename_len = nul - buffer) == 0)
407
452
  return tree_error("failed to parse tree: can't parse filename", NULL);
408
453
 
409
454
  if ((buffer_end - (nul + 1)) < GIT_OID_RAWSZ)
@@ -412,10 +457,10 @@ int git_tree__parse_raw(void *_tree, const char *data, size_t size)
412
457
  /* Allocate the entry */
413
458
  {
414
459
  entry = git_array_alloc(tree->entries);
415
- GIT_ERROR_CHECK_ALLOC(entry);
460
+ GITERR_CHECK_ALLOC(entry);
416
461
 
417
462
  entry->attr = attr;
418
- entry->filename_len = (uint16_t)filename_len;
463
+ entry->filename_len = filename_len;
419
464
  entry->filename = buffer;
420
465
  entry->oid = (git_oid *) ((char *) buffer + filename_len + 1);
421
466
  }
@@ -427,21 +472,6 @@ int git_tree__parse_raw(void *_tree, const char *data, size_t size)
427
472
  return 0;
428
473
  }
429
474
 
430
- int git_tree__parse(void *_tree, git_odb_object *odb_obj)
431
- {
432
- git_tree *tree = _tree;
433
-
434
- if ((git_tree__parse_raw(tree,
435
- git_odb_object_data(odb_obj),
436
- git_odb_object_size(odb_obj))) < 0)
437
- return -1;
438
-
439
- if (git_odb_object_dup(&tree->odb_obj, odb_obj) < 0)
440
- return -1;
441
-
442
- return 0;
443
- }
444
-
445
475
  static size_t find_next_dir(const char *dirname, git_index *index, size_t start)
446
476
  {
447
477
  size_t dirlen, i, entries = git_index_entrycount(index);
@@ -459,36 +489,6 @@ static size_t find_next_dir(const char *dirname, git_index *index, size_t start)
459
489
  return i;
460
490
  }
461
491
 
462
- static git_object_t otype_from_mode(git_filemode_t filemode)
463
- {
464
- switch (filemode) {
465
- case GIT_FILEMODE_TREE:
466
- return GIT_OBJECT_TREE;
467
- case GIT_FILEMODE_COMMIT:
468
- return GIT_OBJECT_COMMIT;
469
- default:
470
- return GIT_OBJECT_BLOB;
471
- }
472
- }
473
-
474
- static int check_entry(git_repository *repo, const char *filename, const git_oid *id, git_filemode_t filemode)
475
- {
476
- if (!valid_filemode(filemode))
477
- return tree_error("failed to insert entry: invalid filemode for file", filename);
478
-
479
- if (!valid_entry_name(repo, filename))
480
- return tree_error("failed to insert entry: invalid name for a tree entry", filename);
481
-
482
- if (git_oid_is_zero(id))
483
- return tree_error("failed to insert entry: invalid null OID", filename);
484
-
485
- if (filemode != GIT_FILEMODE_COMMIT &&
486
- !git_object__is_valid(repo, id, otype_from_mode(filemode)))
487
- return tree_error("failed to insert entry: invalid object specified", filename);
488
-
489
- return 0;
490
- }
491
-
492
492
  static int append_entry(
493
493
  git_treebuilder *bld,
494
494
  const char *filename,
@@ -499,17 +499,21 @@ static int append_entry(
499
499
  git_tree_entry *entry;
500
500
  int error = 0;
501
501
 
502
- if (validate && ((error = check_entry(bld->repo, filename, id, filemode)) < 0))
503
- return error;
502
+ if (validate && !valid_entry_name(bld->repo, filename))
503
+ return tree_error("failed to insert entry: invalid name for a tree entry", filename);
504
+
505
+ if (validate && git_oid_iszero(id))
506
+ return tree_error("failed to insert entry: invalid null OID for a tree entry", filename);
504
507
 
505
508
  entry = alloc_entry(filename, strlen(filename), id);
506
- GIT_ERROR_CHECK_ALLOC(entry);
509
+ GITERR_CHECK_ALLOC(entry);
507
510
 
508
511
  entry->attr = (uint16_t)filemode;
509
512
 
510
- if ((error = git_strmap_set(bld->map, entry->filename, entry)) < 0) {
513
+ git_strmap_insert(bld->map, entry->filename, entry, &error);
514
+ if (error < 0) {
511
515
  git_tree_entry_free(entry);
512
- git_error_set(GIT_ERROR_TREE, "failed to append entry %s to the tree builder", filename);
516
+ giterr_set(GITERR_TREE, "failed to append entry %s to the tree builder", filename);
513
517
  return -1;
514
518
  }
515
519
 
@@ -572,7 +576,7 @@ static int write_tree(
572
576
  char *subdir, *last_comp;
573
577
 
574
578
  subdir = git__strndup(entry->path, next_slash - entry->path);
575
- GIT_ERROR_CHECK_ALLOC(subdir);
579
+ GITERR_CHECK_ALLOC(subdir);
576
580
 
577
581
  /* Write out the subtree */
578
582
  written = write_tree(&sub_oid, repo, index, subdir, i, shared_buf);
@@ -629,7 +633,7 @@ int git_tree__write_index(
629
633
  assert(oid && index && repo);
630
634
 
631
635
  if (git_index_has_conflicts(index)) {
632
- git_error_set(GIT_ERROR_INDEX,
636
+ giterr_set(GITERR_INDEX,
633
637
  "cannot create a tree from a not fully merged index.");
634
638
  return GIT_EUNMERGED;
635
639
  }
@@ -650,7 +654,7 @@ int git_tree__write_index(
650
654
  }
651
655
 
652
656
  ret = write_tree(oid, repo, index, "", 0, &shared_buf);
653
- git_buf_dispose(&shared_buf);
657
+ git_buf_free(&shared_buf);
654
658
 
655
659
  if (old_ignore_case)
656
660
  git_index__set_ignore_case(index, true);
@@ -683,11 +687,11 @@ int git_treebuilder_new(
683
687
  assert(builder_p && repo);
684
688
 
685
689
  bld = git__calloc(1, sizeof(git_treebuilder));
686
- GIT_ERROR_CHECK_ALLOC(bld);
690
+ GITERR_CHECK_ALLOC(bld);
687
691
 
688
692
  bld->repo = repo;
689
693
 
690
- if (git_strmap_new(&bld->map) < 0) {
694
+ if (git_strmap_alloc(&bld->map) < 0) {
691
695
  git__free(bld);
692
696
  return -1;
693
697
  }
@@ -713,6 +717,18 @@ on_error:
713
717
  return -1;
714
718
  }
715
719
 
720
+ static git_otype otype_from_mode(git_filemode_t filemode)
721
+ {
722
+ switch (filemode) {
723
+ case GIT_FILEMODE_TREE:
724
+ return GIT_OBJ_TREE;
725
+ case GIT_FILEMODE_COMMIT:
726
+ return GIT_OBJ_COMMIT;
727
+ default:
728
+ return GIT_OBJ_BLOB;
729
+ }
730
+ }
731
+
716
732
  int git_treebuilder_insert(
717
733
  const git_tree_entry **entry_out,
718
734
  git_treebuilder *bld,
@@ -722,21 +738,36 @@ int git_treebuilder_insert(
722
738
  {
723
739
  git_tree_entry *entry;
724
740
  int error;
741
+ git_strmap_iter pos;
725
742
 
726
743
  assert(bld && id && filename);
727
744
 
728
- if ((error = check_entry(bld->repo, filename, id, filemode)) < 0)
729
- return error;
745
+ if (!valid_filemode(filemode))
746
+ return tree_error("failed to insert entry: invalid filemode for file", filename);
747
+
748
+ if (!valid_entry_name(bld->repo, filename))
749
+ return tree_error("failed to insert entry: invalid name for a tree entry", filename);
730
750
 
731
- if ((entry = git_strmap_get(bld->map, filename)) != NULL) {
751
+ if (git_oid_iszero(id))
752
+ return tree_error("failed to insert entry: invalid null OID", filename);
753
+
754
+ if (filemode != GIT_FILEMODE_COMMIT &&
755
+ !git_object__is_valid(bld->repo, id, otype_from_mode(filemode)))
756
+ return tree_error("failed to insert entry: invalid object specified", filename);
757
+
758
+ pos = git_strmap_lookup_index(bld->map, filename);
759
+ if (git_strmap_valid_index(bld->map, pos)) {
760
+ entry = git_strmap_value_at(bld->map, pos);
732
761
  git_oid_cpy((git_oid *) entry->oid, id);
733
762
  } else {
734
763
  entry = alloc_entry(filename, strlen(filename), id);
735
- GIT_ERROR_CHECK_ALLOC(entry);
764
+ GITERR_CHECK_ALLOC(entry);
765
+
766
+ git_strmap_insert(bld->map, entry->filename, entry, &error);
736
767
 
737
- if ((error = git_strmap_set(bld->map, entry->filename, entry)) < 0) {
768
+ if (error < 0) {
738
769
  git_tree_entry_free(entry);
739
- git_error_set(GIT_ERROR_TREE, "failed to insert %s", filename);
770
+ giterr_set(GITERR_TREE, "failed to insert %s", filename);
740
771
  return -1;
741
772
  }
742
773
  }
@@ -751,8 +782,16 @@ int git_treebuilder_insert(
751
782
 
752
783
  static git_tree_entry *treebuilder_get(git_treebuilder *bld, const char *filename)
753
784
  {
785
+ git_tree_entry *entry = NULL;
786
+ git_strmap_iter pos;
787
+
754
788
  assert(bld && filename);
755
- return git_strmap_get(bld->map, filename);
789
+
790
+ pos = git_strmap_lookup_index(bld->map, filename);
791
+ if (git_strmap_valid_index(bld->map, pos))
792
+ entry = git_strmap_value_at(bld->map, pos);
793
+
794
+ return entry;
756
795
  }
757
796
 
758
797
  const git_tree_entry *git_treebuilder_get(git_treebuilder *bld, const char *filename)
@@ -780,7 +819,7 @@ int git_treebuilder_write(git_oid *oid, git_treebuilder *bld)
780
819
 
781
820
  error = git_treebuilder_write_with_buffer(oid, bld, &buffer);
782
821
 
783
- git_buf_dispose(&buffer);
822
+ git_buf_free(&buffer);
784
823
  return error;
785
824
  }
786
825
 
@@ -797,7 +836,7 @@ int git_treebuilder_write_with_buffer(git_oid *oid, git_treebuilder *bld, git_bu
797
836
 
798
837
  git_buf_clear(tree);
799
838
 
800
- entrycount = git_strmap_size(bld->map);
839
+ entrycount = git_strmap_num_entries(bld->map);
801
840
  if ((error = git_vector_init(&entries, entrycount, entry_sort_cmp)) < 0)
802
841
  goto out;
803
842
 
@@ -826,7 +865,7 @@ int git_treebuilder_write_with_buffer(git_oid *oid, git_treebuilder *bld, git_bu
826
865
  }
827
866
 
828
867
  if ((error = git_repository_odb__weakptr(&odb, bld->repo)) == 0)
829
- error = git_odb_write(oid, odb, tree->ptr, tree->size, GIT_OBJECT_TREE);
868
+ error = git_odb_write(oid, odb, tree->ptr, tree->size, GIT_OBJ_TREE);
830
869
 
831
870
  out:
832
871
  git_vector_free(&entries);
@@ -896,14 +935,14 @@ int git_tree_entry_bypath(
896
935
  filename_len = subpath_len(path);
897
936
 
898
937
  if (filename_len == 0) {
899
- git_error_set(GIT_ERROR_TREE, "invalid tree path given");
938
+ giterr_set(GITERR_TREE, "invalid tree path given");
900
939
  return GIT_ENOTFOUND;
901
940
  }
902
941
 
903
942
  entry = entry_fromname(root, path, filename_len);
904
943
 
905
944
  if (entry == NULL) {
906
- git_error_set(GIT_ERROR_TREE,
945
+ giterr_set(GITERR_TREE,
907
946
  "the path '%.*s' does not exist in the given tree", (int) filename_len, path);
908
947
  return GIT_ENOTFOUND;
909
948
  }
@@ -913,7 +952,7 @@ int git_tree_entry_bypath(
913
952
  /* If there are more components in the path...
914
953
  * then this entry *must* be a tree */
915
954
  if (!git_tree_entry__is_tree(entry)) {
916
- git_error_set(GIT_ERROR_TREE,
955
+ giterr_set(GITERR_TREE,
917
956
  "the path '%.*s' exists but is not a tree", (int) filename_len, path);
918
957
  return GIT_ENOTFOUND;
919
958
  }
@@ -958,7 +997,7 @@ static int tree_walk(
958
997
  if (preorder) {
959
998
  error = callback(path->ptr, entry, payload);
960
999
  if (error < 0) { /* negative value stops iteration */
961
- git_error_set_after_callback_function(error, "git_tree_walk");
1000
+ giterr_set_after_callback_function(error, "git_tree_walk");
962
1001
  break;
963
1002
  }
964
1003
  if (error > 0) { /* positive value skips this entry */
@@ -994,7 +1033,7 @@ static int tree_walk(
994
1033
  if (!preorder) {
995
1034
  error = callback(path->ptr, entry, payload);
996
1035
  if (error < 0) { /* negative value stops iteration */
997
- git_error_set_after_callback_function(error, "git_tree_walk");
1036
+ giterr_set_after_callback_function(error, "git_tree_walk");
998
1037
  break;
999
1038
  }
1000
1039
  error = 0;
@@ -1014,14 +1053,14 @@ int git_tree_walk(
1014
1053
  git_buf root_path = GIT_BUF_INIT;
1015
1054
 
1016
1055
  if (mode != GIT_TREEWALK_POST && mode != GIT_TREEWALK_PRE) {
1017
- git_error_set(GIT_ERROR_INVALID, "invalid walking mode for tree walk");
1056
+ giterr_set(GITERR_INVALID, "invalid walking mode for tree walk");
1018
1057
  return -1;
1019
1058
  }
1020
1059
 
1021
1060
  error = tree_walk(
1022
1061
  tree, callback, &root_path, payload, (mode == GIT_TREEWALK_PRE));
1023
1062
 
1024
- git_buf_dispose(&root_path);
1063
+ git_buf_free(&root_path);
1025
1064
 
1026
1065
  return error;
1027
1066
  }
@@ -1038,7 +1077,7 @@ static int on_dup_entry(void **old, void *new)
1038
1077
  {
1039
1078
  GIT_UNUSED(old); GIT_UNUSED(new);
1040
1079
 
1041
- git_error_set(GIT_ERROR_TREE, "duplicate entries given for update");
1080
+ giterr_set(GITERR_TREE, "duplicate entries given for update");
1042
1081
  return -1;
1043
1082
  }
1044
1083
 
@@ -1107,14 +1146,14 @@ static int create_popped_tree(tree_stack_entry *current, tree_stack_entry *poppe
1107
1146
  git_buf_puts(component, popped->name);
1108
1147
  git__free(popped->name);
1109
1148
 
1110
- GIT_ERROR_CHECK_ALLOC(component->ptr);
1149
+ GITERR_CHECK_ALLOC(component->ptr);
1111
1150
 
1112
1151
  /* Error out if this would create a D/F conflict in this update */
1113
1152
  if (current->tree) {
1114
1153
  const git_tree_entry *to_replace;
1115
1154
  to_replace = git_tree_entry_byname(current->tree, component->ptr);
1116
- if (to_replace && git_tree_entry_type(to_replace) != GIT_OBJECT_TREE) {
1117
- git_error_set(GIT_ERROR_TREE, "D/F conflict when updating tree");
1155
+ if (to_replace && git_tree_entry_type(to_replace) != GIT_OBJ_TREE) {
1156
+ giterr_set(GITERR_TREE, "D/F conflict when updating tree");
1118
1157
  return -1;
1119
1158
  }
1120
1159
  }
@@ -1141,7 +1180,7 @@ int git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseli
1141
1180
  }
1142
1181
 
1143
1182
  root_elem = git_array_alloc(stack);
1144
- GIT_ERROR_CHECK_ALLOC(root_elem);
1183
+ GITERR_CHECK_ALLOC(root_elem);
1145
1184
  memset(root_elem, 0, sizeof(*root_elem));
1146
1185
 
1147
1186
  if (baseline && (error = git_tree_dup(&root_elem->tree, baseline)) < 0)
@@ -1190,14 +1229,14 @@ int git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseli
1190
1229
  if (!entry)
1191
1230
  entry = treebuilder_get(last->bld, component.ptr);
1192
1231
 
1193
- if (entry && git_tree_entry_type(entry) != GIT_OBJECT_TREE) {
1194
- git_error_set(GIT_ERROR_TREE, "D/F conflict when updating tree");
1232
+ if (entry && git_tree_entry_type(entry) != GIT_OBJ_TREE) {
1233
+ giterr_set(GITERR_TREE, "D/F conflict when updating tree");
1195
1234
  error = -1;
1196
1235
  goto cleanup;
1197
1236
  }
1198
1237
 
1199
1238
  new_entry = git_array_alloc(stack);
1200
- GIT_ERROR_CHECK_ALLOC(new_entry);
1239
+ GITERR_CHECK_ALLOC(new_entry);
1201
1240
  memset(new_entry, 0, sizeof(*new_entry));
1202
1241
 
1203
1242
  new_entry->tree = NULL;
@@ -1208,7 +1247,7 @@ int git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseli
1208
1247
  goto cleanup;
1209
1248
 
1210
1249
  new_entry->name = git__strdup(component.ptr);
1211
- GIT_ERROR_CHECK_ALLOC(new_entry->name);
1250
+ GITERR_CHECK_ALLOC(new_entry->name);
1212
1251
 
1213
1252
  /* Get to the start of the next component */
1214
1253
  path += component.size + 1;
@@ -1224,7 +1263,7 @@ int git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseli
1224
1263
  const git_tree_entry *e = git_treebuilder_get(last->bld, basename);
1225
1264
  if (e && git_tree_entry_type(e) != git_object__type_from_filemode(update->filemode)) {
1226
1265
  git__free(basename);
1227
- git_error_set(GIT_ERROR_TREE, "cannot replace '%s' with '%s' at '%s'",
1266
+ giterr_set(GITERR_TREE, "cannot replace '%s' with '%s' at '%s'",
1228
1267
  git_object_type2string(git_tree_entry_type(e)),
1229
1268
  git_object_type2string(git_object__type_from_filemode(update->filemode)),
1230
1269
  update->path);
@@ -1244,7 +1283,7 @@ int git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseli
1244
1283
  break;
1245
1284
  }
1246
1285
  default:
1247
- git_error_set(GIT_ERROR_TREE, "unknown action for update");
1286
+ giterr_set(GITERR_TREE, "unknown action for update");
1248
1287
  error = -1;
1249
1288
  goto cleanup;
1250
1289
  }
@@ -1286,7 +1325,7 @@ cleanup:
1286
1325
  }
1287
1326
  }
1288
1327
 
1289
- git_buf_dispose(&component);
1328
+ git_buf_free(&component);
1290
1329
  git_array_clear(stack);
1291
1330
  git_vector_free(&entries);
1292
1331
  return error;