rugged 1.3.2 → 1.6.2

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 (547) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -2
  3. data/ext/rugged/extconf.rb +7 -4
  4. data/ext/rugged/rugged.c +16 -0
  5. data/ext/rugged/rugged.h +4 -0
  6. data/ext/rugged/rugged_blame.c +2 -0
  7. data/ext/rugged/rugged_blob.c +3 -0
  8. data/ext/rugged/rugged_commit.c +1 -0
  9. data/ext/rugged/rugged_config.c +9 -2
  10. data/ext/rugged/rugged_diff.c +1 -0
  11. data/ext/rugged/rugged_index.c +2 -0
  12. data/ext/rugged/rugged_patch.c +1 -0
  13. data/ext/rugged/rugged_rebase.c +1 -0
  14. data/ext/rugged/rugged_reference.c +1 -0
  15. data/ext/rugged/rugged_remote.c +28 -10
  16. data/ext/rugged/rugged_repo.c +7 -9
  17. data/ext/rugged/rugged_revwalk.c +5 -1
  18. data/ext/rugged/rugged_settings.c +5 -0
  19. data/ext/rugged/rugged_submodule.c +1 -0
  20. data/ext/rugged/rugged_tag.c +1 -0
  21. data/ext/rugged/rugged_tree.c +4 -0
  22. data/lib/rugged/index.rb +1 -1
  23. data/lib/rugged/tree.rb +5 -1
  24. data/lib/rugged/version.rb +1 -1
  25. data/vendor/libgit2/CMakeLists.txt +132 -288
  26. data/vendor/libgit2/COPYING +106 -19
  27. data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
  28. data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
  29. data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
  30. data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
  31. data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
  32. data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
  33. data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
  34. data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
  35. data/vendor/libgit2/cmake/{FindHTTP_Parser.cmake → FindHTTPParser.cmake} +17 -17
  36. data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
  37. data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
  38. data/vendor/libgit2/cmake/FindPCRE.cmake +12 -13
  39. data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
  40. data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
  41. data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
  42. data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
  43. data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
  44. data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
  45. data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
  46. data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
  47. data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
  48. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
  49. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +19 -0
  50. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
  51. data/vendor/libgit2/cmake/SelectHashes.cmake +91 -53
  52. data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
  53. data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
  54. data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
  55. data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
  56. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
  57. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
  58. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +3 -1
  59. data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
  60. data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
  61. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
  62. data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
  63. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
  64. data/vendor/libgit2/deps/zlib/adler32.c +7 -0
  65. data/vendor/libgit2/deps/zlib/crc32.c +975 -288
  66. data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
  67. data/vendor/libgit2/deps/zlib/deflate.c +83 -31
  68. data/vendor/libgit2/deps/zlib/deflate.h +12 -15
  69. data/vendor/libgit2/deps/zlib/gzguts.h +3 -2
  70. data/vendor/libgit2/deps/zlib/infback.c +2 -1
  71. data/vendor/libgit2/deps/zlib/inffast.c +14 -14
  72. data/vendor/libgit2/deps/zlib/inflate.c +39 -8
  73. data/vendor/libgit2/deps/zlib/inflate.h +3 -2
  74. data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
  75. data/vendor/libgit2/deps/zlib/trees.c +27 -48
  76. data/vendor/libgit2/deps/zlib/zlib.h +126 -100
  77. data/vendor/libgit2/deps/zlib/zutil.c +2 -2
  78. data/vendor/libgit2/deps/zlib/zutil.h +12 -9
  79. data/vendor/libgit2/include/git2/apply.h +16 -2
  80. data/vendor/libgit2/include/git2/attr.h +11 -2
  81. data/vendor/libgit2/include/git2/blame.h +4 -1
  82. data/vendor/libgit2/include/git2/blob.h +14 -1
  83. data/vendor/libgit2/include/git2/branch.h +4 -2
  84. data/vendor/libgit2/include/git2/buffer.h +18 -78
  85. data/vendor/libgit2/include/git2/cert.h +2 -2
  86. data/vendor/libgit2/include/git2/checkout.h +5 -2
  87. data/vendor/libgit2/include/git2/clone.h +3 -3
  88. data/vendor/libgit2/include/git2/commit.h +2 -0
  89. data/vendor/libgit2/include/git2/common.h +28 -7
  90. data/vendor/libgit2/include/git2/config.h +25 -9
  91. data/vendor/libgit2/include/git2/credential.h +2 -1
  92. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  93. data/vendor/libgit2/include/git2/deprecated.h +9 -1
  94. data/vendor/libgit2/include/git2/describe.h +7 -2
  95. data/vendor/libgit2/include/git2/diff.h +18 -10
  96. data/vendor/libgit2/include/git2/email.h +1 -1
  97. data/vendor/libgit2/include/git2/errors.h +17 -3
  98. data/vendor/libgit2/include/git2/experimental.h +20 -0
  99. data/vendor/libgit2/include/git2/filter.h +7 -2
  100. data/vendor/libgit2/include/git2/graph.h +1 -0
  101. data/vendor/libgit2/include/git2/ignore.h +1 -1
  102. data/vendor/libgit2/include/git2/index.h +11 -5
  103. data/vendor/libgit2/include/git2/indexer.h +48 -0
  104. data/vendor/libgit2/include/git2/merge.h +24 -4
  105. data/vendor/libgit2/include/git2/message.h +2 -0
  106. data/vendor/libgit2/include/git2/object.h +49 -0
  107. data/vendor/libgit2/include/git2/odb.h +94 -13
  108. data/vendor/libgit2/include/git2/odb_backend.h +107 -19
  109. data/vendor/libgit2/include/git2/oid.h +115 -15
  110. data/vendor/libgit2/include/git2/pack.h +24 -8
  111. data/vendor/libgit2/include/git2/patch.h +8 -0
  112. data/vendor/libgit2/include/git2/pathspec.h +1 -1
  113. data/vendor/libgit2/include/git2/proxy.h +1 -1
  114. data/vendor/libgit2/include/git2/rebase.h +9 -1
  115. data/vendor/libgit2/include/git2/refdb.h +3 -0
  116. data/vendor/libgit2/include/git2/reflog.h +1 -1
  117. data/vendor/libgit2/include/git2/refs.h +2 -2
  118. data/vendor/libgit2/include/git2/remote.h +184 -37
  119. data/vendor/libgit2/include/git2/repository.h +34 -10
  120. data/vendor/libgit2/include/git2/reset.h +2 -2
  121. data/vendor/libgit2/include/git2/revparse.h +1 -1
  122. data/vendor/libgit2/include/git2/revwalk.h +4 -1
  123. data/vendor/libgit2/include/git2/signature.h +1 -1
  124. data/vendor/libgit2/include/git2/stash.h +61 -7
  125. data/vendor/libgit2/include/git2/status.h +14 -5
  126. data/vendor/libgit2/include/git2/strarray.h +0 -13
  127. data/vendor/libgit2/include/git2/submodule.h +7 -2
  128. data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
  129. data/vendor/libgit2/include/git2/sys/odb_backend.h +3 -6
  130. data/vendor/libgit2/include/git2/sys/remote.h +46 -0
  131. data/vendor/libgit2/include/git2/sys/stream.h +1 -1
  132. data/vendor/libgit2/include/git2/sys/transport.h +46 -39
  133. data/vendor/libgit2/include/git2/tag.h +1 -0
  134. data/vendor/libgit2/include/git2/tree.h +4 -3
  135. data/vendor/libgit2/include/git2/types.h +7 -7
  136. data/vendor/libgit2/include/git2/version.h +27 -6
  137. data/vendor/libgit2/include/git2/worktree.h +12 -2
  138. data/vendor/libgit2/include/git2.h +1 -0
  139. data/vendor/libgit2/src/CMakeLists.txt +177 -419
  140. data/vendor/libgit2/src/README.md +12 -0
  141. data/vendor/libgit2/src/cli/CMakeLists.txt +57 -0
  142. data/vendor/libgit2/src/cli/README.md +26 -0
  143. data/vendor/libgit2/src/cli/cli.h +20 -0
  144. data/vendor/libgit2/src/cli/cmd.c +21 -0
  145. data/vendor/libgit2/src/cli/cmd.h +33 -0
  146. data/vendor/libgit2/src/cli/cmd_cat_file.c +204 -0
  147. data/vendor/libgit2/src/cli/cmd_clone.c +176 -0
  148. data/vendor/libgit2/src/cli/cmd_hash_object.c +154 -0
  149. data/vendor/libgit2/src/cli/cmd_help.c +86 -0
  150. data/vendor/libgit2/src/cli/error.h +51 -0
  151. data/vendor/libgit2/src/cli/main.c +106 -0
  152. data/vendor/libgit2/src/cli/opt.c +669 -0
  153. data/vendor/libgit2/src/cli/opt.h +349 -0
  154. data/vendor/libgit2/src/cli/opt_usage.c +194 -0
  155. data/vendor/libgit2/src/cli/opt_usage.h +35 -0
  156. data/vendor/libgit2/src/cli/progress.c +345 -0
  157. data/vendor/libgit2/src/cli/progress.h +117 -0
  158. data/vendor/libgit2/src/cli/sighandler.h +20 -0
  159. data/vendor/libgit2/src/cli/unix/sighandler.c +36 -0
  160. data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
  161. data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
  162. data/vendor/libgit2/src/libgit2/CMakeLists.txt +141 -0
  163. data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +1 -1
  164. data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
  165. data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +18 -18
  166. data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
  167. data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +18 -18
  168. data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +18 -18
  169. data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +4 -4
  170. data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +18 -13
  171. data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +2 -0
  172. data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -1
  173. data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
  174. data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
  175. data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
  176. data/vendor/libgit2/src/{branch.h → libgit2/branch.h} +15 -3
  177. data/vendor/libgit2/src/libgit2/buf.c +126 -0
  178. data/vendor/libgit2/src/libgit2/buf.h +50 -0
  179. data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +74 -68
  180. data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +13 -13
  181. data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +96 -67
  182. data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +178 -73
  183. data/vendor/libgit2/src/libgit2/commit.h +87 -0
  184. data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +122 -89
  185. data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +14 -4
  186. data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +7 -4
  187. data/vendor/libgit2/src/libgit2/common.h +55 -0
  188. data/vendor/libgit2/src/{config.c → libgit2/config.c} +101 -69
  189. data/vendor/libgit2/src/{config.h → libgit2/config.h} +15 -2
  190. data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +105 -93
  191. data/vendor/libgit2/src/{config_mem.c → libgit2/config_mem.c} +9 -9
  192. data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +27 -23
  193. data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
  194. data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +35 -27
  195. data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +30 -9
  196. data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +2 -4
  197. data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +34 -36
  198. data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +3 -3
  199. data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +44 -26
  200. data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +47 -18
  201. data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
  202. data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +112 -100
  203. data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
  204. data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
  205. data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +13 -8
  206. data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
  207. data/vendor/libgit2/src/{email.c → libgit2/email.c} +55 -39
  208. data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
  209. data/vendor/libgit2/src/{errors.c → libgit2/errors.c} +18 -18
  210. data/vendor/libgit2/src/{errors.h → libgit2/errors.h} +1 -2
  211. data/vendor/libgit2/src/libgit2/experimental.h.in +13 -0
  212. data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +72 -27
  213. data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -1
  214. data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +23 -23
  215. data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +127 -53
  216. data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
  217. data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
  218. data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +35 -34
  219. data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
  220. data/vendor/libgit2/src/{index.c → libgit2/index.c} +91 -90
  221. data/vendor/libgit2/src/{index.h → libgit2/index.h} +6 -3
  222. data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +173 -92
  223. data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +71 -61
  224. data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +5 -5
  225. data/vendor/libgit2/src/{libgit2.c → libgit2/libgit2.c} +46 -11
  226. data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +38 -36
  227. data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +30 -30
  228. data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
  229. data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +2 -2
  230. data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -3
  231. data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
  232. data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +112 -92
  233. data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +5 -4
  234. data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +15 -12
  235. data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +5 -2
  236. data/vendor/libgit2/src/{netops.c → libgit2/netops.c} +1 -2
  237. data/vendor/libgit2/src/{netops.h → libgit2/netops.h} +1 -1
  238. data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +25 -34
  239. data/vendor/libgit2/src/{object.c → libgit2/object.c} +135 -30
  240. data/vendor/libgit2/src/{object.h → libgit2/object.h} +12 -3
  241. data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +228 -81
  242. data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
  243. data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
  244. data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +18 -5
  245. data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +137 -85
  246. data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +136 -90
  247. data/vendor/libgit2/src/libgit2/oid.h +273 -0
  248. data/vendor/libgit2/src/{oidmap.c → libgit2/oidmap.c} +1 -1
  249. data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +56 -30
  250. data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +11 -6
  251. data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +114 -84
  252. data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +31 -16
  253. data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +4 -3
  254. data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
  255. data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +1 -0
  256. data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +27 -11
  257. data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
  258. data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +29 -29
  259. data/vendor/libgit2/src/libgit2/path.c +375 -0
  260. data/vendor/libgit2/src/libgit2/path.h +68 -0
  261. data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +6 -6
  262. data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
  263. data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
  264. data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
  265. data/vendor/libgit2/src/{push.c → libgit2/push.c} +43 -38
  266. data/vendor/libgit2/src/{push.h → libgit2/push.h} +4 -16
  267. data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
  268. data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
  269. data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +119 -107
  270. data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +506 -197
  271. data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +7 -5
  272. data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +1 -2
  273. data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +34 -32
  274. data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +2 -2
  275. data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +32 -37
  276. data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +5 -2
  277. data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +718 -420
  278. data/vendor/libgit2/src/libgit2/remote.h +100 -0
  279. data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +629 -386
  280. data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +20 -9
  281. data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
  282. data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +14 -14
  283. data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +71 -42
  284. data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +12 -8
  285. data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +12 -6
  286. data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -1
  287. data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +235 -61
  288. data/vendor/libgit2/src/{status.c → libgit2/status.c} +4 -1
  289. data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
  290. data/vendor/libgit2/src/libgit2/strarray.h +25 -0
  291. data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +8 -6
  292. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +1 -1
  293. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +7 -3
  294. data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +3 -3
  295. data/vendor/libgit2/src/{streams → libgit2/streams}/socket.c +4 -1
  296. data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +177 -161
  297. data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +1 -1
  298. data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
  299. data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +53 -18
  300. data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +73 -42
  301. data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
  302. data/vendor/libgit2/src/{threadstate.c → libgit2/threadstate.c} +3 -3
  303. data/vendor/libgit2/src/{threadstate.h → libgit2/threadstate.h} +2 -2
  304. data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
  305. data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
  306. data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +1 -1
  307. data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +1 -1
  308. data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +10 -10
  309. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
  310. data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +2 -3
  311. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.c +12 -13
  312. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.c +10 -10
  313. data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +0 -1
  314. data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +9 -11
  315. data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +41 -20
  316. data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +2 -3
  317. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +75 -66
  318. data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
  319. data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +138 -116
  320. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +92 -133
  321. data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +35 -32
  322. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +177 -65
  323. data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +97 -49
  324. data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.c +365 -198
  325. data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +58 -59
  326. data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +8 -8
  327. data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +2 -2
  328. data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +93 -83
  329. data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +4 -4
  330. data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +121 -94
  331. data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
  332. data/vendor/libgit2/src/libgit2/xdiff/git-xdiff.h +53 -0
  333. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiff.h +15 -15
  334. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.c +134 -108
  335. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.c +23 -7
  336. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xhistogram.c +87 -78
  337. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xinclude.h +1 -12
  338. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmerge.c +104 -117
  339. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xpatience.c +6 -17
  340. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.c +15 -20
  341. data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.c +18 -7
  342. data/vendor/libgit2/src/util/CMakeLists.txt +80 -0
  343. data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.h +1 -1
  344. data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
  345. data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
  346. data/vendor/libgit2/src/{array.h → util/array.h} +1 -1
  347. data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
  348. data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +1 -1
  349. data/vendor/libgit2/src/{date.c → util/date.c} +14 -20
  350. data/vendor/libgit2/src/util/date.h +33 -0
  351. data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +29 -29
  352. data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +2 -2
  353. data/vendor/libgit2/src/{path.c → util/fs_path.c} +453 -647
  354. data/vendor/libgit2/src/{path.h → util/fs_path.h} +221 -188
  355. data/vendor/libgit2/src/{futils.c → util/futils.c} +135 -90
  356. data/vendor/libgit2/src/{futils.h → util/futils.h} +28 -15
  357. data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +15 -1
  358. data/vendor/libgit2/src/{common.h → util/git2_util.h} +20 -59
  359. data/vendor/libgit2/src/util/hash/builtin.c +53 -0
  360. data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
  361. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +3 -3
  362. data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
  363. data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
  364. data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
  365. data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
  366. data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
  367. data/vendor/libgit2/src/util/hash/openssl.c +195 -0
  368. data/vendor/libgit2/src/util/hash/openssl.h +45 -0
  369. data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
  370. data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
  371. data/vendor/libgit2/src/util/hash/sha.h +70 -0
  372. data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
  373. data/vendor/libgit2/src/util/hash/win32.c +549 -0
  374. data/vendor/libgit2/src/util/hash/win32.h +60 -0
  375. data/vendor/libgit2/src/util/hash.c +158 -0
  376. data/vendor/libgit2/src/util/hash.h +61 -0
  377. data/vendor/libgit2/src/{khash.h → util/khash.h} +1 -1
  378. data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
  379. data/vendor/libgit2/src/util/net.c +1003 -0
  380. data/vendor/libgit2/src/{net.h → util/net.h} +18 -4
  381. data/vendor/libgit2/src/{pool.h → util/pool.h} +1 -1
  382. data/vendor/libgit2/src/{posix.c → util/posix.c} +3 -3
  383. data/vendor/libgit2/src/{posix.h → util/posix.h} +4 -1
  384. data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +2 -2
  385. data/vendor/libgit2/src/util/rand.c +234 -0
  386. data/vendor/libgit2/src/util/rand.h +37 -0
  387. data/vendor/libgit2/src/{regexp.c → util/regexp.c} +4 -4
  388. data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
  389. data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
  390. data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
  391. data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +1 -1
  392. data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +2 -2
  393. data/vendor/libgit2/src/{buffer.c → util/str.c} +157 -151
  394. data/vendor/libgit2/src/util/str.h +357 -0
  395. data/vendor/libgit2/src/{strmap.h → util/strmap.h} +1 -1
  396. data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
  397. data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
  398. data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
  399. data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
  400. data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -4
  401. data/vendor/libgit2/src/{unix → util/unix}/realpath.c +1 -3
  402. data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
  403. data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
  404. data/vendor/libgit2/src/{util.c → util/util.c} +15 -15
  405. data/vendor/libgit2/src/{util.h → util/util.h} +4 -29
  406. data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
  407. data/vendor/libgit2/src/{vector.h → util/vector.h} +2 -2
  408. data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
  409. data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
  410. data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
  411. data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
  412. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +140 -9
  413. data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
  414. data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
  415. data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +12 -28
  416. data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
  417. data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
  418. data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
  419. data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.h +1 -1
  420. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
  421. data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
  422. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
  423. data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
  424. data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
  425. data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
  426. data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
  427. metadata +402 -356
  428. data/vendor/libgit2/src/buffer.h +0 -374
  429. data/vendor/libgit2/src/commit.h +0 -46
  430. data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
  431. data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
  432. data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
  433. data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
  434. data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
  435. data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
  436. data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
  437. data/vendor/libgit2/src/hash/sha1.h +0 -38
  438. data/vendor/libgit2/src/hash.c +0 -110
  439. data/vendor/libgit2/src/hash.h +0 -46
  440. data/vendor/libgit2/src/message.h +0 -17
  441. data/vendor/libgit2/src/net.c +0 -540
  442. data/vendor/libgit2/src/oid.h +0 -51
  443. data/vendor/libgit2/src/remote.h +0 -55
  444. data/vendor/libgit2/src/sysdir.c +0 -347
  445. data/vendor/libgit2/src/win32/findfile.c +0 -230
  446. data/vendor/libgit2/src/win32/findfile.h +0 -19
  447. /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
  448. /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
  449. /data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +0 -0
  450. /data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +0 -0
  451. /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
  452. /data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +0 -0
  453. /data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +0 -0
  454. /data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -0
  455. /data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +0 -0
  456. /data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +0 -0
  457. /data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +0 -0
  458. /data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +0 -0
  459. /data/vendor/libgit2/src/{config_entries.c → libgit2/config_entries.c} +0 -0
  460. /data/vendor/libgit2/src/{config_entries.h → libgit2/config_entries.h} +0 -0
  461. /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
  462. /data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +0 -0
  463. /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
  464. /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
  465. /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
  466. /data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +0 -0
  467. /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
  468. /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
  469. /data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +0 -0
  470. /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
  471. /data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +0 -0
  472. /data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +0 -0
  473. /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
  474. /data/vendor/libgit2/src/{idxmap.c → libgit2/idxmap.c} +0 -0
  475. /data/vendor/libgit2/src/{idxmap.h → libgit2/idxmap.h} +0 -0
  476. /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
  477. /data/vendor/libgit2/src/{libgit2.h → libgit2/libgit2.h} +0 -0
  478. /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
  479. /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
  480. /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
  481. /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
  482. /data/vendor/libgit2/src/{offmap.c → libgit2/offmap.c} +0 -0
  483. /data/vendor/libgit2/src/{offmap.h → libgit2/offmap.h} +0 -0
  484. /data/vendor/libgit2/src/{oidarray.c → libgit2/oidarray.c} +0 -0
  485. /data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +0 -0
  486. /data/vendor/libgit2/src/{oidmap.h → libgit2/oidmap.h} +0 -0
  487. /data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +0 -0
  488. /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
  489. /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
  490. /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
  491. /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
  492. /data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +0 -0
  493. /data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +0 -0
  494. /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
  495. /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
  496. /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
  497. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +0 -0
  498. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
  499. /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
  500. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
  501. /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
  502. /data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +0 -0
  503. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +0 -0
  504. /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
  505. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +0 -0
  506. /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
  507. /data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +0 -0
  508. /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +0 -0
  509. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +0 -0
  510. /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
  511. /data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.h +0 -0
  512. /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
  513. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.h +0 -0
  514. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.h +0 -0
  515. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmacros.h +0 -0
  516. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.h +0 -0
  517. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xtypes.h +0 -0
  518. /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.h +0 -0
  519. /data/vendor/libgit2/src/{alloc.c → util/alloc.c} +0 -0
  520. /data/vendor/libgit2/src/{alloc.h → util/alloc.h} +0 -0
  521. /data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.c +0 -0
  522. /data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.c +0 -0
  523. /data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.c +0 -0
  524. /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
  525. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
  526. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
  527. /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
  528. /data/vendor/libgit2/src/{integer.h → util/integer.h} +0 -0
  529. /data/vendor/libgit2/src/{pool.c → util/pool.c} +0 -0
  530. /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
  531. /data/vendor/libgit2/src/{strmap.c → util/strmap.c} +0 -0
  532. /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
  533. /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
  534. /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
  535. /data/vendor/libgit2/src/{vector.c → util/vector.c} +0 -0
  536. /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
  537. /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
  538. /data/vendor/libgit2/src/{win32 → util/win32}/error.c +0 -0
  539. /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
  540. /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
  541. /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
  542. /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
  543. /data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.c +0 -0
  544. /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
  545. /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
  546. /data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +0 -0
  547. /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
@@ -5,8 +5,10 @@
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
7
 
8
- #include "common.h"
8
+ #include "diff_stats.h"
9
9
 
10
+ #include "buf.h"
11
+ #include "common.h"
10
12
  #include "vector.h"
11
13
  #include "diff.h"
12
14
  #include "patch_generate.h"
@@ -47,7 +49,7 @@ static int digits_for_value(size_t val)
47
49
  }
48
50
 
49
51
  static int diff_file_stats_full_to_buf(
50
- git_buf *out,
52
+ git_str *out,
51
53
  const git_diff_delta *delta,
52
54
  const diff_file_stats *filestat,
53
55
  const git_diff_stats *stats,
@@ -68,14 +70,14 @@ static int diff_file_stats_full_to_buf(
68
70
 
69
71
  padding = stats->max_name - strlen(old_path) - strlen(new_path);
70
72
 
71
- if ((common_dirlen = git_path_common_dirlen(old_path, new_path)) &&
73
+ if ((common_dirlen = git_fs_path_common_dirlen(old_path, new_path)) &&
72
74
  common_dirlen <= INT_MAX) {
73
- error = git_buf_printf(out, " %.*s{%s"DIFF_RENAME_FILE_SEPARATOR"%s}",
75
+ error = git_str_printf(out, " %.*s{%s"DIFF_RENAME_FILE_SEPARATOR"%s}",
74
76
  (int) common_dirlen, old_path,
75
77
  old_path + common_dirlen,
76
78
  new_path + common_dirlen);
77
79
  } else {
78
- error = git_buf_printf(out, " %s" DIFF_RENAME_FILE_SEPARATOR "%s",
80
+ error = git_str_printf(out, " %s" DIFF_RENAME_FILE_SEPARATOR "%s",
79
81
  old_path, new_path);
80
82
  }
81
83
 
@@ -83,7 +85,7 @@ static int diff_file_stats_full_to_buf(
83
85
  goto on_error;
84
86
  } else {
85
87
  adddel_path = new_path ? new_path : old_path;
86
- if (git_buf_printf(out, " %s", adddel_path) < 0)
88
+ if (git_str_printf(out, " %s", adddel_path) < 0)
87
89
  goto on_error;
88
90
 
89
91
  padding = stats->max_name - strlen(adddel_path);
@@ -92,28 +94,28 @@ static int diff_file_stats_full_to_buf(
92
94
  padding += strlen(DIFF_RENAME_FILE_SEPARATOR);
93
95
  }
94
96
 
95
- if (git_buf_putcn(out, ' ', padding) < 0 ||
96
- git_buf_puts(out, " | ") < 0)
97
+ if (git_str_putcn(out, ' ', padding) < 0 ||
98
+ git_str_puts(out, " | ") < 0)
97
99
  goto on_error;
98
100
 
99
101
  if (delta->flags & GIT_DIFF_FLAG_BINARY) {
100
- if (git_buf_printf(out,
102
+ if (git_str_printf(out,
101
103
  "Bin %" PRId64 " -> %" PRId64 " bytes", old_size, new_size) < 0)
102
104
  goto on_error;
103
105
  }
104
106
  else {
105
- if (git_buf_printf(out,
107
+ if (git_str_printf(out,
106
108
  "%*" PRIuZ, stats->max_digits,
107
109
  filestat->insertions + filestat->deletions) < 0)
108
110
  goto on_error;
109
111
 
110
112
  if (filestat->insertions || filestat->deletions) {
111
- if (git_buf_putc(out, ' ') < 0)
113
+ if (git_str_putc(out, ' ') < 0)
112
114
  goto on_error;
113
115
 
114
116
  if (!width) {
115
- if (git_buf_putcn(out, '+', filestat->insertions) < 0 ||
116
- git_buf_putcn(out, '-', filestat->deletions) < 0)
117
+ if (git_str_putcn(out, '+', filestat->insertions) < 0 ||
118
+ git_str_putcn(out, '-', filestat->deletions) < 0)
117
119
  goto on_error;
118
120
  } else {
119
121
  size_t total = filestat->insertions + filestat->deletions;
@@ -122,21 +124,21 @@ static int diff_file_stats_full_to_buf(
122
124
  size_t plus = full * filestat->insertions / total;
123
125
  size_t minus = full - plus;
124
126
 
125
- if (git_buf_putcn(out, '+', max(plus, 1)) < 0 ||
126
- git_buf_putcn(out, '-', max(minus, 1)) < 0)
127
+ if (git_str_putcn(out, '+', max(plus, 1)) < 0 ||
128
+ git_str_putcn(out, '-', max(minus, 1)) < 0)
127
129
  goto on_error;
128
130
  }
129
131
  }
130
132
  }
131
133
 
132
- git_buf_putc(out, '\n');
134
+ git_str_putc(out, '\n');
133
135
 
134
136
  on_error:
135
- return (git_buf_oom(out) ? -1 : 0);
137
+ return (git_str_oom(out) ? -1 : 0);
136
138
  }
137
139
 
138
140
  static int diff_file_stats_number_to_buf(
139
- git_buf *out,
141
+ git_str *out,
140
142
  const git_diff_delta *delta,
141
143
  const diff_file_stats *filestats)
142
144
  {
@@ -144,29 +146,29 @@ static int diff_file_stats_number_to_buf(
144
146
  const char *path = delta->new_file.path;
145
147
 
146
148
  if (delta->flags & GIT_DIFF_FLAG_BINARY)
147
- error = git_buf_printf(out, "%-8c" "%-8c" "%s\n", '-', '-', path);
149
+ error = git_str_printf(out, "%-8c" "%-8c" "%s\n", '-', '-', path);
148
150
  else
149
- error = git_buf_printf(out, "%-8" PRIuZ "%-8" PRIuZ "%s\n",
151
+ error = git_str_printf(out, "%-8" PRIuZ "%-8" PRIuZ "%s\n",
150
152
  filestats->insertions, filestats->deletions, path);
151
153
 
152
154
  return error;
153
155
  }
154
156
 
155
157
  static int diff_file_stats_summary_to_buf(
156
- git_buf *out,
158
+ git_str *out,
157
159
  const git_diff_delta *delta)
158
160
  {
159
161
  if (delta->old_file.mode != delta->new_file.mode) {
160
162
  if (delta->old_file.mode == 0) {
161
- git_buf_printf(out, " create mode %06o %s\n",
163
+ git_str_printf(out, " create mode %06o %s\n",
162
164
  delta->new_file.mode, delta->new_file.path);
163
165
  }
164
166
  else if (delta->new_file.mode == 0) {
165
- git_buf_printf(out, " delete mode %06o %s\n",
167
+ git_str_printf(out, " delete mode %06o %s\n",
166
168
  delta->old_file.mode, delta->old_file.path);
167
169
  }
168
170
  else {
169
- git_buf_printf(out, " mode change %06o => %06o %s\n",
171
+ git_str_printf(out, " mode change %06o => %06o %s\n",
170
172
  delta->old_file.mode, delta->new_file.mode, delta->new_file.path);
171
173
  }
172
174
  }
@@ -278,6 +280,15 @@ int git_diff_stats_to_buf(
278
280
  const git_diff_stats *stats,
279
281
  git_diff_stats_format_t format,
280
282
  size_t width)
283
+ {
284
+ GIT_BUF_WRAP_PRIVATE(out, git_diff__stats_to_buf, stats, format, width);
285
+ }
286
+
287
+ int git_diff__stats_to_buf(
288
+ git_str *out,
289
+ const git_diff_stats *stats,
290
+ git_diff_stats_format_t format,
291
+ size_t width)
281
292
  {
282
293
  int error = 0;
283
294
  size_t i;
@@ -320,23 +331,23 @@ int git_diff_stats_to_buf(
320
331
  }
321
332
 
322
333
  if (format & GIT_DIFF_STATS_FULL || format & GIT_DIFF_STATS_SHORT) {
323
- git_buf_printf(
334
+ git_str_printf(
324
335
  out, " %" PRIuZ " file%s changed",
325
336
  stats->files_changed, stats->files_changed != 1 ? "s" : "");
326
337
 
327
338
  if (stats->insertions || stats->deletions == 0)
328
- git_buf_printf(
339
+ git_str_printf(
329
340
  out, ", %" PRIuZ " insertion%s(+)",
330
341
  stats->insertions, stats->insertions != 1 ? "s" : "");
331
342
 
332
343
  if (stats->deletions || stats->insertions == 0)
333
- git_buf_printf(
344
+ git_str_printf(
334
345
  out, ", %" PRIuZ " deletion%s(-)",
335
346
  stats->deletions, stats->deletions != 1 ? "s" : "");
336
347
 
337
- git_buf_putc(out, '\n');
348
+ git_str_putc(out, '\n');
338
349
 
339
- if (git_buf_oom(out))
350
+ if (git_str_oom(out))
340
351
  return -1;
341
352
  }
342
353
 
@@ -0,0 +1,18 @@
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_diff_stats_h__
8
+ #define INCLUDE_diff_stats_h__
9
+
10
+ #include "common.h"
11
+
12
+ int git_diff__stats_to_buf(
13
+ git_str *out,
14
+ const git_diff_stats *stats,
15
+ git_diff_stats_format_t format,
16
+ size_t width);
17
+
18
+ #endif
@@ -13,7 +13,7 @@
13
13
 
14
14
  #include "diff.h"
15
15
  #include "diff_generate.h"
16
- #include "path.h"
16
+ #include "fs_path.h"
17
17
  #include "futils.h"
18
18
  #include "config.h"
19
19
 
@@ -241,7 +241,7 @@ int git_diff_find_similar__calc_similarity(
241
241
 
242
242
  #define DEFAULT_THRESHOLD 50
243
243
  #define DEFAULT_BREAK_REWRITE_THRESHOLD 60
244
- #define DEFAULT_RENAME_LIMIT 200
244
+ #define DEFAULT_RENAME_LIMIT 1000
245
245
 
246
246
  static int normalize_find_opts(
247
247
  git_diff *diff,
@@ -364,6 +364,7 @@ static int insert_delete_side_of_split(
364
364
  memset(&deleted->new_file, 0, sizeof(deleted->new_file));
365
365
  deleted->new_file.path = deleted->old_file.path;
366
366
  deleted->new_file.flags |= GIT_DIFF_FLAG_VALID_ID;
367
+ git_oid_clear(&deleted->new_file.id, GIT_OID_SHA1);
367
368
 
368
369
  return git_vector_insert(onto, deleted);
369
370
  }
@@ -375,7 +376,7 @@ static int apply_splits_and_deletes(
375
376
  size_t i;
376
377
  git_diff_delta *delta;
377
378
 
378
- if (git_vector_init(&onto, expected_size, git_diff_delta__cmp) < 0)
379
+ if (git_vector_init(&onto, expected_size, diff->deltas._cmp) < 0)
379
380
  return -1;
380
381
 
381
382
  /* build new delta list without TO_DELETE and splitting TO_SPLIT */
@@ -397,6 +398,7 @@ static int apply_splits_and_deletes(
397
398
  memset(&delta->old_file, 0, sizeof(delta->old_file));
398
399
  delta->old_file.path = delta->new_file.path;
399
400
  delta->old_file.flags |= GIT_DIFF_FLAG_VALID_ID;
401
+ git_oid_clear(&delta->old_file.id, GIT_OID_SHA1);
400
402
  }
401
403
 
402
404
  /* clean up delta before inserting into new list */
@@ -444,7 +446,7 @@ typedef struct {
444
446
  git_iterator_t src;
445
447
  git_repository *repo;
446
448
  git_diff_file *file;
447
- git_buf data;
449
+ git_str data;
448
450
  git_odb_object *odb_obj;
449
451
  git_blob *blob;
450
452
  } similarity_info;
@@ -458,9 +460,10 @@ static int similarity_init(
458
460
  info->file = similarity_get_file(diff, file_idx);
459
461
  info->odb_obj = NULL;
460
462
  info->blob = NULL;
461
- git_buf_init(&info->data, 0);
463
+ git_str_init(&info->data, 0);
462
464
 
463
- if (info->file->size > 0 || info->src == GIT_ITERATOR_WORKDIR)
465
+ if ((info->file->flags & GIT_DIFF_FLAG_VALID_SIZE) ||
466
+ info->src == GIT_ITERATOR_WORKDIR)
464
467
  return 0;
465
468
 
466
469
  return git_diff_file__resolve_zero_size(
@@ -481,7 +484,7 @@ static int similarity_sig(
481
484
  return error;
482
485
 
483
486
  /* if path is not a regular file, just skip this item */
484
- if (!git_path_isfile(info->data.ptr))
487
+ if (!git_fs_path_isfile(info->data.ptr))
485
488
  return 0;
486
489
 
487
490
  /* TODO: apply wd-to-odb filters to file data if necessary */
@@ -529,7 +532,7 @@ static void similarity_unload(similarity_info *info)
529
532
  if (info->blob)
530
533
  git_blob_free(info->blob);
531
534
  else
532
- git_buf_dispose(&info->data);
535
+ git_str_dispose(&info->data);
533
536
  }
534
537
 
535
538
  #define FLAG_SET(opts,flag_name) (((opts)->flags & flag_name) != 0)
@@ -994,6 +997,7 @@ find_best_matches:
994
997
  memset(&src->new_file, 0, sizeof(src->new_file));
995
998
  src->new_file.path = src->old_file.path;
996
999
  src->new_file.flags |= GIT_DIFF_FLAG_VALID_ID;
1000
+ git_oid_clear(&src->new_file.id, GIT_OID_SHA1);
997
1001
 
998
1002
  num_updates++;
999
1003
 
@@ -1019,6 +1023,7 @@ find_best_matches:
1019
1023
  memset(&src->old_file, 0, sizeof(src->old_file));
1020
1024
  src->old_file.path = src->new_file.path;
1021
1025
  src->old_file.flags |= GIT_DIFF_FLAG_VALID_ID;
1026
+ git_oid_clear(&src->old_file.id, GIT_OID_SHA1);
1022
1027
 
1023
1028
  src->flags &= ~GIT_DIFF_FLAG__TO_SPLIT;
1024
1029
  num_rewrites--;
@@ -11,6 +11,7 @@
11
11
  #include "diff.h"
12
12
  #include "diff_driver.h"
13
13
  #include "patch_generate.h"
14
+ #include "utf8.h"
14
15
 
15
16
  static int git_xdiff_scan_int(const char **str, int *value)
16
17
  {
@@ -218,14 +219,9 @@ static int git_xdiff(git_patch_generated_output *output, git_patch_generated *pa
218
219
  * updates are needed to xo->params.flags
219
220
  */
220
221
 
221
- git_patch_generated_old_data(&info.xd_old_data.ptr, &info.xd_old_data.size, patch);
222
- git_patch_generated_new_data(&info.xd_new_data.ptr, &info.xd_new_data.size, patch);
223
-
224
- if (info.xd_old_data.size > GIT_XDIFF_MAX_SIZE ||
225
- info.xd_new_data.size > GIT_XDIFF_MAX_SIZE) {
226
- git_error_set(GIT_ERROR_INVALID, "files too large for diff");
222
+ if (git_patch_generated_old_data(&info.xd_old_data.ptr, &info.xd_old_data.size, patch) < 0 ||
223
+ git_patch_generated_new_data(&info.xd_new_data.ptr, &info.xd_new_data.size, patch) < 0)
227
224
  return -1;
228
- }
229
225
 
230
226
  xdl_diff(&info.xd_old_data, &info.xd_new_data,
231
227
  &xo->params, &xo->config, &xo->callback);
@@ -261,5 +257,5 @@ void git_xdiff_init(git_xdiff_output *xo, const git_diff_options *opts)
261
257
  if (flags & GIT_DIFF_IGNORE_BLANK_LINES)
262
258
  xo->params.flags |= XDF_IGNORE_BLANK_LINES;
263
259
 
264
- xo->callback.outf = git_xdiff_cb;
260
+ xo->callback.out_line = git_xdiff_cb;
265
261
  }
@@ -7,9 +7,12 @@
7
7
 
8
8
  #include "email.h"
9
9
 
10
- #include "buffer.h"
11
10
  #include "common.h"
11
+ #include "buf.h"
12
12
  #include "diff_generate.h"
13
+ #include "diff_stats.h"
14
+ #include "patch.h"
15
+ #include "date.h"
13
16
 
14
17
  #include "git2/email.h"
15
18
  #include "git2/patch.h"
@@ -32,7 +35,7 @@ GIT_INLINE(int) include_prefix(
32
35
  }
33
36
 
34
37
  static int append_prefix(
35
- git_buf *out,
38
+ git_str *out,
36
39
  size_t patch_idx,
37
40
  size_t patch_count,
38
41
  git_email_create_options *opts)
@@ -40,16 +43,16 @@ static int append_prefix(
40
43
  const char *subject_prefix = opts->subject_prefix ?
41
44
  opts->subject_prefix : "PATCH";
42
45
 
43
- git_buf_putc(out, '[');
46
+ git_str_putc(out, '[');
44
47
 
45
48
  if (*subject_prefix)
46
- git_buf_puts(out, subject_prefix);
49
+ git_str_puts(out, subject_prefix);
47
50
 
48
51
  if (opts->reroll_number) {
49
52
  if (*subject_prefix)
50
- git_buf_putc(out, ' ');
53
+ git_str_putc(out, ' ');
51
54
 
52
- git_buf_printf(out, "v%" PRIuZ, opts->reroll_number);
55
+ git_str_printf(out, "v%" PRIuZ, opts->reroll_number);
53
56
  }
54
57
 
55
58
  if ((opts->flags & GIT_EMAIL_CREATE_ALWAYS_NUMBER) != 0 ||
@@ -58,20 +61,33 @@ static int append_prefix(
58
61
  opts->start_number : 1;
59
62
 
60
63
  if (*subject_prefix || opts->reroll_number)
61
- git_buf_putc(out, ' ');
64
+ git_str_putc(out, ' ');
62
65
 
63
- git_buf_printf(out, "%" PRIuZ "/%" PRIuZ,
66
+ git_str_printf(out, "%" PRIuZ "/%" PRIuZ,
64
67
  patch_idx + (start_number - 1),
65
68
  patch_count + (start_number - 1));
66
69
  }
67
70
 
68
- git_buf_puts(out, "]");
71
+ git_str_puts(out, "]");
69
72
 
70
- return git_buf_oom(out) ? -1 : 0;
73
+ return git_str_oom(out) ? -1 : 0;
74
+ }
75
+
76
+ static int append_date(
77
+ git_str *out,
78
+ const git_time *date)
79
+ {
80
+ int error;
81
+
82
+ if ((error = git_str_printf(out, "Date: ")) == 0 &&
83
+ (error = git_date_rfc2822_fmt(out, date->time, date->offset)) == 0)
84
+ error = git_str_putc(out, '\n');
85
+
86
+ return error;
71
87
  }
72
88
 
73
89
  static int append_subject(
74
- git_buf *out,
90
+ git_str *out,
75
91
  size_t patch_idx,
76
92
  size_t patch_count,
77
93
  const char *summary,
@@ -88,25 +104,25 @@ static int append_subject(
88
104
  summary_len = (nl - summary);
89
105
  }
90
106
 
91
- if ((error = git_buf_puts(out, "Subject: ")) < 0)
107
+ if ((error = git_str_puts(out, "Subject: ")) < 0)
92
108
  return error;
93
109
 
94
110
  if (prefix &&
95
111
  (error = append_prefix(out, patch_idx, patch_count, opts)) < 0)
96
112
  return error;
97
113
 
98
- if (prefix && summary_len && (error = git_buf_putc(out, ' ')) < 0)
114
+ if (prefix && summary_len && (error = git_str_putc(out, ' ')) < 0)
99
115
  return error;
100
116
 
101
117
  if (summary_len &&
102
- (error = git_buf_put(out, summary, summary_len)) < 0)
118
+ (error = git_str_put(out, summary, summary_len)) < 0)
103
119
  return error;
104
120
 
105
- return git_buf_putc(out, '\n');
121
+ return git_str_putc(out, '\n');
106
122
  }
107
123
 
108
124
  static int append_header(
109
- git_buf *out,
125
+ git_str *out,
110
126
  size_t patch_idx,
111
127
  size_t patch_count,
112
128
  const git_oid *commit_id,
@@ -114,25 +130,23 @@ static int append_header(
114
130
  const git_signature *author,
115
131
  git_email_create_options *opts)
116
132
  {
117
- char id[GIT_OID_HEXSZ];
118
- char date[GIT_DATE_RFC2822_SZ];
133
+ char id[GIT_OID_SHA1_HEXSIZE];
119
134
  int error;
120
135
 
121
136
  if ((error = git_oid_fmt(id, commit_id)) < 0 ||
122
- (error = git_buf_printf(out, "From %.*s %s\n", GIT_OID_HEXSZ, id, EMAIL_TIMESTAMP)) < 0 ||
123
- (error = git_buf_printf(out, "From: %s <%s>\n", author->name, author->email)) < 0 ||
124
- (error = git__date_rfc2822_fmt(date, sizeof(date), &author->when)) < 0 ||
125
- (error = git_buf_printf(out, "Date: %s\n", date)) < 0 ||
137
+ (error = git_str_printf(out, "From %.*s %s\n", GIT_OID_SHA1_HEXSIZE, id, EMAIL_TIMESTAMP)) < 0 ||
138
+ (error = git_str_printf(out, "From: %s <%s>\n", author->name, author->email)) < 0 ||
139
+ (error = append_date(out, &author->when)) < 0 ||
126
140
  (error = append_subject(out, patch_idx, patch_count, summary, opts)) < 0)
127
141
  return error;
128
142
 
129
- if ((error = git_buf_putc(out, '\n')) < 0)
143
+ if ((error = git_str_putc(out, '\n')) < 0)
130
144
  return error;
131
145
 
132
146
  return 0;
133
147
  }
134
148
 
135
- static int append_body(git_buf *out, const char *body)
149
+ static int append_body(git_str *out, const char *body)
136
150
  {
137
151
  size_t body_len;
138
152
  int error;
@@ -142,16 +156,16 @@ static int append_body(git_buf *out, const char *body)
142
156
 
143
157
  body_len = strlen(body);
144
158
 
145
- if ((error = git_buf_puts(out, body)) < 0)
159
+ if ((error = git_str_puts(out, body)) < 0)
146
160
  return error;
147
161
 
148
162
  if (body_len && body[body_len - 1] != '\n')
149
- error = git_buf_putc(out, '\n');
163
+ error = git_str_putc(out, '\n');
150
164
 
151
165
  return error;
152
166
  }
153
167
 
154
- static int append_diffstat(git_buf *out, git_diff *diff)
168
+ static int append_diffstat(git_str *out, git_diff *diff)
155
169
  {
156
170
  git_diff_stats *stats = NULL;
157
171
  unsigned int format_flags;
@@ -160,14 +174,14 @@ static int append_diffstat(git_buf *out, git_diff *diff)
160
174
  format_flags = GIT_DIFF_STATS_FULL | GIT_DIFF_STATS_INCLUDE_SUMMARY;
161
175
 
162
176
  if ((error = git_diff_get_stats(&stats, diff)) == 0 &&
163
- (error = git_diff_stats_to_buf(out, stats, format_flags, 0)) == 0)
164
- error = git_buf_putc(out, '\n');
177
+ (error = git_diff__stats_to_buf(out, stats, format_flags, 0)) == 0)
178
+ error = git_str_putc(out, '\n');
165
179
 
166
180
  git_diff_stats_free(stats);
167
181
  return error;
168
182
  }
169
183
 
170
- static int append_patches(git_buf *out, git_diff *diff)
184
+ static int append_patches(git_str *out, git_diff *diff)
171
185
  {
172
186
  size_t i, deltas;
173
187
  int error = 0;
@@ -178,7 +192,7 @@ static int append_patches(git_buf *out, git_diff *diff)
178
192
  git_patch *patch = NULL;
179
193
 
180
194
  if ((error = git_patch_from_diff(&patch, diff, i)) >= 0)
181
- error = git_patch_to_buf(out, patch);
195
+ error = git_patch__to_buf(out, patch);
182
196
 
183
197
  git_patch_free(patch);
184
198
 
@@ -190,7 +204,7 @@ static int append_patches(git_buf *out, git_diff *diff)
190
204
  }
191
205
 
192
206
  int git_email__append_from_diff(
193
- git_buf *out,
207
+ git_str *out,
194
208
  git_diff *diff,
195
209
  size_t patch_idx,
196
210
  size_t patch_count,
@@ -216,14 +230,12 @@ int git_email__append_from_diff(
216
230
  if (given_opts)
217
231
  memcpy(&opts, given_opts, sizeof(git_email_create_options));
218
232
 
219
- git_buf_sanitize(out);
220
-
221
233
  if ((error = append_header(out, patch_idx, patch_count, commit_id, summary, author, &opts)) == 0 &&
222
234
  (error = append_body(out, body)) == 0 &&
223
- (error = git_buf_puts(out, "---\n")) == 0 &&
235
+ (error = git_str_puts(out, "---\n")) == 0 &&
224
236
  (error = append_diffstat(out, diff)) == 0 &&
225
237
  (error = append_patches(out, diff)) == 0)
226
- error = git_buf_puts(out, "--\nlibgit2 " LIBGIT2_VERSION "\n\n");
238
+ error = git_str_puts(out, "--\nlibgit2 " LIBGIT2_VERSION "\n\n");
227
239
 
228
240
  return error;
229
241
  }
@@ -239,15 +251,19 @@ int git_email_create_from_diff(
239
251
  const git_signature *author,
240
252
  const git_email_create_options *given_opts)
241
253
  {
254
+ git_str email = GIT_STR_INIT;
242
255
  int error;
243
256
 
244
- git_buf_sanitize(out);
245
- git_buf_clear(out);
257
+ git_buf_tostr(&email, out);
246
258
 
247
- error = git_email__append_from_diff(out, diff, patch_idx,
259
+ error = git_email__append_from_diff(&email, diff, patch_idx,
248
260
  patch_count, commit_id, summary, body, author,
249
261
  given_opts);
250
262
 
263
+ if (error == 0)
264
+ error = git_buf_fromstr(out, &email);
265
+
266
+ git_str_dispose(&email);
251
267
  return error;
252
268
  }
253
269
 
@@ -12,7 +12,7 @@
12
12
  #include "git2/email.h"
13
13
 
14
14
  extern int git_email__append_from_diff(
15
- git_buf *out,
15
+ git_str *out,
16
16
  git_diff *diff,
17
17
  size_t patch_idx,
18
18
  size_t patch_count,
@@ -9,7 +9,7 @@
9
9
 
10
10
  #include "threadstate.h"
11
11
  #include "posix.h"
12
- #include "buffer.h"
12
+ #include "str.h"
13
13
  #include "libgit2.h"
14
14
 
15
15
  /********************************************
@@ -29,7 +29,7 @@ static git_error g_git_uninitialized_error = {
29
29
  static void set_error_from_buffer(int error_class)
30
30
  {
31
31
  git_error *error = &GIT_THREADSTATE->error_t;
32
- git_buf *buf = &GIT_THREADSTATE->error_buf;
32
+ git_str *buf = &GIT_THREADSTATE->error_buf;
33
33
 
34
34
  error->message = buf->ptr;
35
35
  error->klass = error_class;
@@ -39,11 +39,11 @@ static void set_error_from_buffer(int error_class)
39
39
 
40
40
  static void set_error(int error_class, char *string)
41
41
  {
42
- git_buf *buf = &GIT_THREADSTATE->error_buf;
42
+ git_str *buf = &GIT_THREADSTATE->error_buf;
43
43
 
44
- git_buf_clear(buf);
44
+ git_str_clear(buf);
45
45
  if (string) {
46
- git_buf_puts(buf, string);
46
+ git_str_puts(buf, string);
47
47
  git__free(string);
48
48
  }
49
49
 
@@ -70,20 +70,20 @@ void git_error_vset(int error_class, const char *fmt, va_list ap)
70
70
  DWORD win32_error_code = (error_class == GIT_ERROR_OS) ? GetLastError() : 0;
71
71
  #endif
72
72
  int error_code = (error_class == GIT_ERROR_OS) ? errno : 0;
73
- git_buf *buf = &GIT_THREADSTATE->error_buf;
73
+ git_str *buf = &GIT_THREADSTATE->error_buf;
74
74
 
75
- git_buf_clear(buf);
75
+ git_str_clear(buf);
76
76
  if (fmt) {
77
- git_buf_vprintf(buf, fmt, ap);
77
+ git_str_vprintf(buf, fmt, ap);
78
78
  if (error_class == GIT_ERROR_OS)
79
- git_buf_PUTS(buf, ": ");
79
+ git_str_PUTS(buf, ": ");
80
80
  }
81
81
 
82
82
  if (error_class == GIT_ERROR_OS) {
83
83
  #ifdef GIT_WIN32
84
84
  char * win32_error = git_win32_get_error_message(win32_error_code);
85
85
  if (win32_error) {
86
- git_buf_puts(buf, win32_error);
86
+ git_str_puts(buf, win32_error);
87
87
  git__free(win32_error);
88
88
 
89
89
  SetLastError(0);
@@ -91,26 +91,26 @@ void git_error_vset(int error_class, const char *fmt, va_list ap)
91
91
  else
92
92
  #endif
93
93
  if (error_code)
94
- git_buf_puts(buf, strerror(error_code));
94
+ git_str_puts(buf, strerror(error_code));
95
95
 
96
96
  if (error_code)
97
97
  errno = 0;
98
98
  }
99
99
 
100
- if (!git_buf_oom(buf))
100
+ if (!git_str_oom(buf))
101
101
  set_error_from_buffer(error_class);
102
102
  }
103
103
 
104
104
  int git_error_set_str(int error_class, const char *string)
105
105
  {
106
- git_buf *buf = &GIT_THREADSTATE->error_buf;
106
+ git_str *buf = &GIT_THREADSTATE->error_buf;
107
107
 
108
108
  GIT_ASSERT_ARG(string);
109
109
 
110
- git_buf_clear(buf);
111
- git_buf_puts(buf, string);
110
+ git_str_clear(buf);
111
+ git_str_puts(buf, string);
112
112
 
113
- if (git_buf_oom(buf))
113
+ if (git_str_oom(buf))
114
114
  return -1;
115
115
 
116
116
  set_error_from_buffer(error_class);
@@ -142,7 +142,7 @@ const git_error *git_error_last(void)
142
142
  int git_error_state_capture(git_error_state *state, int error_code)
143
143
  {
144
144
  git_error *error = GIT_THREADSTATE->last_error;
145
- git_buf *error_buf = &GIT_THREADSTATE->error_buf;
145
+ git_str *error_buf = &GIT_THREADSTATE->error_buf;
146
146
 
147
147
  memset(state, 0, sizeof(git_error_state));
148
148
 
@@ -158,7 +158,7 @@ int git_error_state_capture(git_error_state *state, int error_code)
158
158
  if (state->oom)
159
159
  state->error_msg.message = g_git_oom_error.message;
160
160
  else
161
- state->error_msg.message = git_buf_detach(error_buf);
161
+ state->error_msg.message = git_str_detach(error_buf);
162
162
  }
163
163
 
164
164
  git_error_clear();