rugged 1.7.2 → 1.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/extconf.rb +4 -4
  3. data/ext/rugged/rugged.c +12 -1
  4. data/ext/rugged/rugged_blame.c +22 -6
  5. data/ext/rugged/rugged_blob.c +24 -9
  6. data/ext/rugged/rugged_branch.c +10 -7
  7. data/ext/rugged/rugged_branch_collection.c +8 -6
  8. data/ext/rugged/rugged_commit.c +7 -6
  9. data/ext/rugged/rugged_config.c +20 -11
  10. data/ext/rugged/rugged_diff.c +26 -12
  11. data/ext/rugged/rugged_diff_hunk.c +2 -1
  12. data/ext/rugged/rugged_index.c +39 -29
  13. data/ext/rugged/rugged_note.c +7 -6
  14. data/ext/rugged/rugged_object.c +3 -2
  15. data/ext/rugged/rugged_patch.c +23 -9
  16. data/ext/rugged/rugged_rebase.c +22 -10
  17. data/ext/rugged/rugged_reference.c +22 -13
  18. data/ext/rugged/rugged_reference_collection.c +9 -7
  19. data/ext/rugged/rugged_remote.c +23 -12
  20. data/ext/rugged/rugged_remote_collection.c +11 -9
  21. data/ext/rugged/rugged_repo.c +60 -45
  22. data/ext/rugged/rugged_revwalk.c +22 -12
  23. data/ext/rugged/rugged_submodule.c +23 -20
  24. data/ext/rugged/rugged_submodule_collection.c +20 -9
  25. data/ext/rugged/rugged_tag.c +6 -4
  26. data/ext/rugged/rugged_tag_collection.c +7 -5
  27. data/ext/rugged/rugged_tree.c +27 -15
  28. data/lib/rugged/version.rb +1 -1
  29. data/vendor/libgit2/AUTHORS +3 -0
  30. data/vendor/libgit2/CMakeLists.txt +23 -10
  31. data/vendor/libgit2/COPYING +278 -12
  32. data/vendor/libgit2/cmake/DefaultCFlags.cmake +8 -3
  33. data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
  34. data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
  35. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +1 -1
  36. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
  37. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +17 -8
  38. data/vendor/libgit2/cmake/SelectHashes.cmake +28 -11
  39. data/vendor/libgit2/cmake/SelectRegex.cmake +14 -4
  40. data/vendor/libgit2/cmake/SelectSSH.cmake +30 -19
  41. data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
  42. data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
  43. data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  44. data/vendor/libgit2/deps/llhttp/api.c +510 -0
  45. data/vendor/libgit2/deps/llhttp/http.c +170 -0
  46. data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
  47. data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
  48. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
  49. data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
  50. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
  51. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
  52. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
  53. data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
  54. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
  55. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
  56. data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
  57. data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
  58. data/vendor/libgit2/deps/pcre2/CMakeLists.txt +110 -0
  59. data/vendor/libgit2/deps/pcre2/LICENCE.md +104 -0
  60. data/vendor/libgit2/deps/pcre2/config.h.in +54 -0
  61. data/vendor/libgit2/deps/pcre2/pcre2.h +1079 -0
  62. data/vendor/libgit2/deps/pcre2/pcre2_auto_possess.c +1416 -0
  63. data/vendor/libgit2/deps/{pcre/pcre_chartables.c → pcre2/pcre2_chartables.c} +41 -47
  64. data/vendor/libgit2/deps/{pcre/pcre_ord2utf8.c → pcre2/pcre2_chkdint.c} +36 -36
  65. data/vendor/libgit2/deps/pcre2/pcre2_compile.c +11345 -0
  66. data/vendor/libgit2/deps/pcre2/pcre2_compile.h +356 -0
  67. data/vendor/libgit2/deps/pcre2/pcre2_compile_cgroup.c +632 -0
  68. data/vendor/libgit2/deps/pcre2/pcre2_compile_class.c +2777 -0
  69. data/vendor/libgit2/deps/pcre2/pcre2_config.c +250 -0
  70. data/vendor/libgit2/deps/pcre2/pcre2_context.c +557 -0
  71. data/vendor/libgit2/deps/pcre2/pcre2_convert.c +1263 -0
  72. data/vendor/libgit2/deps/{pcre/pcre_dfa_exec.c → pcre2/pcre2_dfa_match.c} +1402 -943
  73. data/vendor/libgit2/deps/pcre2/pcre2_error.c +384 -0
  74. data/vendor/libgit2/deps/pcre2/pcre2_extuni.c +159 -0
  75. data/vendor/libgit2/deps/pcre2/pcre2_find_bracket.c +217 -0
  76. data/vendor/libgit2/deps/pcre2/pcre2_fuzzsupport.c +844 -0
  77. data/vendor/libgit2/deps/pcre2/pcre2_internal.h +2353 -0
  78. data/vendor/libgit2/deps/pcre2/pcre2_intmodedep.h +1044 -0
  79. data/vendor/libgit2/deps/pcre2/pcre2_maketables.c +177 -0
  80. data/vendor/libgit2/deps/pcre2/pcre2_match.c +8244 -0
  81. data/vendor/libgit2/deps/pcre2/pcre2_match_data.c +184 -0
  82. data/vendor/libgit2/deps/pcre2/pcre2_match_next.c +171 -0
  83. data/vendor/libgit2/deps/{pcre/pcre_newline.c → pcre2/pcre2_newline.c} +92 -63
  84. data/vendor/libgit2/deps/{pcre/pcre_refcount.c → pcre2/pcre2_ord2utf.c} +64 -38
  85. data/vendor/libgit2/deps/pcre2/pcre2_pattern_info.c +430 -0
  86. data/vendor/libgit2/deps/pcre2/pcre2_printint_inc.h +1098 -0
  87. data/vendor/libgit2/deps/pcre2/pcre2_script_run.c +344 -0
  88. data/vendor/libgit2/deps/pcre2/pcre2_serialize.c +284 -0
  89. data/vendor/libgit2/deps/pcre2/pcre2_string_utils.c +199 -0
  90. data/vendor/libgit2/deps/pcre2/pcre2_study.c +2087 -0
  91. data/vendor/libgit2/deps/pcre2/pcre2_substitute.c +1761 -0
  92. data/vendor/libgit2/deps/pcre2/pcre2_substring.c +553 -0
  93. data/vendor/libgit2/deps/pcre2/pcre2_tables.c +310 -0
  94. data/vendor/libgit2/deps/pcre2/pcre2_ucd.c +5805 -0
  95. data/vendor/libgit2/deps/pcre2/pcre2_ucp.h +408 -0
  96. data/vendor/libgit2/deps/pcre2/pcre2_ucptables_inc.h +1596 -0
  97. data/vendor/libgit2/deps/pcre2/pcre2_util.h +179 -0
  98. data/vendor/libgit2/deps/pcre2/pcre2_valid_utf.c +397 -0
  99. data/vendor/libgit2/deps/pcre2/pcre2_xclass.c +547 -0
  100. data/vendor/libgit2/deps/xdiff/CMakeLists.txt +1 -1
  101. data/vendor/libgit2/deps/xdiff/xmerge.c +16 -12
  102. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
  103. data/vendor/libgit2/deps/zlib/LICENSE +22 -0
  104. data/vendor/libgit2/deps/zlib/adler32.c +5 -27
  105. data/vendor/libgit2/deps/zlib/crc32.c +94 -167
  106. data/vendor/libgit2/deps/zlib/deflate.c +358 -435
  107. data/vendor/libgit2/deps/zlib/deflate.h +41 -10
  108. data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
  109. data/vendor/libgit2/deps/zlib/infback.c +17 -30
  110. data/vendor/libgit2/deps/zlib/inffast.c +1 -4
  111. data/vendor/libgit2/deps/zlib/inffast.h +1 -1
  112. data/vendor/libgit2/deps/zlib/inflate.c +36 -102
  113. data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
  114. data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
  115. data/vendor/libgit2/deps/zlib/trees.c +287 -352
  116. data/vendor/libgit2/deps/zlib/zconf.h +23 -14
  117. data/vendor/libgit2/deps/zlib/zlib.h +202 -202
  118. data/vendor/libgit2/deps/zlib/zutil.c +18 -44
  119. data/vendor/libgit2/deps/zlib/zutil.h +13 -33
  120. data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
  121. data/vendor/libgit2/include/git2/apply.h +27 -6
  122. data/vendor/libgit2/include/git2/attr.h +17 -4
  123. data/vendor/libgit2/include/git2/blame.h +133 -28
  124. data/vendor/libgit2/include/git2/blob.h +71 -28
  125. data/vendor/libgit2/include/git2/branch.h +22 -15
  126. data/vendor/libgit2/include/git2/buffer.h +6 -4
  127. data/vendor/libgit2/include/git2/cert.h +2 -1
  128. data/vendor/libgit2/include/git2/checkout.h +83 -32
  129. data/vendor/libgit2/include/git2/cherrypick.h +10 -3
  130. data/vendor/libgit2/include/git2/clone.h +25 -9
  131. data/vendor/libgit2/include/git2/commit.h +132 -3
  132. data/vendor/libgit2/include/git2/common.h +132 -63
  133. data/vendor/libgit2/include/git2/config.h +93 -23
  134. data/vendor/libgit2/include/git2/credential.h +30 -2
  135. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  136. data/vendor/libgit2/include/git2/deprecated.h +134 -4
  137. data/vendor/libgit2/include/git2/describe.h +13 -1
  138. data/vendor/libgit2/include/git2/diff.h +38 -8
  139. data/vendor/libgit2/include/git2/email.h +9 -29
  140. data/vendor/libgit2/include/git2/errors.h +46 -73
  141. data/vendor/libgit2/include/git2/filter.h +14 -7
  142. data/vendor/libgit2/include/git2/global.h +8 -1
  143. data/vendor/libgit2/include/git2/graph.h +3 -2
  144. data/vendor/libgit2/include/git2/ignore.h +10 -0
  145. data/vendor/libgit2/include/git2/index.h +100 -15
  146. data/vendor/libgit2/include/git2/indexer.h +21 -4
  147. data/vendor/libgit2/include/git2/mailmap.h +7 -1
  148. data/vendor/libgit2/include/git2/merge.h +50 -3
  149. data/vendor/libgit2/include/git2/message.h +2 -2
  150. data/vendor/libgit2/include/git2/net.h +3 -1
  151. data/vendor/libgit2/include/git2/notes.h +9 -6
  152. data/vendor/libgit2/include/git2/object.h +9 -8
  153. data/vendor/libgit2/include/git2/odb.h +91 -49
  154. data/vendor/libgit2/include/git2/odb_backend.h +80 -52
  155. data/vendor/libgit2/include/git2/oid.h +23 -25
  156. data/vendor/libgit2/include/git2/oidarray.h +7 -1
  157. data/vendor/libgit2/include/git2/pack.h +13 -1
  158. data/vendor/libgit2/include/git2/patch.h +2 -3
  159. data/vendor/libgit2/include/git2/pathspec.h +9 -0
  160. data/vendor/libgit2/include/git2/proxy.h +12 -3
  161. data/vendor/libgit2/include/git2/rebase.h +9 -6
  162. data/vendor/libgit2/include/git2/refdb.h +2 -2
  163. data/vendor/libgit2/include/git2/reflog.h +3 -2
  164. data/vendor/libgit2/include/git2/refs.h +9 -6
  165. data/vendor/libgit2/include/git2/refspec.h +14 -4
  166. data/vendor/libgit2/include/git2/remote.h +113 -25
  167. data/vendor/libgit2/include/git2/repository.h +57 -21
  168. data/vendor/libgit2/include/git2/reset.h +16 -3
  169. data/vendor/libgit2/include/git2/revert.h +9 -4
  170. data/vendor/libgit2/include/git2/revparse.h +3 -3
  171. data/vendor/libgit2/include/git2/revwalk.h +3 -2
  172. data/vendor/libgit2/include/git2/signature.h +46 -1
  173. data/vendor/libgit2/include/git2/stash.h +17 -3
  174. data/vendor/libgit2/include/git2/status.h +10 -6
  175. data/vendor/libgit2/include/git2/stdint.h +87 -85
  176. data/vendor/libgit2/include/git2/strarray.h +2 -3
  177. data/vendor/libgit2/include/git2/submodule.h +20 -9
  178. data/vendor/libgit2/include/git2/sys/alloc.h +12 -0
  179. data/vendor/libgit2/include/git2/sys/commit.h +77 -3
  180. data/vendor/libgit2/include/git2/sys/commit_graph.h +103 -62
  181. data/vendor/libgit2/include/git2/sys/config.h +80 -4
  182. data/vendor/libgit2/include/git2/sys/credential.h +4 -3
  183. data/vendor/libgit2/include/git2/sys/diff.h +21 -1
  184. data/vendor/libgit2/include/git2/sys/email.h +7 -0
  185. data/vendor/libgit2/include/git2/sys/errors.h +76 -0
  186. data/vendor/libgit2/include/git2/sys/filter.h +66 -3
  187. data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
  188. data/vendor/libgit2/include/git2/sys/index.h +3 -2
  189. data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
  190. data/vendor/libgit2/include/git2/sys/merge.h +55 -7
  191. data/vendor/libgit2/include/git2/sys/midx.h +43 -4
  192. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
  193. data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
  194. data/vendor/libgit2/include/git2/sys/path.h +12 -1
  195. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
  196. data/vendor/libgit2/include/git2/sys/refs.h +3 -2
  197. data/vendor/libgit2/include/git2/sys/remote.h +8 -1
  198. data/vendor/libgit2/include/git2/sys/repository.h +63 -3
  199. data/vendor/libgit2/include/git2/sys/stream.h +11 -2
  200. data/vendor/libgit2/include/git2/sys/transport.h +25 -4
  201. data/vendor/libgit2/include/git2/tag.h +3 -1
  202. data/vendor/libgit2/include/git2/trace.h +9 -3
  203. data/vendor/libgit2/include/git2/transaction.h +3 -2
  204. data/vendor/libgit2/include/git2/transport.h +11 -3
  205. data/vendor/libgit2/include/git2/tree.h +16 -5
  206. data/vendor/libgit2/include/git2/types.h +19 -3
  207. data/vendor/libgit2/include/git2/version.h +46 -8
  208. data/vendor/libgit2/include/git2/worktree.h +16 -6
  209. data/vendor/libgit2/src/CMakeLists.txt +6 -4
  210. data/vendor/libgit2/src/cli/CMakeLists.txt +3 -4
  211. data/vendor/libgit2/src/cli/cmd.c +1 -1
  212. data/vendor/libgit2/src/cli/cmd.h +4 -0
  213. data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
  214. data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
  215. data/vendor/libgit2/src/cli/cmd_clone.c +5 -7
  216. data/vendor/libgit2/src/cli/cmd_config.c +241 -0
  217. data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
  218. data/vendor/libgit2/src/cli/cmd_help.c +6 -7
  219. data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
  220. data/vendor/libgit2/src/cli/cmd_init.c +102 -0
  221. data/vendor/libgit2/src/cli/common.c +168 -0
  222. data/vendor/libgit2/src/cli/common.h +63 -0
  223. data/vendor/libgit2/src/cli/error.h +1 -1
  224. data/vendor/libgit2/src/cli/main.c +52 -24
  225. data/vendor/libgit2/src/cli/opt.c +31 -5
  226. data/vendor/libgit2/src/cli/opt.h +21 -3
  227. data/vendor/libgit2/src/cli/opt_usage.c +102 -33
  228. data/vendor/libgit2/src/cli/opt_usage.h +6 -1
  229. data/vendor/libgit2/src/cli/progress.c +51 -2
  230. data/vendor/libgit2/src/cli/progress.h +12 -0
  231. data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
  232. data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
  233. data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
  234. data/vendor/libgit2/src/libgit2/CMakeLists.txt +55 -21
  235. data/vendor/libgit2/src/libgit2/apply.c +10 -13
  236. data/vendor/libgit2/src/libgit2/attr.c +30 -13
  237. data/vendor/libgit2/src/libgit2/attr_file.c +17 -5
  238. data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
  239. data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
  240. data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
  241. data/vendor/libgit2/src/libgit2/blame.c +135 -43
  242. data/vendor/libgit2/src/libgit2/blame.h +1 -0
  243. data/vendor/libgit2/src/libgit2/cache.c +22 -17
  244. data/vendor/libgit2/src/libgit2/cache.h +7 -9
  245. data/vendor/libgit2/src/libgit2/checkout.c +34 -24
  246. data/vendor/libgit2/src/libgit2/checkout.h +0 -2
  247. data/vendor/libgit2/src/libgit2/cherrypick.c +1 -2
  248. data/vendor/libgit2/src/libgit2/clone.c +192 -166
  249. data/vendor/libgit2/src/libgit2/clone.h +4 -1
  250. data/vendor/libgit2/src/libgit2/commit.c +93 -1
  251. data/vendor/libgit2/src/libgit2/commit_graph.c +68 -58
  252. data/vendor/libgit2/src/libgit2/commit_graph.h +1 -2
  253. data/vendor/libgit2/src/libgit2/config.c +390 -299
  254. data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
  255. data/vendor/libgit2/src/libgit2/config.h +9 -4
  256. data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
  257. data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
  258. data/vendor/libgit2/src/libgit2/config_file.c +101 -89
  259. data/vendor/libgit2/src/libgit2/config_list.c +285 -0
  260. data/vendor/libgit2/src/libgit2/config_list.h +32 -0
  261. data/vendor/libgit2/src/libgit2/config_mem.c +195 -40
  262. data/vendor/libgit2/src/libgit2/config_parse.c +12 -10
  263. data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
  264. data/vendor/libgit2/src/libgit2/delta.c +13 -1
  265. data/vendor/libgit2/src/libgit2/describe.c +24 -24
  266. data/vendor/libgit2/src/libgit2/diff.c +1 -1
  267. data/vendor/libgit2/src/libgit2/diff_driver.c +13 -20
  268. data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
  269. data/vendor/libgit2/src/libgit2/diff_generate.c +3 -3
  270. data/vendor/libgit2/src/libgit2/diff_parse.c +2 -2
  271. data/vendor/libgit2/src/libgit2/diff_print.c +65 -9
  272. data/vendor/libgit2/src/libgit2/diff_stats.c +19 -12
  273. data/vendor/libgit2/src/libgit2/diff_tform.c +36 -8
  274. data/vendor/libgit2/src/libgit2/email.c +1 -0
  275. data/vendor/libgit2/src/libgit2/fetch.c +5 -3
  276. data/vendor/libgit2/src/libgit2/fetchhead.c +1 -1
  277. data/vendor/libgit2/src/libgit2/filter.c +5 -5
  278. data/vendor/libgit2/src/libgit2/git2.rc +3 -3
  279. data/vendor/libgit2/src/libgit2/grafts.c +18 -20
  280. data/vendor/libgit2/src/libgit2/grafts.h +0 -1
  281. data/vendor/libgit2/src/libgit2/graph.c +1 -1
  282. data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
  283. data/vendor/libgit2/src/libgit2/ignore.c +9 -5
  284. data/vendor/libgit2/src/libgit2/index.c +76 -98
  285. data/vendor/libgit2/src/libgit2/index.h +5 -2
  286. data/vendor/libgit2/src/libgit2/index_map.c +95 -0
  287. data/vendor/libgit2/src/libgit2/index_map.h +28 -0
  288. data/vendor/libgit2/src/libgit2/indexer.c +38 -41
  289. data/vendor/libgit2/src/libgit2/iterator.c +14 -8
  290. data/vendor/libgit2/src/libgit2/libgit2.c +153 -368
  291. data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
  292. data/vendor/libgit2/src/libgit2/merge.c +43 -38
  293. data/vendor/libgit2/src/libgit2/merge.h +4 -0
  294. data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
  295. data/vendor/libgit2/src/libgit2/merge_file.c +43 -30
  296. data/vendor/libgit2/src/libgit2/message.c +1 -1
  297. data/vendor/libgit2/src/libgit2/midx.c +30 -18
  298. data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
  299. data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
  300. data/vendor/libgit2/src/libgit2/object.c +6 -5
  301. data/vendor/libgit2/src/libgit2/odb.c +7 -10
  302. data/vendor/libgit2/src/libgit2/odb_loose.c +24 -14
  303. data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
  304. data/vendor/libgit2/src/libgit2/odb_pack.c +13 -5
  305. data/vendor/libgit2/src/libgit2/oid.c +36 -10
  306. data/vendor/libgit2/src/libgit2/oid.h +11 -0
  307. data/vendor/libgit2/src/libgit2/pack-objects.c +59 -34
  308. data/vendor/libgit2/src/libgit2/pack-objects.h +12 -4
  309. data/vendor/libgit2/src/libgit2/pack.c +33 -24
  310. data/vendor/libgit2/src/libgit2/pack.h +15 -10
  311. data/vendor/libgit2/src/libgit2/patch_parse.c +2 -2
  312. data/vendor/libgit2/src/libgit2/path.c +1 -1
  313. data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
  314. data/vendor/libgit2/src/libgit2/push.c +79 -28
  315. data/vendor/libgit2/src/libgit2/push.h +1 -0
  316. data/vendor/libgit2/src/libgit2/refdb_fs.c +128 -61
  317. data/vendor/libgit2/src/libgit2/reflog.c +1 -2
  318. data/vendor/libgit2/src/libgit2/reflog.h +2 -0
  319. data/vendor/libgit2/src/libgit2/refs.c +41 -13
  320. data/vendor/libgit2/src/libgit2/refs.h +6 -1
  321. data/vendor/libgit2/src/libgit2/refspec.c +28 -1
  322. data/vendor/libgit2/src/libgit2/refspec.h +8 -0
  323. data/vendor/libgit2/src/libgit2/remote.c +125 -62
  324. data/vendor/libgit2/src/libgit2/remote.h +0 -1
  325. data/vendor/libgit2/src/libgit2/repository.c +235 -54
  326. data/vendor/libgit2/src/libgit2/repository.h +10 -6
  327. data/vendor/libgit2/src/libgit2/revert.c +1 -2
  328. data/vendor/libgit2/src/libgit2/revparse.c +2 -2
  329. data/vendor/libgit2/src/libgit2/revwalk.c +13 -10
  330. data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
  331. data/vendor/libgit2/src/libgit2/settings.c +477 -0
  332. data/vendor/libgit2/src/libgit2/settings.h +6 -2
  333. data/vendor/libgit2/src/libgit2/signature.c +132 -15
  334. data/vendor/libgit2/src/libgit2/signature.h +0 -1
  335. data/vendor/libgit2/src/libgit2/status.c +1 -1
  336. data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -60
  337. data/vendor/libgit2/src/libgit2/streams/openssl.c +36 -8
  338. data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
  339. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
  340. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
  341. data/vendor/libgit2/src/libgit2/streams/socket.c +30 -0
  342. data/vendor/libgit2/src/libgit2/streams/stransport.c +39 -7
  343. data/vendor/libgit2/src/libgit2/submodule.c +195 -80
  344. data/vendor/libgit2/src/libgit2/submodule.h +6 -7
  345. data/vendor/libgit2/src/libgit2/tag.c +4 -2
  346. data/vendor/libgit2/src/libgit2/trailer.c +6 -6
  347. data/vendor/libgit2/src/libgit2/transaction.c +26 -20
  348. data/vendor/libgit2/src/libgit2/transaction.h +4 -1
  349. data/vendor/libgit2/src/libgit2/transport.c +4 -1
  350. data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +2 -0
  351. data/vendor/libgit2/src/libgit2/transports/credential.c +2 -2
  352. data/vendor/libgit2/src/libgit2/transports/git.c +1 -1
  353. data/vendor/libgit2/src/libgit2/transports/http.c +5 -6
  354. data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
  355. data/vendor/libgit2/src/libgit2/transports/httpclient.c +124 -81
  356. data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
  357. data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
  358. data/vendor/libgit2/src/libgit2/transports/local.c +16 -8
  359. data/vendor/libgit2/src/libgit2/transports/smart.c +25 -13
  360. data/vendor/libgit2/src/libgit2/transports/smart.h +4 -2
  361. data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +7 -6
  362. data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +55 -10
  363. data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
  364. data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +386 -0
  365. data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
  366. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1132 -0
  367. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
  368. data/vendor/libgit2/src/libgit2/transports/winhttp.c +35 -7
  369. data/vendor/libgit2/src/libgit2/tree.c +34 -26
  370. data/vendor/libgit2/src/libgit2/tree.h +3 -2
  371. data/vendor/libgit2/src/libgit2/worktree.c +14 -17
  372. data/vendor/libgit2/src/util/CMakeLists.txt +7 -10
  373. data/vendor/libgit2/src/util/alloc.c +4 -1
  374. data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
  375. data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
  376. data/vendor/libgit2/src/util/allocators/stdalloc.c +0 -10
  377. data/vendor/libgit2/src/util/array.h +18 -17
  378. data/vendor/libgit2/src/util/cc-compat.h +2 -0
  379. data/vendor/libgit2/src/util/ctype_compat.h +70 -0
  380. data/vendor/libgit2/src/util/date.c +22 -14
  381. data/vendor/libgit2/src/util/date.h +12 -0
  382. data/vendor/libgit2/src/util/errors.c +401 -0
  383. data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
  384. data/vendor/libgit2/src/util/fs_path.c +81 -10
  385. data/vendor/libgit2/src/util/fs_path.h +39 -10
  386. data/vendor/libgit2/src/util/futils.c +6 -5
  387. data/vendor/libgit2/src/util/futils.h +24 -7
  388. data/vendor/libgit2/src/util/git2_features.h.in +12 -1
  389. data/vendor/libgit2/src/util/git2_util.h +6 -0
  390. data/vendor/libgit2/src/util/hash/builtin.c +14 -4
  391. data/vendor/libgit2/src/util/hash/openssl.c +148 -0
  392. data/vendor/libgit2/src/util/hash/openssl.h +17 -1
  393. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +8 -6
  394. data/vendor/libgit2/src/util/hash/sha.h +4 -1
  395. data/vendor/libgit2/src/util/hashmap.h +425 -0
  396. data/vendor/libgit2/src/util/hashmap_str.h +43 -0
  397. data/vendor/libgit2/src/util/integer.h +3 -1
  398. data/vendor/libgit2/src/util/net.c +17 -11
  399. data/vendor/libgit2/src/util/net.h +2 -0
  400. data/vendor/libgit2/src/util/pool.c +1 -1
  401. data/vendor/libgit2/src/util/pool.h +5 -0
  402. data/vendor/libgit2/src/util/pqueue.h +1 -1
  403. data/vendor/libgit2/src/util/process.h +223 -0
  404. data/vendor/libgit2/src/util/rand.c +1 -7
  405. data/vendor/libgit2/src/util/regexp.c +28 -13
  406. data/vendor/libgit2/src/util/regexp.h +7 -2
  407. data/vendor/libgit2/src/util/runtime.c +2 -2
  408. data/vendor/libgit2/src/util/sortedcache.c +14 -13
  409. data/vendor/libgit2/src/util/sortedcache.h +3 -3
  410. data/vendor/libgit2/src/util/str.c +20 -8
  411. data/vendor/libgit2/src/util/str.h +5 -3
  412. data/vendor/libgit2/src/util/strlist.c +108 -0
  413. data/vendor/libgit2/src/util/strlist.h +36 -0
  414. data/vendor/libgit2/src/util/unix/posix.h +0 -2
  415. data/vendor/libgit2/src/util/unix/process.c +706 -0
  416. data/vendor/libgit2/src/util/unix/realpath.c +23 -5
  417. data/vendor/libgit2/src/util/util.c +18 -5
  418. data/vendor/libgit2/src/util/util.h +5 -38
  419. data/vendor/libgit2/src/util/vector.c +3 -3
  420. data/vendor/libgit2/src/util/vector.h +2 -2
  421. data/vendor/libgit2/src/util/win32/path_w32.c +81 -5
  422. data/vendor/libgit2/src/util/win32/posix_w32.c +29 -6
  423. data/vendor/libgit2/src/util/win32/process.c +522 -0
  424. metadata +102 -67
  425. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
  426. data/vendor/libgit2/deps/http-parser/COPYING +0 -23
  427. data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
  428. data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
  429. data/vendor/libgit2/deps/pcre/CMakeLists.txt +0 -140
  430. data/vendor/libgit2/deps/pcre/COPYING +0 -5
  431. data/vendor/libgit2/deps/pcre/LICENCE +0 -93
  432. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +0 -22
  433. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +0 -17
  434. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +0 -58
  435. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +0 -29
  436. data/vendor/libgit2/deps/pcre/config.h.in +0 -57
  437. data/vendor/libgit2/deps/pcre/pcre.h +0 -641
  438. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +0 -319
  439. data/vendor/libgit2/deps/pcre/pcre_compile.c +0 -9815
  440. data/vendor/libgit2/deps/pcre/pcre_config.c +0 -190
  441. data/vendor/libgit2/deps/pcre/pcre_exec.c +0 -7173
  442. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +0 -245
  443. data/vendor/libgit2/deps/pcre/pcre_get.c +0 -669
  444. data/vendor/libgit2/deps/pcre/pcre_globals.c +0 -86
  445. data/vendor/libgit2/deps/pcre/pcre_internal.h +0 -2787
  446. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +0 -11913
  447. data/vendor/libgit2/deps/pcre/pcre_maketables.c +0 -156
  448. data/vendor/libgit2/deps/pcre/pcre_printint.c +0 -834
  449. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +0 -211
  450. data/vendor/libgit2/deps/pcre/pcre_study.c +0 -1686
  451. data/vendor/libgit2/deps/pcre/pcre_tables.c +0 -727
  452. data/vendor/libgit2/deps/pcre/pcre_ucd.c +0 -3644
  453. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +0 -301
  454. data/vendor/libgit2/deps/pcre/pcre_version.c +0 -98
  455. data/vendor/libgit2/deps/pcre/pcre_xclass.c +0 -268
  456. data/vendor/libgit2/deps/pcre/pcreposix.c +0 -420
  457. data/vendor/libgit2/deps/pcre/pcreposix.h +0 -117
  458. data/vendor/libgit2/deps/pcre/ucp.h +0 -224
  459. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  460. data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
  461. data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
  462. data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
  463. data/vendor/libgit2/src/libgit2/errors.c +0 -293
  464. data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
  465. data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
  466. data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
  467. data/vendor/libgit2/src/libgit2/offmap.c +0 -101
  468. data/vendor/libgit2/src/libgit2/offmap.h +0 -133
  469. data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
  470. data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
  471. data/vendor/libgit2/src/libgit2/threadstate.c +0 -97
  472. data/vendor/libgit2/src/libgit2/threadstate.h +0 -22
  473. data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
  474. data/vendor/libgit2/src/util/khash.h +0 -615
  475. data/vendor/libgit2/src/util/strmap.c +0 -100
  476. data/vendor/libgit2/src/util/strmap.h +0 -131
  477. /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
@@ -1,224 +0,0 @@
1
- /*************************************************
2
- * Unicode Property Table handler *
3
- *************************************************/
4
-
5
- #ifndef _UCP_H
6
- #define _UCP_H
7
-
8
- /* This file contains definitions of the property values that are returned by
9
- the UCD access macros. New values that are added for new releases of Unicode
10
- should always be at the end of each enum, for backwards compatibility.
11
-
12
- IMPORTANT: Note also that the specific numeric values of the enums have to be
13
- the same as the values that are generated by the maint/MultiStage2.py script,
14
- where the equivalent property descriptive names are listed in vectors.
15
-
16
- ALSO: The specific values of the first two enums are assumed for the table
17
- called catposstab in pcre_compile.c. */
18
-
19
- /* These are the general character categories. */
20
-
21
- enum {
22
- ucp_C, /* Other */
23
- ucp_L, /* Letter */
24
- ucp_M, /* Mark */
25
- ucp_N, /* Number */
26
- ucp_P, /* Punctuation */
27
- ucp_S, /* Symbol */
28
- ucp_Z /* Separator */
29
- };
30
-
31
- /* These are the particular character categories. */
32
-
33
- enum {
34
- ucp_Cc, /* Control */
35
- ucp_Cf, /* Format */
36
- ucp_Cn, /* Unassigned */
37
- ucp_Co, /* Private use */
38
- ucp_Cs, /* Surrogate */
39
- ucp_Ll, /* Lower case letter */
40
- ucp_Lm, /* Modifier letter */
41
- ucp_Lo, /* Other letter */
42
- ucp_Lt, /* Title case letter */
43
- ucp_Lu, /* Upper case letter */
44
- ucp_Mc, /* Spacing mark */
45
- ucp_Me, /* Enclosing mark */
46
- ucp_Mn, /* Non-spacing mark */
47
- ucp_Nd, /* Decimal number */
48
- ucp_Nl, /* Letter number */
49
- ucp_No, /* Other number */
50
- ucp_Pc, /* Connector punctuation */
51
- ucp_Pd, /* Dash punctuation */
52
- ucp_Pe, /* Close punctuation */
53
- ucp_Pf, /* Final punctuation */
54
- ucp_Pi, /* Initial punctuation */
55
- ucp_Po, /* Other punctuation */
56
- ucp_Ps, /* Open punctuation */
57
- ucp_Sc, /* Currency symbol */
58
- ucp_Sk, /* Modifier symbol */
59
- ucp_Sm, /* Mathematical symbol */
60
- ucp_So, /* Other symbol */
61
- ucp_Zl, /* Line separator */
62
- ucp_Zp, /* Paragraph separator */
63
- ucp_Zs /* Space separator */
64
- };
65
-
66
- /* These are grapheme break properties. Note that the code for processing them
67
- assumes that the values are less than 16. If more values are added that take
68
- the number to 16 or more, the code will have to be rewritten. */
69
-
70
- enum {
71
- ucp_gbCR, /* 0 */
72
- ucp_gbLF, /* 1 */
73
- ucp_gbControl, /* 2 */
74
- ucp_gbExtend, /* 3 */
75
- ucp_gbPrepend, /* 4 */
76
- ucp_gbSpacingMark, /* 5 */
77
- ucp_gbL, /* 6 Hangul syllable type L */
78
- ucp_gbV, /* 7 Hangul syllable type V */
79
- ucp_gbT, /* 8 Hangul syllable type T */
80
- ucp_gbLV, /* 9 Hangul syllable type LV */
81
- ucp_gbLVT, /* 10 Hangul syllable type LVT */
82
- ucp_gbRegionalIndicator, /* 11 */
83
- ucp_gbOther /* 12 */
84
- };
85
-
86
- /* These are the script identifications. */
87
-
88
- enum {
89
- ucp_Arabic,
90
- ucp_Armenian,
91
- ucp_Bengali,
92
- ucp_Bopomofo,
93
- ucp_Braille,
94
- ucp_Buginese,
95
- ucp_Buhid,
96
- ucp_Canadian_Aboriginal,
97
- ucp_Cherokee,
98
- ucp_Common,
99
- ucp_Coptic,
100
- ucp_Cypriot,
101
- ucp_Cyrillic,
102
- ucp_Deseret,
103
- ucp_Devanagari,
104
- ucp_Ethiopic,
105
- ucp_Georgian,
106
- ucp_Glagolitic,
107
- ucp_Gothic,
108
- ucp_Greek,
109
- ucp_Gujarati,
110
- ucp_Gurmukhi,
111
- ucp_Han,
112
- ucp_Hangul,
113
- ucp_Hanunoo,
114
- ucp_Hebrew,
115
- ucp_Hiragana,
116
- ucp_Inherited,
117
- ucp_Kannada,
118
- ucp_Katakana,
119
- ucp_Kharoshthi,
120
- ucp_Khmer,
121
- ucp_Lao,
122
- ucp_Latin,
123
- ucp_Limbu,
124
- ucp_Linear_B,
125
- ucp_Malayalam,
126
- ucp_Mongolian,
127
- ucp_Myanmar,
128
- ucp_New_Tai_Lue,
129
- ucp_Ogham,
130
- ucp_Old_Italic,
131
- ucp_Old_Persian,
132
- ucp_Oriya,
133
- ucp_Osmanya,
134
- ucp_Runic,
135
- ucp_Shavian,
136
- ucp_Sinhala,
137
- ucp_Syloti_Nagri,
138
- ucp_Syriac,
139
- ucp_Tagalog,
140
- ucp_Tagbanwa,
141
- ucp_Tai_Le,
142
- ucp_Tamil,
143
- ucp_Telugu,
144
- ucp_Thaana,
145
- ucp_Thai,
146
- ucp_Tibetan,
147
- ucp_Tifinagh,
148
- ucp_Ugaritic,
149
- ucp_Yi,
150
- /* New for Unicode 5.0: */
151
- ucp_Balinese,
152
- ucp_Cuneiform,
153
- ucp_Nko,
154
- ucp_Phags_Pa,
155
- ucp_Phoenician,
156
- /* New for Unicode 5.1: */
157
- ucp_Carian,
158
- ucp_Cham,
159
- ucp_Kayah_Li,
160
- ucp_Lepcha,
161
- ucp_Lycian,
162
- ucp_Lydian,
163
- ucp_Ol_Chiki,
164
- ucp_Rejang,
165
- ucp_Saurashtra,
166
- ucp_Sundanese,
167
- ucp_Vai,
168
- /* New for Unicode 5.2: */
169
- ucp_Avestan,
170
- ucp_Bamum,
171
- ucp_Egyptian_Hieroglyphs,
172
- ucp_Imperial_Aramaic,
173
- ucp_Inscriptional_Pahlavi,
174
- ucp_Inscriptional_Parthian,
175
- ucp_Javanese,
176
- ucp_Kaithi,
177
- ucp_Lisu,
178
- ucp_Meetei_Mayek,
179
- ucp_Old_South_Arabian,
180
- ucp_Old_Turkic,
181
- ucp_Samaritan,
182
- ucp_Tai_Tham,
183
- ucp_Tai_Viet,
184
- /* New for Unicode 6.0.0: */
185
- ucp_Batak,
186
- ucp_Brahmi,
187
- ucp_Mandaic,
188
- /* New for Unicode 6.1.0: */
189
- ucp_Chakma,
190
- ucp_Meroitic_Cursive,
191
- ucp_Meroitic_Hieroglyphs,
192
- ucp_Miao,
193
- ucp_Sharada,
194
- ucp_Sora_Sompeng,
195
- ucp_Takri,
196
- /* New for Unicode 7.0.0: */
197
- ucp_Bassa_Vah,
198
- ucp_Caucasian_Albanian,
199
- ucp_Duployan,
200
- ucp_Elbasan,
201
- ucp_Grantha,
202
- ucp_Khojki,
203
- ucp_Khudawadi,
204
- ucp_Linear_A,
205
- ucp_Mahajani,
206
- ucp_Manichaean,
207
- ucp_Mende_Kikakui,
208
- ucp_Modi,
209
- ucp_Mro,
210
- ucp_Nabataean,
211
- ucp_Old_North_Arabian,
212
- ucp_Old_Permic,
213
- ucp_Pahawh_Hmong,
214
- ucp_Palmyrene,
215
- ucp_Psalter_Pahlavi,
216
- ucp_Pau_Cin_Hau,
217
- ucp_Siddham,
218
- ucp_Tirhuta,
219
- ucp_Warang_Citi
220
- };
221
-
222
- #endif
223
-
224
- /* End of ucp.h */
@@ -1,27 +0,0 @@
1
- Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
2
-
3
- This software is provided 'as-is', without any express or implied
4
- warranty. In no event will the authors be held liable for any
5
- damages arising from the use of this software.
6
-
7
- Permission is granted to anyone to use this software for any
8
- purpose, including commercial applications, and to alter it and
9
- redistribute it freely, subject to the following restrictions:
10
-
11
- 1. The origin of this software must not be misrepresented; you
12
- must not claim that you wrote the original software. If you
13
- use this software in a product, an acknowledgment in the
14
- product documentation would be appreciated but is not
15
- required.
16
-
17
- 2. Altered source versions must be plainly marked as such, and
18
- must not be misrepresented as being the original software.
19
-
20
- 3. This notice may not be removed or altered from any source
21
- distribution.
22
-
23
- Jean-loup Gailly Mark Adler
24
-
25
- The data format used by the zlib library is described by RFCs
26
- (Request for Comments) 1950 to 1952 in the files rfc1950 (zlib
27
- format), rfc1951 (deflate format) and rfc1952 (gzip format).
@@ -1,21 +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
- #ifndef INCLUDE_sys_git_reflog_h__
8
- #define INCLUDE_sys_git_reflog_h__
9
-
10
- #include "git2/common.h"
11
- #include "git2/types.h"
12
- #include "git2/oid.h"
13
-
14
- GIT_BEGIN_DECL
15
-
16
- GIT_EXTERN(git_reflog_entry *) git_reflog_entry__alloc(void);
17
- GIT_EXTERN(void) git_reflog_entry__free(git_reflog_entry *entry);
18
-
19
- GIT_END_DECL
20
-
21
- #endif
@@ -1,237 +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 "config_entries.h"
9
-
10
- typedef struct config_entry_list {
11
- struct config_entry_list *next;
12
- struct config_entry_list *last;
13
- git_config_entry *entry;
14
- } config_entry_list;
15
-
16
- typedef struct {
17
- git_config_entry *entry;
18
- bool multivar;
19
- } config_entry_map_head;
20
-
21
- typedef struct config_entries_iterator {
22
- git_config_iterator parent;
23
- git_config_entries *entries;
24
- config_entry_list *head;
25
- } config_entries_iterator;
26
-
27
- struct git_config_entries {
28
- git_refcount rc;
29
- git_strmap *map;
30
- config_entry_list *list;
31
- };
32
-
33
- int git_config_entries_new(git_config_entries **out)
34
- {
35
- git_config_entries *entries;
36
- int error;
37
-
38
- entries = git__calloc(1, sizeof(git_config_entries));
39
- GIT_ERROR_CHECK_ALLOC(entries);
40
- GIT_REFCOUNT_INC(entries);
41
-
42
- if ((error = git_strmap_new(&entries->map)) < 0)
43
- git__free(entries);
44
- else
45
- *out = entries;
46
-
47
- return error;
48
- }
49
-
50
- int git_config_entries_dup_entry(git_config_entries *entries, const git_config_entry *entry)
51
- {
52
- git_config_entry *duplicated;
53
- int error;
54
-
55
- duplicated = git__calloc(1, sizeof(git_config_entry));
56
- GIT_ERROR_CHECK_ALLOC(duplicated);
57
-
58
- duplicated->name = git__strdup(entry->name);
59
- GIT_ERROR_CHECK_ALLOC(duplicated->name);
60
-
61
- if (entry->value) {
62
- duplicated->value = git__strdup(entry->value);
63
- GIT_ERROR_CHECK_ALLOC(duplicated->value);
64
- }
65
- duplicated->level = entry->level;
66
- duplicated->include_depth = entry->include_depth;
67
-
68
- if ((error = git_config_entries_append(entries, duplicated)) < 0)
69
- goto out;
70
-
71
- out:
72
- if (error && duplicated) {
73
- git__free((char *) duplicated->name);
74
- git__free((char *) duplicated->value);
75
- git__free(duplicated);
76
- }
77
- return error;
78
- }
79
-
80
- int git_config_entries_dup(git_config_entries **out, git_config_entries *entries)
81
- {
82
- git_config_entries *result = NULL;
83
- config_entry_list *head;
84
- int error;
85
-
86
- if ((error = git_config_entries_new(&result)) < 0)
87
- goto out;
88
-
89
- for (head = entries->list; head; head = head->next)
90
- if ((git_config_entries_dup_entry(result, head->entry)) < 0)
91
- goto out;
92
-
93
- *out = result;
94
- result = NULL;
95
-
96
- out:
97
- git_config_entries_free(result);
98
- return error;
99
- }
100
-
101
- void git_config_entries_incref(git_config_entries *entries)
102
- {
103
- GIT_REFCOUNT_INC(entries);
104
- }
105
-
106
- static void config_entries_free(git_config_entries *entries)
107
- {
108
- config_entry_list *list = NULL, *next;
109
- config_entry_map_head *head;
110
-
111
- git_strmap_foreach_value(entries->map, head,
112
- git__free((char *) head->entry->name); git__free(head)
113
- );
114
- git_strmap_free(entries->map);
115
-
116
- list = entries->list;
117
- while (list != NULL) {
118
- next = list->next;
119
- git__free((char *) list->entry->value);
120
- git__free(list->entry);
121
- git__free(list);
122
- list = next;
123
- }
124
-
125
- git__free(entries);
126
- }
127
-
128
- void git_config_entries_free(git_config_entries *entries)
129
- {
130
- if (entries)
131
- GIT_REFCOUNT_DEC(entries, config_entries_free);
132
- }
133
-
134
- int git_config_entries_append(git_config_entries *entries, git_config_entry *entry)
135
- {
136
- config_entry_list *list_head;
137
- config_entry_map_head *map_head;
138
-
139
- if ((map_head = git_strmap_get(entries->map, entry->name)) != NULL) {
140
- map_head->multivar = true;
141
- /*
142
- * This is a micro-optimization for configuration files
143
- * with a lot of same keys. As for multivars the entry's
144
- * key will be the same for all entries, we can just free
145
- * all except the first entry's name and just re-use it.
146
- */
147
- git__free((char *) entry->name);
148
- entry->name = map_head->entry->name;
149
- } else {
150
- map_head = git__calloc(1, sizeof(*map_head));
151
- if ((git_strmap_set(entries->map, entry->name, map_head)) < 0)
152
- return -1;
153
- }
154
- map_head->entry = entry;
155
-
156
- list_head = git__calloc(1, sizeof(config_entry_list));
157
- GIT_ERROR_CHECK_ALLOC(list_head);
158
- list_head->entry = entry;
159
-
160
- if (entries->list)
161
- entries->list->last->next = list_head;
162
- else
163
- entries->list = list_head;
164
- entries->list->last = list_head;
165
-
166
- return 0;
167
- }
168
-
169
- int git_config_entries_get(git_config_entry **out, git_config_entries *entries, const char *key)
170
- {
171
- config_entry_map_head *entry;
172
- if ((entry = git_strmap_get(entries->map, key)) == NULL)
173
- return GIT_ENOTFOUND;
174
- *out = entry->entry;
175
- return 0;
176
- }
177
-
178
- int git_config_entries_get_unique(git_config_entry **out, git_config_entries *entries, const char *key)
179
- {
180
- config_entry_map_head *entry;
181
-
182
- if ((entry = git_strmap_get(entries->map, key)) == NULL)
183
- return GIT_ENOTFOUND;
184
-
185
- if (entry->multivar) {
186
- git_error_set(GIT_ERROR_CONFIG, "entry is not unique due to being a multivar");
187
- return -1;
188
- }
189
-
190
- if (entry->entry->include_depth) {
191
- git_error_set(GIT_ERROR_CONFIG, "entry is not unique due to being included");
192
- return -1;
193
- }
194
-
195
- *out = entry->entry;
196
-
197
- return 0;
198
- }
199
-
200
- static void config_iterator_free(git_config_iterator *iter)
201
- {
202
- config_entries_iterator *it = (config_entries_iterator *) iter;
203
- git_config_entries_free(it->entries);
204
- git__free(it);
205
- }
206
-
207
- static int config_iterator_next(
208
- git_config_entry **entry,
209
- git_config_iterator *iter)
210
- {
211
- config_entries_iterator *it = (config_entries_iterator *) iter;
212
-
213
- if (!it->head)
214
- return GIT_ITEROVER;
215
-
216
- *entry = it->head->entry;
217
- it->head = it->head->next;
218
-
219
- return 0;
220
- }
221
-
222
- int git_config_entries_iterator_new(git_config_iterator **out, git_config_entries *entries)
223
- {
224
- config_entries_iterator *it;
225
-
226
- it = git__calloc(1, sizeof(config_entries_iterator));
227
- GIT_ERROR_CHECK_ALLOC(it);
228
- it->parent.next = config_iterator_next;
229
- it->parent.free = config_iterator_free;
230
- it->head = entries->list;
231
- it->entries = entries;
232
-
233
- git_config_entries_incref(entries);
234
- *out = &it->parent;
235
-
236
- return 0;
237
- }
@@ -1,24 +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 "common.h"
9
-
10
- #include "git2/sys/config.h"
11
- #include "config.h"
12
-
13
- typedef struct git_config_entries git_config_entries;
14
-
15
- int git_config_entries_new(git_config_entries **out);
16
- int git_config_entries_dup(git_config_entries **out, git_config_entries *entries);
17
- int git_config_entries_dup_entry(git_config_entries *entries, const git_config_entry *entry);
18
- void git_config_entries_incref(git_config_entries *entries);
19
- void git_config_entries_free(git_config_entries *entries);
20
- /* Add or append the new config option */
21
- int git_config_entries_append(git_config_entries *entries, git_config_entry *entry);
22
- int git_config_entries_get(git_config_entry **out, git_config_entries *entries, const char *key);
23
- int git_config_entries_get_unique(git_config_entry **out, git_config_entries *entries, const char *key);
24
- int git_config_entries_iterator_new(git_config_iterator **out, git_config_entries *entries);