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
@@ -1,81 +0,0 @@
1
- /*
2
- * Copyright (C) the libgit2 contributors. All rights reserved.
3
- *
4
- * This file is part of libgit2, distributed under the GNU GPL v2 with
5
- * a Linking Exception. For full terms see the included COPYING file.
6
- */
7
-
8
- #ifndef INCLUDE_errors_h__
9
- #define INCLUDE_errors_h__
10
-
11
- #include "common.h"
12
-
13
- /*
14
- * Set the error message for this thread, formatting as needed.
15
- */
16
- void git_error_set(int error_class, const char *fmt, ...) GIT_FORMAT_PRINTF(2, 3);
17
- void git_error_vset(int error_class, const char *fmt, va_list ap);
18
-
19
- /**
20
- * Set error message for user callback if needed.
21
- *
22
- * If the error code in non-zero and no error message is set, this
23
- * sets a generic error message.
24
- *
25
- * @return This always returns the `error_code` parameter.
26
- */
27
- GIT_INLINE(int) git_error_set_after_callback_function(
28
- int error_code, const char *action)
29
- {
30
- if (error_code) {
31
- const git_error *e = git_error_last();
32
- if (!e || !e->message)
33
- git_error_set(e ? e->klass : GIT_ERROR_CALLBACK,
34
- "%s callback returned %d", action, error_code);
35
- }
36
- return error_code;
37
- }
38
-
39
- #ifdef GIT_WIN32
40
- #define git_error_set_after_callback(code) \
41
- git_error_set_after_callback_function((code), __FUNCTION__)
42
- #else
43
- #define git_error_set_after_callback(code) \
44
- git_error_set_after_callback_function((code), __func__)
45
- #endif
46
-
47
- /**
48
- * Gets the system error code for this thread.
49
- */
50
- int git_error_system_last(void);
51
-
52
- /**
53
- * Sets the system error code for this thread.
54
- */
55
- void git_error_system_set(int code);
56
-
57
- /**
58
- * Structure to preserve libgit2 error state
59
- */
60
- typedef struct {
61
- int error_code;
62
- unsigned int oom : 1;
63
- git_error error_msg;
64
- } git_error_state;
65
-
66
- /**
67
- * Capture current error state to restore later, returning error code.
68
- * If `error_code` is zero, this does not clear the current error state.
69
- * You must either restore this error state, or free it.
70
- */
71
- extern int git_error_state_capture(git_error_state *state, int error_code);
72
-
73
- /**
74
- * Restore error state to a previous value, returning saved error code.
75
- */
76
- extern int git_error_state_restore(git_error_state *state);
77
-
78
- /** Free an error state. */
79
- extern void git_error_state_free(git_error_state *state);
80
-
81
- #endif
@@ -1,38 +0,0 @@
1
- /*
2
- * Copyright (C) the libgit2 contributors. All rights reserved.
3
- *
4
- * This file is part of libgit2, distributed under the GNU GPL v2 with
5
- * a Linking Exception. For full terms see the included COPYING file.
6
- */
7
-
8
- #ifndef INCLUDE_hash_sha1_h__
9
- #define INCLUDE_hash_sha1_h__
10
-
11
- #include "common.h"
12
-
13
- typedef struct git_hash_sha1_ctx git_hash_sha1_ctx;
14
-
15
- #if defined(GIT_SHA1_COLLISIONDETECT)
16
- # include "sha1/collisiondetect.h"
17
- #elif defined(GIT_SHA1_COMMON_CRYPTO)
18
- # include "sha1/common_crypto.h"
19
- #elif defined(GIT_SHA1_OPENSSL)
20
- # include "sha1/openssl.h"
21
- #elif defined(GIT_SHA1_WIN32)
22
- # include "sha1/win32.h"
23
- #elif defined(GIT_SHA1_MBEDTLS)
24
- # include "sha1/mbedtls.h"
25
- #else
26
- # include "sha1/generic.h"
27
- #endif
28
-
29
- int git_hash_sha1_global_init(void);
30
-
31
- int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx);
32
- void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx);
33
-
34
- int git_hash_sha1_init(git_hash_sha1_ctx *c);
35
- int git_hash_sha1_update(git_hash_sha1_ctx *c, const void *data, size_t len);
36
- int git_hash_sha1_final(git_oid *out, git_hash_sha1_ctx *c);
37
-
38
- #endif
@@ -1,48 +0,0 @@
1
- /*
2
- * Copyright (C) the libgit2 contributors. All rights reserved.
3
- *
4
- * This file is part of libgit2, distributed under the GNU GPL v2 with
5
- * a Linking Exception. For full terms see the included COPYING file.
6
- */
7
-
8
- #include "collisiondetect.h"
9
-
10
- int git_hash_sha1_global_init(void)
11
- {
12
- return 0;
13
- }
14
-
15
- int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
16
- {
17
- return git_hash_sha1_init(ctx);
18
- }
19
-
20
- void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
21
- {
22
- GIT_UNUSED(ctx);
23
- }
24
-
25
- int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
26
- {
27
- assert(ctx);
28
- SHA1DCInit(&ctx->c);
29
- return 0;
30
- }
31
-
32
- int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
33
- {
34
- assert(ctx);
35
- SHA1DCUpdate(&ctx->c, data, len);
36
- return 0;
37
- }
38
-
39
- int git_hash_sha1_final(git_oid *out, git_hash_sha1_ctx *ctx)
40
- {
41
- assert(ctx);
42
- if (SHA1DCFinal(out->id, &ctx->c)) {
43
- git_error_set(GIT_ERROR_SHA1, "SHA1 collision attack detected");
44
- return -1;
45
- }
46
-
47
- return 0;
48
- }
@@ -1,19 +0,0 @@
1
- /*
2
- * Copyright (C) the libgit2 contributors. All rights reserved.
3
- *
4
- * This file is part of libgit2, distributed under the GNU GPL v2 with
5
- * a Linking Exception. For full terms see the included COPYING file.
6
- */
7
-
8
- #ifndef INCLUDE_hash_sha1_collisiondetect_h__
9
- #define INCLUDE_hash_sha1_collisiondetect_h__
10
-
11
- #include "hash/sha1.h"
12
-
13
- #include "sha1dc/sha1.h"
14
-
15
- struct git_hash_sha1_ctx {
16
- SHA1_CTX c;
17
- };
18
-
19
- #endif
@@ -1,19 +0,0 @@
1
- /*
2
- * Copyright (C) the libgit2 contributors. All rights reserved.
3
- *
4
- * This file is part of libgit2, distributed under the GNU GPL v2 with
5
- * a Linking Exception. For full terms see the included COPYING file.
6
- */
7
-
8
- #ifndef INCLUDE_hash_sha1_common_crypto_h__
9
- #define INCLUDE_hash_sha1_common_crypto_h__
10
-
11
- #include "hash/sha1.h"
12
-
13
- #include <CommonCrypto/CommonDigest.h>
14
-
15
- struct git_hash_sha1_ctx {
16
- CC_SHA1_CTX c;
17
- };
18
-
19
- #endif
@@ -1,46 +0,0 @@
1
- /*
2
- * Copyright (C) the libgit2 contributors. All rights reserved.
3
- *
4
- * This file is part of libgit2, distributed under the GNU GPL v2 with
5
- * a Linking Exception. For full terms see the included COPYING file.
6
- */
7
-
8
- #include "mbedtls.h"
9
-
10
- int git_hash_sha1_global_init(void)
11
- {
12
- return 0;
13
- }
14
-
15
- int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
16
- {
17
- return git_hash_sha1_init(ctx);
18
- }
19
-
20
- void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
21
- {
22
- assert(ctx);
23
- mbedtls_sha1_free(&ctx->c);
24
- }
25
-
26
- int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
27
- {
28
- assert(ctx);
29
- mbedtls_sha1_init(&ctx->c);
30
- mbedtls_sha1_starts(&ctx->c);
31
- return 0;
32
- }
33
-
34
- int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
35
- {
36
- assert(ctx);
37
- mbedtls_sha1_update(&ctx->c, data, len);
38
- return 0;
39
- }
40
-
41
- int git_hash_sha1_final(git_oid *out, git_hash_sha1_ctx *ctx)
42
- {
43
- assert(ctx);
44
- mbedtls_sha1_finish(&ctx->c, out->id);
45
- return 0;
46
- }
@@ -1,19 +0,0 @@
1
- /*
2
- * Copyright (C) the libgit2 contributors. All rights reserved.
3
- *
4
- * This file is part of libgit2, distributed under the GNU GPL v2 with
5
- * a Linking Exception. For full terms see the included COPYING file.
6
- */
7
-
8
- #ifndef INCLUDE_hash_sha1_mbedtls_h__
9
- #define INCLUDE_hash_sha1_mbedtls_h__
10
-
11
- #include "hash/sha1.h"
12
-
13
- #include <mbedtls/sha1.h>
14
-
15
- struct git_hash_sha1_ctx {
16
- mbedtls_sha1_context c;
17
- };
18
-
19
- #endif /* INCLUDE_hash_sha1_mbedtls_h__ */
@@ -1,59 +0,0 @@
1
- /*
2
- * Copyright (C) the libgit2 contributors. All rights reserved.
3
- *
4
- * This file is part of libgit2, distributed under the GNU GPL v2 with
5
- * a Linking Exception. For full terms see the included COPYING file.
6
- */
7
-
8
- #include "openssl.h"
9
-
10
- int git_hash_sha1_global_init(void)
11
- {
12
- return 0;
13
- }
14
-
15
- int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
16
- {
17
- return git_hash_sha1_init(ctx);
18
- }
19
-
20
- void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
21
- {
22
- GIT_UNUSED(ctx);
23
- }
24
-
25
- int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
26
- {
27
- assert(ctx);
28
-
29
- if (SHA1_Init(&ctx->c) != 1) {
30
- git_error_set(GIT_ERROR_SHA1, "hash_openssl: failed to initialize hash context");
31
- return -1;
32
- }
33
-
34
- return 0;
35
- }
36
-
37
- int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
38
- {
39
- assert(ctx);
40
-
41
- if (SHA1_Update(&ctx->c, data, len) != 1) {
42
- git_error_set(GIT_ERROR_SHA1, "hash_openssl: failed to update hash");
43
- return -1;
44
- }
45
-
46
- return 0;
47
- }
48
-
49
- int git_hash_sha1_final(git_oid *out, git_hash_sha1_ctx *ctx)
50
- {
51
- assert(ctx);
52
-
53
- if (SHA1_Final(out->id, &ctx->c) != 1) {
54
- git_error_set(GIT_ERROR_SHA1, "hash_openssl: failed to finalize hash");
55
- return -1;
56
- }
57
-
58
- return 0;
59
- }
@@ -1,19 +0,0 @@
1
- /*
2
- * Copyright (C) the libgit2 contributors. All rights reserved.
3
- *
4
- * This file is part of libgit2, distributed under the GNU GPL v2 with
5
- * a Linking Exception. For full terms see the included COPYING file.
6
- */
7
-
8
- #ifndef INCLUDE_hash_sha1_openssl_h__
9
- #define INCLUDE_hash_sha1_openssl_h__
10
-
11
- #include "hash/sha1.h"
12
-
13
- #include <openssl/sha.h>
14
-
15
- struct git_hash_sha1_ctx {
16
- SHA_CTX c;
17
- };
18
-
19
- #endif
@@ -1,485 +0,0 @@
1
- /*
2
- * Copyright (C) the libgit2 contributors. All rights reserved.
3
- *
4
- * This file is part of libgit2, distributed under the GNU GPL v2 with
5
- * a Linking Exception. For full terms see the included COPYING file.
6
- */
7
-
8
- #include "mailmap.h"
9
-
10
- #include "common.h"
11
- #include "path.h"
12
- #include "repository.h"
13
- #include "signature.h"
14
- #include "git2/config.h"
15
- #include "git2/revparse.h"
16
- #include "blob.h"
17
- #include "parse.h"
18
-
19
- #define MM_FILE ".mailmap"
20
- #define MM_FILE_CONFIG "mailmap.file"
21
- #define MM_BLOB_CONFIG "mailmap.blob"
22
- #define MM_BLOB_DEFAULT "HEAD:" MM_FILE
23
-
24
- static void mailmap_entry_free(git_mailmap_entry *entry)
25
- {
26
- if (!entry)
27
- return;
28
-
29
- git__free(entry->real_name);
30
- git__free(entry->real_email);
31
- git__free(entry->replace_name);
32
- git__free(entry->replace_email);
33
- git__free(entry);
34
- }
35
-
36
- /*
37
- * First we sort by replace_email, then replace_name (if present).
38
- * Entries with names are greater than entries without.
39
- */
40
- static int mailmap_entry_cmp(const void *a_raw, const void *b_raw)
41
- {
42
- const git_mailmap_entry *a = (const git_mailmap_entry *)a_raw;
43
- const git_mailmap_entry *b = (const git_mailmap_entry *)b_raw;
44
- int cmp;
45
-
46
- assert(a && b && a->replace_email && b->replace_email);
47
-
48
- cmp = git__strcmp(a->replace_email, b->replace_email);
49
- if (cmp)
50
- return cmp;
51
-
52
- /* NULL replace_names are less than not-NULL ones */
53
- if (a->replace_name == NULL || b->replace_name == NULL)
54
- return (int)(a->replace_name != NULL) - (int)(b->replace_name != NULL);
55
-
56
- return git__strcmp(a->replace_name, b->replace_name);
57
- }
58
-
59
- /* Replace the old entry with the new on duplicate. */
60
- static int mailmap_entry_replace(void **old_raw, void *new_raw)
61
- {
62
- mailmap_entry_free((git_mailmap_entry *)*old_raw);
63
- *old_raw = new_raw;
64
- return GIT_EEXISTS;
65
- }
66
-
67
- /* Check if we're at the end of line, w/ comments */
68
- static bool is_eol(git_parse_ctx *ctx)
69
- {
70
- char c;
71
- return git_parse_peek(&c, ctx, GIT_PARSE_PEEK_SKIP_WHITESPACE) < 0 || c == '#';
72
- }
73
-
74
- static int advance_until(
75
- const char **start, size_t *len, git_parse_ctx *ctx, char needle)
76
- {
77
- *start = ctx->line;
78
- while (ctx->line_len > 0 && *ctx->line != '#' && *ctx->line != needle)
79
- git_parse_advance_chars(ctx, 1);
80
-
81
- if (ctx->line_len == 0 || *ctx->line == '#')
82
- return -1; /* end of line */
83
-
84
- *len = ctx->line - *start;
85
- git_parse_advance_chars(ctx, 1); /* advance past needle */
86
- return 0;
87
- }
88
-
89
- /*
90
- * Parse a single entry from a mailmap file.
91
- *
92
- * The output git_bufs will be non-owning, and should be copied before being
93
- * persisted.
94
- */
95
- static int parse_mailmap_entry(
96
- git_buf *real_name, git_buf *real_email,
97
- git_buf *replace_name, git_buf *replace_email,
98
- git_parse_ctx *ctx)
99
- {
100
- const char *start;
101
- size_t len;
102
-
103
- git_buf_clear(real_name);
104
- git_buf_clear(real_email);
105
- git_buf_clear(replace_name);
106
- git_buf_clear(replace_email);
107
-
108
- git_parse_advance_ws(ctx);
109
- if (is_eol(ctx))
110
- return -1; /* blank line */
111
-
112
- /* Parse the real name */
113
- if (advance_until(&start, &len, ctx, '<') < 0)
114
- return -1;
115
-
116
- git_buf_attach_notowned(real_name, start, len);
117
- git_buf_rtrim(real_name);
118
-
119
- /*
120
- * If this is the last email in the line, this is the email to replace,
121
- * otherwise, it's the real email.
122
- */
123
- if (advance_until(&start, &len, ctx, '>') < 0)
124
- return -1;
125
-
126
- /* If we aren't at the end of the line, parse a second name and email */
127
- if (!is_eol(ctx)) {
128
- git_buf_attach_notowned(real_email, start, len);
129
-
130
- git_parse_advance_ws(ctx);
131
- if (advance_until(&start, &len, ctx, '<') < 0)
132
- return -1;
133
- git_buf_attach_notowned(replace_name, start, len);
134
- git_buf_rtrim(replace_name);
135
-
136
- if (advance_until(&start, &len, ctx, '>') < 0)
137
- return -1;
138
- }
139
-
140
- git_buf_attach_notowned(replace_email, start, len);
141
-
142
- if (!is_eol(ctx))
143
- return -1;
144
-
145
- return 0;
146
- }
147
-
148
- int git_mailmap_new(git_mailmap **out)
149
- {
150
- int error;
151
- git_mailmap *mm = git__calloc(1, sizeof(git_mailmap));
152
- GIT_ERROR_CHECK_ALLOC(mm);
153
-
154
- error = git_vector_init(&mm->entries, 0, mailmap_entry_cmp);
155
- if (error < 0) {
156
- git__free(mm);
157
- return error;
158
- }
159
- *out = mm;
160
- return 0;
161
- }
162
-
163
- void git_mailmap_free(git_mailmap *mm)
164
- {
165
- size_t idx;
166
- git_mailmap_entry *entry;
167
- if (!mm)
168
- return;
169
-
170
- git_vector_foreach(&mm->entries, idx, entry)
171
- mailmap_entry_free(entry);
172
-
173
- git_vector_free(&mm->entries);
174
- git__free(mm);
175
- }
176
-
177
- static int mailmap_add_entry_unterminated(
178
- git_mailmap *mm,
179
- const char *real_name, size_t real_name_size,
180
- const char *real_email, size_t real_email_size,
181
- const char *replace_name, size_t replace_name_size,
182
- const char *replace_email, size_t replace_email_size)
183
- {
184
- int error;
185
- git_mailmap_entry *entry = git__calloc(1, sizeof(git_mailmap_entry));
186
- GIT_ERROR_CHECK_ALLOC(entry);
187
-
188
- assert(mm && replace_email && *replace_email);
189
-
190
- if (real_name_size > 0) {
191
- entry->real_name = git__substrdup(real_name, real_name_size);
192
- GIT_ERROR_CHECK_ALLOC(entry->real_name);
193
- }
194
- if (real_email_size > 0) {
195
- entry->real_email = git__substrdup(real_email, real_email_size);
196
- GIT_ERROR_CHECK_ALLOC(entry->real_email);
197
- }
198
- if (replace_name_size > 0) {
199
- entry->replace_name = git__substrdup(replace_name, replace_name_size);
200
- GIT_ERROR_CHECK_ALLOC(entry->replace_name);
201
- }
202
- entry->replace_email = git__substrdup(replace_email, replace_email_size);
203
- GIT_ERROR_CHECK_ALLOC(entry->replace_email);
204
-
205
- error = git_vector_insert_sorted(&mm->entries, entry, mailmap_entry_replace);
206
- if (error == GIT_EEXISTS)
207
- error = GIT_OK;
208
- else if (error < 0)
209
- mailmap_entry_free(entry);
210
-
211
- return error;
212
- }
213
-
214
- int git_mailmap_add_entry(
215
- git_mailmap *mm, const char *real_name, const char *real_email,
216
- const char *replace_name, const char *replace_email)
217
- {
218
- return mailmap_add_entry_unterminated(
219
- mm,
220
- real_name, real_name ? strlen(real_name) : 0,
221
- real_email, real_email ? strlen(real_email) : 0,
222
- replace_name, replace_name ? strlen(replace_name) : 0,
223
- replace_email, strlen(replace_email));
224
- }
225
-
226
- static int mailmap_add_buffer(git_mailmap *mm, const char *buf, size_t len)
227
- {
228
- int error = 0;
229
- git_parse_ctx ctx;
230
-
231
- /* Scratch buffers containing the real parsed names & emails */
232
- git_buf real_name = GIT_BUF_INIT;
233
- git_buf real_email = GIT_BUF_INIT;
234
- git_buf replace_name = GIT_BUF_INIT;
235
- git_buf replace_email = GIT_BUF_INIT;
236
-
237
- /* Buffers may not contain '\0's. */
238
- if (memchr(buf, '\0', len) != NULL)
239
- return -1;
240
-
241
- git_parse_ctx_init(&ctx, buf, len);
242
-
243
- /* Run the parser */
244
- while (ctx.remain_len > 0) {
245
- error = parse_mailmap_entry(
246
- &real_name, &real_email, &replace_name, &replace_email, &ctx);
247
- if (error < 0) {
248
- error = 0; /* Skip lines which don't contain a valid entry */
249
- git_parse_advance_line(&ctx);
250
- continue; /* TODO: warn */
251
- }
252
-
253
- /* NOTE: Can't use add_entry(...) as our buffers aren't terminated */
254
- error = mailmap_add_entry_unterminated(
255
- mm, real_name.ptr, real_name.size, real_email.ptr, real_email.size,
256
- replace_name.ptr, replace_name.size, replace_email.ptr, replace_email.size);
257
- if (error < 0)
258
- goto cleanup;
259
-
260
- error = 0;
261
- }
262
-
263
- cleanup:
264
- git_buf_dispose(&real_name);
265
- git_buf_dispose(&real_email);
266
- git_buf_dispose(&replace_name);
267
- git_buf_dispose(&replace_email);
268
- return error;
269
- }
270
-
271
- int git_mailmap_from_buffer(git_mailmap **out, const char *data, size_t len)
272
- {
273
- int error = git_mailmap_new(out);
274
- if (error < 0)
275
- return error;
276
-
277
- error = mailmap_add_buffer(*out, data, len);
278
- if (error < 0) {
279
- git_mailmap_free(*out);
280
- *out = NULL;
281
- }
282
- return error;
283
- }
284
-
285
- static int mailmap_add_blob(
286
- git_mailmap *mm, git_repository *repo, const char *rev)
287
- {
288
- git_object *object = NULL;
289
- git_blob *blob = NULL;
290
- git_buf content = GIT_BUF_INIT;
291
- int error;
292
-
293
- assert(mm && repo);
294
-
295
- error = git_revparse_single(&object, repo, rev);
296
- if (error < 0)
297
- goto cleanup;
298
-
299
- error = git_object_peel((git_object **)&blob, object, GIT_OBJECT_BLOB);
300
- if (error < 0)
301
- goto cleanup;
302
-
303
- error = git_blob__getbuf(&content, blob);
304
- if (error < 0)
305
- goto cleanup;
306
-
307
- error = mailmap_add_buffer(mm, content.ptr, content.size);
308
- if (error < 0)
309
- goto cleanup;
310
-
311
- cleanup:
312
- git_buf_dispose(&content);
313
- git_blob_free(blob);
314
- git_object_free(object);
315
- return error;
316
- }
317
-
318
- static int mailmap_add_file_ondisk(
319
- git_mailmap *mm, const char *path, git_repository *repo)
320
- {
321
- const char *base = repo ? git_repository_workdir(repo) : NULL;
322
- git_buf fullpath = GIT_BUF_INIT;
323
- git_buf content = GIT_BUF_INIT;
324
- int error;
325
-
326
- error = git_path_join_unrooted(&fullpath, path, base, NULL);
327
- if (error < 0)
328
- goto cleanup;
329
-
330
- error = git_futils_readbuffer(&content, fullpath.ptr);
331
- if (error < 0)
332
- goto cleanup;
333
-
334
- error = mailmap_add_buffer(mm, content.ptr, content.size);
335
- if (error < 0)
336
- goto cleanup;
337
-
338
- cleanup:
339
- git_buf_dispose(&fullpath);
340
- git_buf_dispose(&content);
341
- return error;
342
- }
343
-
344
- /* NOTE: Only expose with an error return, currently never errors */
345
- static void mailmap_add_from_repository(git_mailmap *mm, git_repository *repo)
346
- {
347
- git_config *config = NULL;
348
- git_buf rev_buf = GIT_BUF_INIT;
349
- git_buf path_buf = GIT_BUF_INIT;
350
- const char *rev = NULL;
351
- const char *path = NULL;
352
-
353
- assert(mm && repo);
354
-
355
- /* If we're in a bare repo, default blob to 'HEAD:.mailmap' */
356
- if (repo->is_bare)
357
- rev = MM_BLOB_DEFAULT;
358
-
359
- /* Try to load 'mailmap.file' and 'mailmap.blob' cfgs from the repo */
360
- if (git_repository_config(&config, repo) == 0) {
361
- if (git_config_get_string_buf(&rev_buf, config, MM_BLOB_CONFIG) == 0)
362
- rev = rev_buf.ptr;
363
- if (git_config_get_path(&path_buf, config, MM_FILE_CONFIG) == 0)
364
- path = path_buf.ptr;
365
- }
366
-
367
- /*
368
- * Load mailmap files in order, overriding previous entries with new ones.
369
- * 1. The '.mailmap' file in the repository's workdir root,
370
- * 2. The blob described by the 'mailmap.blob' config (default HEAD:.mailmap),
371
- * 3. The file described by the 'mailmap.file' config.
372
- *
373
- * We ignore errors from these loads, as these files may not exist, or may
374
- * contain invalid information, and we don't want to report that error.
375
- *
376
- * XXX: Warn?
377
- */
378
- if (!repo->is_bare)
379
- mailmap_add_file_ondisk(mm, MM_FILE, repo);
380
- if (rev != NULL)
381
- mailmap_add_blob(mm, repo, rev);
382
- if (path != NULL)
383
- mailmap_add_file_ondisk(mm, path, repo);
384
-
385
- git_buf_dispose(&rev_buf);
386
- git_buf_dispose(&path_buf);
387
- git_config_free(config);
388
- }
389
-
390
- int git_mailmap_from_repository(git_mailmap **out, git_repository *repo)
391
- {
392
- int error = git_mailmap_new(out);
393
- if (error < 0)
394
- return error;
395
- mailmap_add_from_repository(*out, repo);
396
- return 0;
397
- }
398
-
399
- const git_mailmap_entry *git_mailmap_entry_lookup(
400
- const git_mailmap *mm, const char *name, const char *email)
401
- {
402
- int error;
403
- ssize_t fallback = -1;
404
- size_t idx;
405
- git_mailmap_entry *entry;
406
-
407
- /* The lookup needle we want to use only sets the replace_email. */
408
- git_mailmap_entry needle = { NULL };
409
- needle.replace_email = (char *)email;
410
-
411
- assert(email);
412
-
413
- if (!mm)
414
- return NULL;
415
-
416
- /*
417
- * We want to find the place to start looking. so we do a binary search for
418
- * the "fallback" nameless entry. If we find it, we advance past it and record
419
- * the index.
420
- */
421
- error = git_vector_bsearch(&idx, (git_vector *)&mm->entries, &needle);
422
- if (error >= 0)
423
- fallback = idx++;
424
- else if (error != GIT_ENOTFOUND)
425
- return NULL;
426
-
427
- /* do a linear search for an exact match */
428
- for (; idx < git_vector_length(&mm->entries); ++idx) {
429
- entry = git_vector_get(&mm->entries, idx);
430
-
431
- if (git__strcmp(entry->replace_email, email))
432
- break; /* it's a different email, so we're done looking */
433
-
434
- assert(entry->replace_name); /* should be specific */
435
- if (!name || !git__strcmp(entry->replace_name, name))
436
- return entry;
437
- }
438
-
439
- if (fallback < 0)
440
- return NULL; /* no fallback */
441
- return git_vector_get(&mm->entries, fallback);
442
- }
443
-
444
- int git_mailmap_resolve(
445
- const char **real_name, const char **real_email,
446
- const git_mailmap *mailmap,
447
- const char *name, const char *email)
448
- {
449
- const git_mailmap_entry *entry = NULL;
450
- assert(name && email);
451
-
452
- *real_name = name;
453
- *real_email = email;
454
-
455
- if ((entry = git_mailmap_entry_lookup(mailmap, name, email))) {
456
- if (entry->real_name)
457
- *real_name = entry->real_name;
458
- if (entry->real_email)
459
- *real_email = entry->real_email;
460
- }
461
- return 0;
462
- }
463
-
464
- int git_mailmap_resolve_signature(
465
- git_signature **out, const git_mailmap *mailmap, const git_signature *sig)
466
- {
467
- const char *name = NULL;
468
- const char *email = NULL;
469
- int error;
470
-
471
- if (!sig)
472
- return 0;
473
-
474
- error = git_mailmap_resolve(&name, &email, mailmap, sig->name, sig->email);
475
- if (error < 0)
476
- return error;
477
-
478
- error = git_signature_new(out, name, email, sig->when.time, sig->when.offset);
479
- if (error < 0)
480
- return error;
481
-
482
- /* Copy over the sign, as git_signature_new doesn't let you pass it. */
483
- (*out)->when.sign = sig->when.sign;
484
- return 0;
485
- }