rugged 0.27.10 → 0.27.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (420) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/AUTHORS +0 -1
  4. data/vendor/libgit2/CMakeLists.txt +54 -98
  5. data/vendor/libgit2/COPYING +0 -28
  6. data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +1 -15
  7. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +8 -9
  8. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  9. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  10. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  11. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +0 -6
  12. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -2
  13. data/vendor/libgit2/deps/http-parser/{COPYING → LICENSE-MIT} +0 -0
  14. data/vendor/libgit2/deps/http-parser/http_parser.c +6 -11
  15. data/vendor/libgit2/deps/regex/CMakeLists.txt +2 -0
  16. data/vendor/libgit2/deps/regex/config.h +7 -0
  17. data/vendor/libgit2/deps/regex/regcomp.c +3857 -0
  18. data/vendor/libgit2/deps/regex/regex.c +92 -0
  19. data/vendor/libgit2/deps/regex/regex.h +582 -0
  20. data/vendor/libgit2/deps/regex/regex_internal.c +1744 -0
  21. data/vendor/libgit2/deps/regex/regex_internal.h +819 -0
  22. data/vendor/libgit2/deps/regex/regexec.c +4369 -0
  23. data/vendor/libgit2/deps/zlib/CMakeLists.txt +0 -1
  24. data/vendor/libgit2/deps/zlib/adler32.c +7 -0
  25. data/vendor/libgit2/deps/zlib/crc32.c +7 -0
  26. data/vendor/libgit2/include/git2.h +0 -5
  27. data/vendor/libgit2/include/git2/annotated_commit.h +0 -9
  28. data/vendor/libgit2/include/git2/attr.h +20 -38
  29. data/vendor/libgit2/include/git2/blame.h +25 -42
  30. data/vendor/libgit2/include/git2/blob.h +13 -45
  31. data/vendor/libgit2/include/git2/branch.h +1 -1
  32. data/vendor/libgit2/include/git2/buffer.h +16 -22
  33. data/vendor/libgit2/include/git2/checkout.h +32 -65
  34. data/vendor/libgit2/include/git2/cherrypick.h +7 -9
  35. data/vendor/libgit2/include/git2/clone.h +10 -12
  36. data/vendor/libgit2/include/git2/commit.h +3 -53
  37. data/vendor/libgit2/include/git2/common.h +8 -60
  38. data/vendor/libgit2/include/git2/config.h +19 -30
  39. data/vendor/libgit2/include/git2/describe.h +9 -32
  40. data/vendor/libgit2/include/git2/diff.h +156 -208
  41. data/vendor/libgit2/include/git2/errors.h +46 -54
  42. data/vendor/libgit2/include/git2/filter.h +0 -8
  43. data/vendor/libgit2/include/git2/ignore.h +2 -2
  44. data/vendor/libgit2/include/git2/index.h +52 -74
  45. data/vendor/libgit2/include/git2/indexer.h +6 -76
  46. data/vendor/libgit2/include/git2/inttypes.h +309 -0
  47. data/vendor/libgit2/include/git2/merge.h +18 -35
  48. data/vendor/libgit2/include/git2/net.h +5 -0
  49. data/vendor/libgit2/include/git2/notes.h +1 -1
  50. data/vendor/libgit2/include/git2/object.h +29 -17
  51. data/vendor/libgit2/include/git2/odb.h +11 -12
  52. data/vendor/libgit2/include/git2/odb_backend.h +9 -10
  53. data/vendor/libgit2/include/git2/oid.h +2 -2
  54. data/vendor/libgit2/include/git2/pack.h +3 -14
  55. data/vendor/libgit2/include/git2/proxy.h +8 -14
  56. data/vendor/libgit2/include/git2/rebase.h +6 -53
  57. data/vendor/libgit2/include/git2/refs.h +15 -33
  58. data/vendor/libgit2/include/git2/refspec.h +0 -17
  59. data/vendor/libgit2/include/git2/remote.h +24 -123
  60. data/vendor/libgit2/include/git2/repository.h +39 -76
  61. data/vendor/libgit2/include/git2/revert.h +4 -6
  62. data/vendor/libgit2/include/git2/revwalk.h +7 -7
  63. data/vendor/libgit2/include/git2/signature.h +2 -2
  64. data/vendor/libgit2/include/git2/stash.h +12 -15
  65. data/vendor/libgit2/include/git2/status.h +20 -33
  66. data/vendor/libgit2/include/git2/submodule.h +12 -30
  67. data/vendor/libgit2/include/git2/sys/commit.h +1 -1
  68. data/vendor/libgit2/include/git2/sys/config.h +13 -13
  69. data/vendor/libgit2/include/git2/sys/filter.h +6 -6
  70. data/vendor/libgit2/include/git2/sys/index.h +0 -3
  71. data/vendor/libgit2/include/git2/sys/mempack.h +35 -35
  72. data/vendor/libgit2/include/git2/sys/merge.h +4 -9
  73. data/vendor/libgit2/include/git2/sys/odb_backend.h +22 -66
  74. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -76
  75. data/vendor/libgit2/include/git2/sys/repository.h +1 -5
  76. data/vendor/libgit2/include/git2/sys/stream.h +12 -92
  77. data/vendor/libgit2/include/git2/sys/time.h +31 -0
  78. data/vendor/libgit2/include/git2/sys/transport.h +83 -129
  79. data/vendor/libgit2/include/git2/tag.h +4 -13
  80. data/vendor/libgit2/include/git2/trace.h +2 -2
  81. data/vendor/libgit2/include/git2/transaction.h +0 -1
  82. data/vendor/libgit2/include/git2/transport.h +311 -11
  83. data/vendor/libgit2/include/git2/tree.h +4 -4
  84. data/vendor/libgit2/include/git2/types.h +111 -33
  85. data/vendor/libgit2/include/git2/version.h +4 -4
  86. data/vendor/libgit2/include/git2/worktree.h +13 -48
  87. data/vendor/libgit2/libgit2.pc.in +13 -0
  88. data/vendor/libgit2/src/CMakeLists.txt +164 -96
  89. data/vendor/libgit2/src/annotated_commit.c +8 -15
  90. data/vendor/libgit2/src/apply.c +31 -537
  91. data/vendor/libgit2/src/apply.h +1 -3
  92. data/vendor/libgit2/src/array.h +2 -2
  93. data/vendor/libgit2/src/attr.c +75 -81
  94. data/vendor/libgit2/src/attr_file.c +121 -207
  95. data/vendor/libgit2/src/attr_file.h +9 -9
  96. data/vendor/libgit2/src/attrcache.c +53 -51
  97. data/vendor/libgit2/src/attrcache.h +1 -2
  98. data/vendor/libgit2/src/blame.c +20 -47
  99. data/vendor/libgit2/src/blame.h +1 -2
  100. data/vendor/libgit2/src/blame_git.c +20 -37
  101. data/vendor/libgit2/src/blob.c +42 -128
  102. data/vendor/libgit2/src/blob.h +2 -19
  103. data/vendor/libgit2/src/branch.c +43 -67
  104. data/vendor/libgit2/src/buf_text.c +6 -7
  105. data/vendor/libgit2/src/buffer.c +57 -69
  106. data/vendor/libgit2/src/buffer.h +1 -1
  107. data/vendor/libgit2/src/cache.c +45 -38
  108. data/vendor/libgit2/src/cache.h +3 -3
  109. data/vendor/libgit2/src/cc-compat.h +3 -20
  110. data/vendor/libgit2/src/checkout.c +90 -109
  111. data/vendor/libgit2/src/cherrypick.c +9 -15
  112. data/vendor/libgit2/src/clone.c +27 -49
  113. data/vendor/libgit2/src/clone.h +0 -4
  114. data/vendor/libgit2/src/commit.c +49 -117
  115. data/vendor/libgit2/src/commit.h +0 -7
  116. data/vendor/libgit2/src/commit_list.c +78 -30
  117. data/vendor/libgit2/src/commit_list.h +2 -2
  118. data/vendor/libgit2/src/common.h +91 -27
  119. data/vendor/libgit2/src/config.c +176 -194
  120. data/vendor/libgit2/src/config.h +20 -8
  121. data/vendor/libgit2/src/config_cache.c +35 -41
  122. data/vendor/libgit2/src/config_file.c +753 -439
  123. data/vendor/libgit2/src/config_file.h +73 -0
  124. data/vendor/libgit2/src/config_parse.c +63 -114
  125. data/vendor/libgit2/src/config_parse.h +16 -17
  126. data/vendor/libgit2/src/crlf.c +190 -219
  127. data/vendor/libgit2/src/delta.c +18 -25
  128. data/vendor/libgit2/src/describe.c +41 -42
  129. data/vendor/libgit2/src/diff.c +68 -53
  130. data/vendor/libgit2/src/diff.h +1 -2
  131. data/vendor/libgit2/src/diff_driver.c +49 -47
  132. data/vendor/libgit2/src/diff_file.c +17 -19
  133. data/vendor/libgit2/src/diff_file.h +1 -1
  134. data/vendor/libgit2/src/diff_generate.c +106 -162
  135. data/vendor/libgit2/src/diff_generate.h +3 -3
  136. data/vendor/libgit2/src/diff_parse.c +4 -4
  137. data/vendor/libgit2/src/diff_print.c +30 -42
  138. data/vendor/libgit2/src/diff_stats.c +7 -22
  139. data/vendor/libgit2/src/diff_tform.c +16 -16
  140. data/vendor/libgit2/src/diff_xdiff.c +3 -15
  141. data/vendor/libgit2/src/errors.c +39 -51
  142. data/vendor/libgit2/src/features.h.in +3 -11
  143. data/vendor/libgit2/src/fetch.c +5 -10
  144. data/vendor/libgit2/src/fetchhead.c +17 -17
  145. data/vendor/libgit2/src/filebuf.c +36 -32
  146. data/vendor/libgit2/src/filebuf.h +2 -2
  147. data/vendor/libgit2/src/{futils.c → fileops.c} +73 -80
  148. data/vendor/libgit2/src/{futils.h → fileops.h} +6 -6
  149. data/vendor/libgit2/src/filter.c +38 -46
  150. data/vendor/libgit2/src/filter.h +10 -0
  151. data/vendor/libgit2/src/fnmatch.c +248 -0
  152. data/vendor/libgit2/src/fnmatch.h +48 -0
  153. data/vendor/libgit2/src/global.c +63 -48
  154. data/vendor/libgit2/src/global.h +2 -0
  155. data/vendor/libgit2/src/hash.c +0 -61
  156. data/vendor/libgit2/src/hash.h +19 -20
  157. data/vendor/libgit2/src/hash/hash_collisiondetect.h +47 -0
  158. data/vendor/libgit2/src/hash/{sha1/common_crypto.c → hash_common_crypto.h} +17 -17
  159. data/vendor/libgit2/src/hash/{sha1/generic.c → hash_generic.c} +10 -22
  160. data/vendor/libgit2/src/hash/{sha1/generic.h → hash_generic.h} +10 -4
  161. data/vendor/libgit2/src/hash/hash_openssl.h +59 -0
  162. data/vendor/libgit2/src/hash/{sha1/win32.c → hash_win32.c} +37 -47
  163. data/vendor/libgit2/src/hash/{sha1/win32.h → hash_win32.h} +19 -6
  164. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.c +3 -14
  165. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.h +0 -0
  166. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.c +0 -0
  167. data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.h +0 -0
  168. data/vendor/libgit2/src/hashsig.c +5 -5
  169. data/vendor/libgit2/src/idxmap.c +61 -107
  170. data/vendor/libgit2/src/idxmap.h +31 -153
  171. data/vendor/libgit2/src/ignore.c +47 -43
  172. data/vendor/libgit2/src/index.c +232 -337
  173. data/vendor/libgit2/src/index.h +1 -17
  174. data/vendor/libgit2/src/indexer.c +175 -346
  175. data/vendor/libgit2/src/integer.h +26 -71
  176. data/vendor/libgit2/src/iterator.c +70 -142
  177. data/vendor/libgit2/src/iterator.h +0 -15
  178. data/vendor/libgit2/src/khash.h +1 -3
  179. data/vendor/libgit2/src/map.h +1 -1
  180. data/vendor/libgit2/src/merge.c +100 -144
  181. data/vendor/libgit2/src/merge_driver.c +11 -11
  182. data/vendor/libgit2/src/merge_file.c +2 -2
  183. data/vendor/libgit2/src/mwindow.c +29 -24
  184. data/vendor/libgit2/src/mwindow.h +4 -4
  185. data/vendor/libgit2/src/netops.c +156 -55
  186. data/vendor/libgit2/src/netops.h +23 -3
  187. data/vendor/libgit2/src/notes.c +11 -16
  188. data/vendor/libgit2/src/object.c +69 -120
  189. data/vendor/libgit2/src/object.h +9 -22
  190. data/vendor/libgit2/src/object_api.c +8 -8
  191. data/vendor/libgit2/src/odb.c +93 -116
  192. data/vendor/libgit2/src/odb.h +7 -8
  193. data/vendor/libgit2/src/odb_loose.c +55 -62
  194. data/vendor/libgit2/src/odb_mempack.c +34 -21
  195. data/vendor/libgit2/src/odb_pack.c +14 -18
  196. data/vendor/libgit2/src/offmap.c +35 -53
  197. data/vendor/libgit2/src/offmap.h +21 -108
  198. data/vendor/libgit2/src/oid.c +7 -12
  199. data/vendor/libgit2/src/oidmap.c +47 -49
  200. data/vendor/libgit2/src/oidmap.h +24 -101
  201. data/vendor/libgit2/src/pack-objects.c +87 -88
  202. data/vendor/libgit2/src/pack-objects.h +8 -2
  203. data/vendor/libgit2/src/pack.c +101 -99
  204. data/vendor/libgit2/src/pack.h +19 -17
  205. data/vendor/libgit2/src/parse.c +0 -10
  206. data/vendor/libgit2/src/parse.h +3 -3
  207. data/vendor/libgit2/src/patch.c +4 -4
  208. data/vendor/libgit2/src/patch_generate.c +20 -20
  209. data/vendor/libgit2/src/patch_parse.c +63 -151
  210. data/vendor/libgit2/src/path.c +104 -117
  211. data/vendor/libgit2/src/path.h +71 -3
  212. data/vendor/libgit2/src/pathspec.c +19 -19
  213. data/vendor/libgit2/src/pool.c +22 -26
  214. data/vendor/libgit2/src/pool.h +7 -7
  215. data/vendor/libgit2/src/posix.c +10 -10
  216. data/vendor/libgit2/src/posix.h +1 -12
  217. data/vendor/libgit2/src/proxy.c +3 -8
  218. data/vendor/libgit2/src/push.c +31 -37
  219. data/vendor/libgit2/src/push.h +1 -2
  220. data/vendor/libgit2/src/rebase.c +59 -115
  221. data/vendor/libgit2/src/refdb.c +3 -15
  222. data/vendor/libgit2/src/refdb_fs.c +254 -381
  223. data/vendor/libgit2/src/reflog.c +15 -13
  224. data/vendor/libgit2/src/refs.c +88 -118
  225. data/vendor/libgit2/src/refs.h +3 -5
  226. data/vendor/libgit2/src/refspec.c +37 -56
  227. data/vendor/libgit2/src/refspec.h +1 -1
  228. data/vendor/libgit2/src/remote.c +215 -266
  229. data/vendor/libgit2/src/remote.h +2 -11
  230. data/vendor/libgit2/src/repository.c +225 -280
  231. data/vendor/libgit2/src/repository.h +40 -52
  232. data/vendor/libgit2/src/reset.c +8 -8
  233. data/vendor/libgit2/src/revert.c +9 -14
  234. data/vendor/libgit2/src/revparse.c +48 -47
  235. data/vendor/libgit2/src/revwalk.c +57 -120
  236. data/vendor/libgit2/src/revwalk.h +1 -22
  237. data/vendor/libgit2/src/settings.c +10 -47
  238. data/vendor/libgit2/src/signature.c +11 -11
  239. data/vendor/libgit2/src/sortedcache.c +36 -22
  240. data/vendor/libgit2/src/sortedcache.h +1 -1
  241. data/vendor/libgit2/src/stash.c +99 -125
  242. data/vendor/libgit2/src/status.c +22 -28
  243. data/vendor/libgit2/src/stream.h +2 -17
  244. data/vendor/libgit2/src/streams/curl.c +385 -0
  245. data/vendor/libgit2/src/{allocators/stdalloc.h → streams/curl.h} +5 -5
  246. data/vendor/libgit2/src/streams/openssl.c +114 -224
  247. data/vendor/libgit2/src/streams/openssl.h +108 -4
  248. data/vendor/libgit2/src/streams/socket.c +30 -55
  249. data/vendor/libgit2/src/streams/stransport.c +32 -57
  250. data/vendor/libgit2/src/streams/stransport.h +0 -5
  251. data/vendor/libgit2/src/streams/tls.c +19 -50
  252. data/vendor/libgit2/src/streams/tls.h +4 -12
  253. data/vendor/libgit2/src/strmap.c +74 -47
  254. data/vendor/libgit2/src/strmap.h +33 -108
  255. data/vendor/libgit2/src/submodule.c +216 -272
  256. data/vendor/libgit2/src/submodule.h +1 -1
  257. data/vendor/libgit2/src/sysdir.c +19 -29
  258. data/vendor/libgit2/src/tag.c +28 -41
  259. data/vendor/libgit2/src/tag.h +1 -2
  260. data/vendor/libgit2/src/trace.c +2 -2
  261. data/vendor/libgit2/src/trace.h +3 -3
  262. data/vendor/libgit2/src/trailer.c +38 -52
  263. data/vendor/libgit2/src/transaction.c +29 -30
  264. data/vendor/libgit2/src/transport.c +5 -5
  265. data/vendor/libgit2/src/transports/auth.c +11 -15
  266. data/vendor/libgit2/src/transports/auth.h +3 -10
  267. data/vendor/libgit2/src/transports/auth_negotiate.c +18 -33
  268. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  269. data/vendor/libgit2/src/transports/cred.c +24 -24
  270. data/vendor/libgit2/src/{allocators/win32_crtdbg.h → transports/cred.h} +4 -5
  271. data/vendor/libgit2/src/transports/git.c +31 -26
  272. data/vendor/libgit2/src/transports/http.c +348 -881
  273. data/vendor/libgit2/src/transports/http.h +0 -2
  274. data/vendor/libgit2/src/transports/local.c +35 -35
  275. data/vendor/libgit2/src/transports/smart.c +47 -70
  276. data/vendor/libgit2/src/transports/smart.h +4 -3
  277. data/vendor/libgit2/src/transports/smart_pkt.c +40 -43
  278. data/vendor/libgit2/src/transports/smart_protocol.c +116 -96
  279. data/vendor/libgit2/src/transports/ssh.c +66 -77
  280. data/vendor/libgit2/src/transports/winhttp.c +314 -318
  281. data/vendor/libgit2/src/tree-cache.c +12 -19
  282. data/vendor/libgit2/src/tree.c +142 -103
  283. data/vendor/libgit2/src/tree.h +12 -1
  284. data/vendor/libgit2/src/unix/map.c +3 -3
  285. data/vendor/libgit2/src/unix/posix.h +11 -1
  286. data/vendor/libgit2/src/userdiff.h +1 -3
  287. data/vendor/libgit2/src/util.c +56 -70
  288. data/vendor/libgit2/src/util.h +156 -28
  289. data/vendor/libgit2/src/vector.c +4 -4
  290. data/vendor/libgit2/src/win32/dir.c +3 -3
  291. data/vendor/libgit2/src/win32/findfile.c +3 -3
  292. data/vendor/libgit2/src/win32/map.c +11 -9
  293. data/vendor/libgit2/src/win32/msvc-compat.h +0 -6
  294. data/vendor/libgit2/src/win32/path_w32.c +9 -113
  295. data/vendor/libgit2/src/win32/path_w32.h +29 -18
  296. data/vendor/libgit2/src/win32/posix.h +4 -1
  297. data/vendor/libgit2/src/win32/posix_w32.c +45 -70
  298. data/vendor/libgit2/src/win32/precompiled.h +2 -0
  299. data/vendor/libgit2/src/win32/thread.c +10 -5
  300. data/vendor/libgit2/src/win32/w32_buffer.c +5 -9
  301. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -3
  302. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +75 -26
  303. data/vendor/libgit2/src/win32/w32_stack.c +11 -6
  304. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  305. data/vendor/libgit2/src/win32/w32_util.c +64 -27
  306. data/vendor/libgit2/src/win32/w32_util.h +49 -5
  307. data/vendor/libgit2/src/worktree.c +60 -95
  308. data/vendor/libgit2/src/worktree.h +0 -2
  309. data/vendor/libgit2/src/xdiff/xdiffi.c +5 -7
  310. data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
  311. data/vendor/libgit2/src/xdiff/xmerge.c +15 -27
  312. data/vendor/libgit2/src/xdiff/xpatience.c +0 -3
  313. data/vendor/libgit2/src/zstream.c +4 -4
  314. metadata +33 -122
  315. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +0 -28
  316. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +0 -38
  317. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +0 -37
  318. data/vendor/libgit2/cmake/Modules/FindmbedTLS.cmake +0 -93
  319. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +0 -110
  320. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +0 -53
  321. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +0 -124
  322. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +0 -66
  323. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +0 -21
  324. data/vendor/libgit2/deps/ntlmclient/compat.h +0 -33
  325. data/vendor/libgit2/deps/ntlmclient/crypt.h +0 -64
  326. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +0 -120
  327. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +0 -18
  328. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -145
  329. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +0 -18
  330. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +0 -130
  331. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +0 -21
  332. data/vendor/libgit2/deps/ntlmclient/ntlm.c +0 -1420
  333. data/vendor/libgit2/deps/ntlmclient/ntlm.h +0 -174
  334. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +0 -320
  335. data/vendor/libgit2/deps/ntlmclient/unicode.h +0 -36
  336. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +0 -445
  337. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +0 -201
  338. data/vendor/libgit2/deps/ntlmclient/utf8.h +0 -1257
  339. data/vendor/libgit2/deps/ntlmclient/util.c +0 -21
  340. data/vendor/libgit2/deps/ntlmclient/util.h +0 -14
  341. data/vendor/libgit2/deps/pcre/CMakeLists.txt +0 -140
  342. data/vendor/libgit2/deps/pcre/COPYING +0 -5
  343. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +0 -22
  344. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +0 -17
  345. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +0 -58
  346. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +0 -29
  347. data/vendor/libgit2/deps/pcre/config.h.in +0 -57
  348. data/vendor/libgit2/deps/pcre/pcre.h +0 -641
  349. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +0 -319
  350. data/vendor/libgit2/deps/pcre/pcre_chartables.c +0 -198
  351. data/vendor/libgit2/deps/pcre/pcre_compile.c +0 -9800
  352. data/vendor/libgit2/deps/pcre/pcre_config.c +0 -190
  353. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +0 -3676
  354. data/vendor/libgit2/deps/pcre/pcre_exec.c +0 -7173
  355. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +0 -245
  356. data/vendor/libgit2/deps/pcre/pcre_get.c +0 -669
  357. data/vendor/libgit2/deps/pcre/pcre_globals.c +0 -86
  358. data/vendor/libgit2/deps/pcre/pcre_internal.h +0 -2787
  359. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +0 -11913
  360. data/vendor/libgit2/deps/pcre/pcre_maketables.c +0 -156
  361. data/vendor/libgit2/deps/pcre/pcre_newline.c +0 -210
  362. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +0 -94
  363. data/vendor/libgit2/deps/pcre/pcre_printint.c +0 -834
  364. data/vendor/libgit2/deps/pcre/pcre_refcount.c +0 -92
  365. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +0 -211
  366. data/vendor/libgit2/deps/pcre/pcre_study.c +0 -1686
  367. data/vendor/libgit2/deps/pcre/pcre_tables.c +0 -727
  368. data/vendor/libgit2/deps/pcre/pcre_ucd.c +0 -3644
  369. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +0 -301
  370. data/vendor/libgit2/deps/pcre/pcre_version.c +0 -98
  371. data/vendor/libgit2/deps/pcre/pcre_xclass.c +0 -268
  372. data/vendor/libgit2/deps/pcre/pcreposix.c +0 -421
  373. data/vendor/libgit2/deps/pcre/pcreposix.h +0 -117
  374. data/vendor/libgit2/deps/pcre/ucp.h +0 -224
  375. data/vendor/libgit2/deps/winhttp/COPYING.GPL +0 -993
  376. data/vendor/libgit2/deps/winhttp/COPYING.LGPL +0 -502
  377. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  378. data/vendor/libgit2/include/git2/apply.h +0 -149
  379. data/vendor/libgit2/include/git2/cert.h +0 -135
  380. data/vendor/libgit2/include/git2/cred.h +0 -308
  381. data/vendor/libgit2/include/git2/deprecated.h +0 -493
  382. data/vendor/libgit2/include/git2/mailmap.h +0 -115
  383. data/vendor/libgit2/include/git2/sys/alloc.h +0 -101
  384. data/vendor/libgit2/include/git2/sys/cred.h +0 -90
  385. data/vendor/libgit2/include/git2/sys/path.h +0 -64
  386. data/vendor/libgit2/src/alloc.c +0 -43
  387. data/vendor/libgit2/src/alloc.h +0 -40
  388. data/vendor/libgit2/src/allocators/stdalloc.c +0 -119
  389. data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
  390. data/vendor/libgit2/src/config_backend.h +0 -96
  391. data/vendor/libgit2/src/config_entries.c +0 -229
  392. data/vendor/libgit2/src/config_entries.h +0 -24
  393. data/vendor/libgit2/src/config_mem.c +0 -220
  394. data/vendor/libgit2/src/config_snapshot.c +0 -206
  395. data/vendor/libgit2/src/errors.h +0 -81
  396. data/vendor/libgit2/src/hash/sha1.h +0 -38
  397. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +0 -48
  398. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +0 -19
  399. data/vendor/libgit2/src/hash/sha1/common_crypto.h +0 -19
  400. data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
  401. data/vendor/libgit2/src/hash/sha1/mbedtls.h +0 -19
  402. data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
  403. data/vendor/libgit2/src/hash/sha1/openssl.h +0 -19
  404. data/vendor/libgit2/src/mailmap.c +0 -485
  405. data/vendor/libgit2/src/mailmap.h +0 -35
  406. data/vendor/libgit2/src/net.c +0 -184
  407. data/vendor/libgit2/src/net.h +0 -36
  408. data/vendor/libgit2/src/reader.c +0 -265
  409. data/vendor/libgit2/src/reader.h +0 -107
  410. data/vendor/libgit2/src/regexp.c +0 -221
  411. data/vendor/libgit2/src/regexp.h +0 -97
  412. data/vendor/libgit2/src/streams/mbedtls.c +0 -483
  413. data/vendor/libgit2/src/streams/mbedtls.h +0 -23
  414. data/vendor/libgit2/src/streams/registry.c +0 -118
  415. data/vendor/libgit2/src/streams/registry.h +0 -19
  416. data/vendor/libgit2/src/transports/auth_ntlm.c +0 -223
  417. data/vendor/libgit2/src/transports/auth_ntlm.h +0 -35
  418. data/vendor/libgit2/src/wildmatch.c +0 -320
  419. data/vendor/libgit2/src/wildmatch.h +0 -23
  420. data/vendor/libgit2/src/win32/w32_common.h +0 -39
@@ -4,8 +4,8 @@
4
4
  * This file is part of libgit2, distributed under the GNU GPL v2 with
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
- #ifndef INCLUDE_futils_h__
8
- #define INCLUDE_futils_h__
7
+ #ifndef INCLUDE_fileops_h__
8
+ #define INCLUDE_fileops_h__
9
9
 
10
10
  #include "common.h"
11
11
 
@@ -255,7 +255,7 @@ extern int git_futils_truncate(const char *path, int mode);
255
255
  /**
256
256
  * Get the filesize in bytes of a file
257
257
  */
258
- extern int git_futils_filesize(uint64_t *out, git_file fd);
258
+ extern git_off_t git_futils_filesize(git_file fd);
259
259
 
260
260
  #define GIT_PERMS_IS_EXEC(MODE) (((MODE) & 0111) != 0)
261
261
  #define GIT_PERMS_CANONICAL(MODE) (GIT_PERMS_IS_EXEC(MODE) ? 0755 : 0644)
@@ -290,7 +290,7 @@ extern mode_t git_futils_canonical_mode(mode_t raw_mode);
290
290
  extern int git_futils_mmap_ro(
291
291
  git_map *out,
292
292
  git_file fd,
293
- off64_t begin,
293
+ git_off_t begin,
294
294
  size_t len);
295
295
 
296
296
  /**
@@ -330,7 +330,7 @@ extern int git_futils_fake_symlink(const char *new, const char *old);
330
330
  */
331
331
  typedef struct {
332
332
  struct timespec mtime;
333
- uint64_t size;
333
+ git_off_t size;
334
334
  unsigned int ino;
335
335
  } git_futils_filestamp;
336
336
 
@@ -340,7 +340,7 @@ typedef struct {
340
340
  * This function updates the file stamp to current data for the given path
341
341
  * and returns 0 if the file is up-to-date relative to the prior setting,
342
342
  * 1 if the file has been changed, or GIT_ENOTFOUND if the file doesn't
343
- * exist. This will not call git_error_set, so you must set the error if you
343
+ * exist. This will not call giterr_set, so you must set the error if you
344
344
  * plan to return an error.
345
345
  *
346
346
  * @param stamp File stamp to be checked
@@ -8,7 +8,7 @@
8
8
  #include "filter.h"
9
9
 
10
10
  #include "common.h"
11
- #include "futils.h"
11
+ #include "fileops.h"
12
12
  #include "hash.h"
13
13
  #include "repository.h"
14
14
  #include "global.h"
@@ -157,15 +157,15 @@ static int filter_registry_insert(
157
157
  if (filter_def_scan_attrs(&attrs, &nattr, &nmatch, filter->attributes) < 0)
158
158
  return -1;
159
159
 
160
- GIT_ERROR_CHECK_ALLOC_MULTIPLY(&alloc_len, nattr, 2);
161
- GIT_ERROR_CHECK_ALLOC_MULTIPLY(&alloc_len, alloc_len, sizeof(char *));
162
- GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, sizeof(git_filter_def));
160
+ GITERR_CHECK_ALLOC_MULTIPLY(&alloc_len, nattr, 2);
161
+ GITERR_CHECK_ALLOC_MULTIPLY(&alloc_len, alloc_len, sizeof(char *));
162
+ GITERR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, sizeof(git_filter_def));
163
163
 
164
164
  fdef = git__calloc(1, alloc_len);
165
- GIT_ERROR_CHECK_ALLOC(fdef);
165
+ GITERR_CHECK_ALLOC(fdef);
166
166
 
167
167
  fdef->filter_name = git__strdup(name);
168
- GIT_ERROR_CHECK_ALLOC(fdef->filter_name);
168
+ GITERR_CHECK_ALLOC(fdef->filter_name);
169
169
 
170
170
  fdef->filter = filter;
171
171
  fdef->priority = priority;
@@ -269,13 +269,13 @@ int git_filter_register(
269
269
  assert(name && filter);
270
270
 
271
271
  if (git_rwlock_wrlock(&filter_registry.lock) < 0) {
272
- git_error_set(GIT_ERROR_OS, "failed to lock filter registry");
272
+ giterr_set(GITERR_OS, "failed to lock filter registry");
273
273
  return -1;
274
274
  }
275
275
 
276
276
  if (!filter_registry_find(NULL, name)) {
277
- git_error_set(
278
- GIT_ERROR_FILTER, "attempt to reregister existing filter '%s'", name);
277
+ giterr_set(
278
+ GITERR_FILTER, "attempt to reregister existing filter '%s'", name);
279
279
  error = GIT_EEXISTS;
280
280
  goto done;
281
281
  }
@@ -297,17 +297,17 @@ int git_filter_unregister(const char *name)
297
297
 
298
298
  /* cannot unregister default filters */
299
299
  if (!strcmp(GIT_FILTER_CRLF, name) || !strcmp(GIT_FILTER_IDENT, name)) {
300
- git_error_set(GIT_ERROR_FILTER, "cannot unregister filter '%s'", name);
300
+ giterr_set(GITERR_FILTER, "cannot unregister filter '%s'", name);
301
301
  return -1;
302
302
  }
303
303
 
304
304
  if (git_rwlock_wrlock(&filter_registry.lock) < 0) {
305
- git_error_set(GIT_ERROR_OS, "failed to lock filter registry");
305
+ giterr_set(GITERR_OS, "failed to lock filter registry");
306
306
  return -1;
307
307
  }
308
308
 
309
309
  if ((fdef = filter_registry_lookup(&pos, name)) == NULL) {
310
- git_error_set(GIT_ERROR_FILTER, "cannot find filter '%s' to unregister", name);
310
+ giterr_set(GITERR_FILTER, "cannot find filter '%s' to unregister", name);
311
311
  error = GIT_ENOTFOUND;
312
312
  goto done;
313
313
  }
@@ -348,7 +348,7 @@ git_filter *git_filter_lookup(const char *name)
348
348
  git_filter *filter = NULL;
349
349
 
350
350
  if (git_rwlock_rdlock(&filter_registry.lock) < 0) {
351
- git_error_set(GIT_ERROR_OS, "failed to lock filter registry");
351
+ giterr_set(GITERR_OS, "failed to lock filter registry");
352
352
  return NULL;
353
353
  }
354
354
 
@@ -385,7 +385,7 @@ uint16_t git_filter_source_filemode(const git_filter_source *src)
385
385
 
386
386
  const git_oid *git_filter_source_id(const git_filter_source *src)
387
387
  {
388
- return git_oid_is_zero(&src->oid) ? NULL : &src->oid;
388
+ return git_oid_iszero(&src->oid) ? NULL : &src->oid;
389
389
  }
390
390
 
391
391
  git_filter_mode_t git_filter_source_mode(const git_filter_source *src)
@@ -404,11 +404,11 @@ static int filter_list_new(
404
404
  git_filter_list *fl = NULL;
405
405
  size_t pathlen = src->path ? strlen(src->path) : 0, alloclen;
406
406
 
407
- GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, sizeof(git_filter_list), pathlen);
408
- GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, alloclen, 1);
407
+ GITERR_CHECK_ALLOC_ADD(&alloclen, sizeof(git_filter_list), pathlen);
408
+ GITERR_CHECK_ALLOC_ADD(&alloclen, alloclen, 1);
409
409
 
410
410
  fl = git__calloc(1, alloclen);
411
- GIT_ERROR_CHECK_ALLOC(fl);
411
+ GITERR_CHECK_ALLOC(fl);
412
412
 
413
413
  if (src->path)
414
414
  memcpy(fl->path, src->path, pathlen);
@@ -428,32 +428,24 @@ static int filter_list_check_attributes(
428
428
  git_filter_def *fdef,
429
429
  const git_filter_source *src)
430
430
  {
431
- const char **strs = git__calloc(fdef->nattrs, sizeof(const char *));
432
- uint32_t flags = 0;
433
- size_t i;
434
431
  int error;
435
-
436
- GIT_ERROR_CHECK_ALLOC(strs);
437
-
438
- if ((src->flags & GIT_FILTER_NO_SYSTEM_ATTRIBUTES) != 0)
439
- flags |= GIT_ATTR_CHECK_NO_SYSTEM;
440
-
441
- if ((src->flags & GIT_FILTER_ATTRIBUTES_FROM_HEAD) != 0)
442
- flags |= GIT_ATTR_CHECK_INCLUDE_HEAD;
432
+ size_t i;
433
+ const char **strs = git__calloc(fdef->nattrs, sizeof(const char *));
434
+ GITERR_CHECK_ALLOC(strs);
443
435
 
444
436
  error = git_attr_get_many_with_session(
445
- strs, repo, attr_session, flags, src->path, fdef->nattrs, fdef->attrs);
437
+ strs, repo, attr_session, 0, src->path, fdef->nattrs, fdef->attrs);
446
438
 
447
439
  /* if no values were found but no matches are needed, it's okay! */
448
440
  if (error == GIT_ENOTFOUND && !fdef->nmatches) {
449
- git_error_clear();
441
+ giterr_clear();
450
442
  git__free((void *)strs);
451
443
  return 0;
452
444
  }
453
445
 
454
446
  for (i = 0; !error && i < fdef->nattrs; ++i) {
455
447
  const char *want = fdef->attrs[fdef->nattrs + i];
456
- git_attr_value_t want_type, found_type;
448
+ git_attr_t want_type, found_type;
457
449
 
458
450
  if (!want)
459
451
  continue;
@@ -463,7 +455,7 @@ static int filter_list_check_attributes(
463
455
 
464
456
  if (want_type != found_type)
465
457
  error = GIT_ENOTFOUND;
466
- else if (want_type == GIT_ATTR_VALUE_STRING &&
458
+ else if (want_type == GIT_ATTR_VALUE_T &&
467
459
  strcmp(want, strs[i]) &&
468
460
  strcmp(want, "*"))
469
461
  error = GIT_ENOTFOUND;
@@ -507,7 +499,7 @@ int git_filter_list__load_ext(
507
499
  git_filter_def *fdef;
508
500
 
509
501
  if (git_rwlock_rdlock(&filter_registry.lock) < 0) {
510
- git_error_set(GIT_ERROR_OS, "failed to lock filter registry");
502
+ giterr_set(GITERR_OS, "failed to lock filter registry");
511
503
  return -1;
512
504
  }
513
505
 
@@ -559,7 +551,7 @@ int git_filter_list__load_ext(
559
551
  }
560
552
 
561
553
  fe = git_array_alloc(fl->filters);
562
- GIT_ERROR_CHECK_ALLOC(fe);
554
+ GITERR_CHECK_ALLOC(fe);
563
555
 
564
556
  fe->filter = fdef->filter;
565
557
  fe->filter_name = fdef->filter_name;
@@ -642,7 +634,7 @@ int git_filter_list_push(
642
634
  assert(fl && filter);
643
635
 
644
636
  if (git_rwlock_rdlock(&filter_registry.lock) < 0) {
645
- git_error_set(GIT_ERROR_OS, "failed to lock filter registry");
637
+ giterr_set(GITERR_OS, "failed to lock filter registry");
646
638
  return -1;
647
639
  }
648
640
 
@@ -654,7 +646,7 @@ int git_filter_list_push(
654
646
  git_rwlock_rdunlock(&filter_registry.lock);
655
647
 
656
648
  if (fdef == NULL) {
657
- git_error_set(GIT_ERROR_FILTER, "cannot use an unregistered filter");
649
+ giterr_set(GITERR_FILTER, "cannot use an unregistered filter");
658
650
  return -1;
659
651
  }
660
652
 
@@ -662,7 +654,7 @@ int git_filter_list_push(
662
654
  return error;
663
655
 
664
656
  fe = git_array_alloc(fl->filters);
665
- GIT_ERROR_CHECK_ALLOC(fe);
657
+ GITERR_CHECK_ALLOC(fe);
666
658
  fe->filter = filter;
667
659
  fe->payload = payload;
668
660
 
@@ -764,10 +756,10 @@ int git_filter_list_apply_to_file(
764
756
 
765
757
  static int buf_from_blob(git_buf *out, git_blob *blob)
766
758
  {
767
- git_object_size_t rawsize = git_blob_rawsize(blob);
759
+ git_off_t rawsize = git_blob_rawsize(blob);
768
760
 
769
761
  if (!git__is_sizet(rawsize)) {
770
- git_error_set(GIT_ERROR_OS, "blob is too large to filter");
762
+ giterr_set(GITERR_OS, "blob is too large to filter");
771
763
  return -1;
772
764
  }
773
765
 
@@ -837,9 +829,9 @@ static int proxy_stream_close(git_writestream *s)
837
829
  } else {
838
830
  /* close stream before erroring out taking care
839
831
  * to preserve the original error */
840
- git_error_state_capture(&error_state, error);
832
+ giterr_state_capture(&error_state, error);
841
833
  proxy_stream->target->close(proxy_stream->target);
842
- git_error_state_restore(&error_state);
834
+ giterr_state_restore(&error_state);
843
835
  return error;
844
836
  }
845
837
 
@@ -855,8 +847,8 @@ static void proxy_stream_free(git_writestream *s)
855
847
  struct proxy_stream *proxy_stream = (struct proxy_stream *)s;
856
848
  assert(proxy_stream);
857
849
 
858
- git_buf_dispose(&proxy_stream->input);
859
- git_buf_dispose(&proxy_stream->temp_buf);
850
+ git_buf_free(&proxy_stream->input);
851
+ git_buf_free(&proxy_stream->temp_buf);
860
852
  git__free(proxy_stream);
861
853
  }
862
854
 
@@ -869,7 +861,7 @@ static int proxy_stream_init(
869
861
  git_writestream *target)
870
862
  {
871
863
  struct proxy_stream *proxy_stream = git__calloc(1, sizeof(struct proxy_stream));
872
- GIT_ERROR_CHECK_ALLOC(proxy_stream);
864
+ GITERR_CHECK_ALLOC(proxy_stream);
873
865
 
874
866
  proxy_stream->parent.write = proxy_stream_write;
875
867
  proxy_stream->parent.close = proxy_stream_close;
@@ -982,7 +974,7 @@ int git_filter_list_stream_file(
982
974
  }
983
975
 
984
976
  if (readlen < 0)
985
- error = -1;
977
+ error = readlen;
986
978
 
987
979
  done:
988
980
  if (initialized)
@@ -991,7 +983,7 @@ done:
991
983
  if (fd >= 0)
992
984
  p_close(fd);
993
985
  stream_list_free(&filter_streams);
994
- git_buf_dispose(&abspath);
986
+ git_buf_free(&abspath);
995
987
  return error;
996
988
  }
997
989
 
@@ -15,6 +15,16 @@
15
15
  /* Amount of file to examine for NUL byte when checking binary-ness */
16
16
  #define GIT_FILTER_BYTES_TO_CHECK_NUL 8000
17
17
 
18
+ /* Possible CRLF values */
19
+ typedef enum {
20
+ GIT_CRLF_GUESS = -1,
21
+ GIT_CRLF_BINARY = 0,
22
+ GIT_CRLF_TEXT,
23
+ GIT_CRLF_INPUT,
24
+ GIT_CRLF_CRLF,
25
+ GIT_CRLF_AUTO,
26
+ } git_crlf_t;
27
+
18
28
  typedef struct {
19
29
  git_attr_session *attr_session;
20
30
  git_buf *temp_buf;
@@ -0,0 +1,248 @@
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
+ /*
9
+ * This file contains code originally derrived from OpenBSD fnmatch.c
10
+ *
11
+ * Copyright (c) 1989, 1993, 1994
12
+ * The Regents of the University of California. All rights reserved.
13
+ *
14
+ * This code is derived from software contributed to Berkeley by
15
+ * Guido van Rossum.
16
+ *
17
+ * Redistribution and use in source and binary forms, with or without
18
+ * modification, are permitted provided that the following conditions
19
+ * are met:
20
+ * 1. Redistributions of source code must retain the above copyright
21
+ * notice, this list of conditions and the following disclaimer.
22
+ * 2. Redistributions in binary form must reproduce the above copyright
23
+ * notice, this list of conditions and the following disclaimer in the
24
+ * documentation and/or other materials provided with the distribution.
25
+ * 3. Neither the name of the University nor the names of its contributors
26
+ * may be used to endorse or promote products derived from this software
27
+ * without specific prior written permission.
28
+ *
29
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
30
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
32
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
33
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
35
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
38
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39
+ * SUCH DAMAGE.
40
+ */
41
+
42
+ /*
43
+ * Function fnmatch() as specified in POSIX 1003.2-1992, section B.6.
44
+ * Compares a filename or pathname to a pattern.
45
+ */
46
+
47
+ #include "fnmatch.h"
48
+
49
+ #include <ctype.h>
50
+ #include <stdio.h>
51
+ #include <string.h>
52
+
53
+ #define EOS '\0'
54
+
55
+ #define RANGE_MATCH 1
56
+ #define RANGE_NOMATCH 0
57
+ #define RANGE_ERROR (-1)
58
+
59
+ static int rangematch(const char *, char, int, char **);
60
+
61
+ static int
62
+ p_fnmatchx(const char *pattern, const char *string, int flags, size_t recurs)
63
+ {
64
+ const char *stringstart;
65
+ char *newp;
66
+ char c, test;
67
+ int recurs_flags = flags & ~FNM_PERIOD;
68
+
69
+ if (recurs-- == 0)
70
+ return FNM_NORES;
71
+
72
+ for (stringstart = string;;)
73
+ switch (c = *pattern++) {
74
+ case EOS:
75
+ if ((flags & FNM_LEADING_DIR) && *string == '/')
76
+ return (0);
77
+ return (*string == EOS ? 0 : FNM_NOMATCH);
78
+ case '?':
79
+ if (*string == EOS)
80
+ return (FNM_NOMATCH);
81
+ if (*string == '/' && (flags & FNM_PATHNAME))
82
+ return (FNM_NOMATCH);
83
+ if (*string == '.' && (flags & FNM_PERIOD) &&
84
+ (string == stringstart ||
85
+ ((flags & FNM_PATHNAME) && *(string - 1) == '/')))
86
+ return (FNM_NOMATCH);
87
+ ++string;
88
+ break;
89
+ case '*':
90
+ c = *pattern;
91
+
92
+ /* Let '**' override PATHNAME match for this segment.
93
+ * It will be restored if/when we recurse below.
94
+ */
95
+ if (c == '*') {
96
+ c = *++pattern;
97
+ /* star-star-slash is at the end, match by default */
98
+ if (c == EOS)
99
+ return 0;
100
+ /* Double-star must be at end or between slashes */
101
+ if (c != '/')
102
+ return (FNM_NOMATCH);
103
+
104
+ c = *++pattern;
105
+ do {
106
+ int e = p_fnmatchx(pattern, string, recurs_flags, recurs);
107
+ if (e != FNM_NOMATCH)
108
+ return e;
109
+ string = strchr(string, '/');
110
+ } while (string++);
111
+
112
+ /* If we get here, we didn't find a match */
113
+ return FNM_NOMATCH;
114
+ }
115
+
116
+ if (*string == '.' && (flags & FNM_PERIOD) &&
117
+ (string == stringstart ||
118
+ ((flags & FNM_PATHNAME) && *(string - 1) == '/')))
119
+ return (FNM_NOMATCH);
120
+
121
+ /* Optimize for pattern with * at end or before /. */
122
+ if (c == EOS) {
123
+ if (flags & FNM_PATHNAME)
124
+ return ((flags & FNM_LEADING_DIR) ||
125
+ strchr(string, '/') == NULL ?
126
+ 0 : FNM_NOMATCH);
127
+ else
128
+ return (0);
129
+ } else if (c == '/' && (flags & FNM_PATHNAME)) {
130
+ if ((string = strchr(string, '/')) == NULL)
131
+ return (FNM_NOMATCH);
132
+ break;
133
+ }
134
+
135
+ /* General case, use recursion. */
136
+ while ((test = *string) != EOS) {
137
+ int e;
138
+
139
+ e = p_fnmatchx(pattern, string, recurs_flags, recurs);
140
+ if (e != FNM_NOMATCH)
141
+ return e;
142
+ if (test == '/' && (flags & FNM_PATHNAME))
143
+ break;
144
+ ++string;
145
+ }
146
+ return (FNM_NOMATCH);
147
+ case '[':
148
+ if (*string == EOS)
149
+ return (FNM_NOMATCH);
150
+ if (*string == '/' && (flags & FNM_PATHNAME))
151
+ return (FNM_NOMATCH);
152
+ if (*string == '.' && (flags & FNM_PERIOD) &&
153
+ (string == stringstart ||
154
+ ((flags & FNM_PATHNAME) && *(string - 1) == '/')))
155
+ return (FNM_NOMATCH);
156
+
157
+ switch (rangematch(pattern, *string, flags, &newp)) {
158
+ case RANGE_ERROR:
159
+ /* not a good range, treat as normal text */
160
+ goto normal;
161
+ case RANGE_MATCH:
162
+ pattern = newp;
163
+ break;
164
+ case RANGE_NOMATCH:
165
+ return (FNM_NOMATCH);
166
+ }
167
+ ++string;
168
+ break;
169
+ case '\\':
170
+ if (!(flags & FNM_NOESCAPE)) {
171
+ if ((c = *pattern++) == EOS) {
172
+ c = '\\';
173
+ --pattern;
174
+ }
175
+ }
176
+ /* FALLTHROUGH */
177
+ default:
178
+ normal:
179
+ if (c != *string && !((flags & FNM_CASEFOLD) &&
180
+ (git__tolower((unsigned char)c) ==
181
+ git__tolower((unsigned char)*string))))
182
+ return (FNM_NOMATCH);
183
+ ++string;
184
+ break;
185
+ }
186
+ /* NOTREACHED */
187
+ }
188
+
189
+ static int
190
+ rangematch(const char *pattern, char test, int flags, char **newp)
191
+ {
192
+ int negate, ok;
193
+ char c, c2;
194
+
195
+ /*
196
+ * A bracket expression starting with an unquoted circumflex
197
+ * character produces unspecified results (IEEE 1003.2-1992,
198
+ * 3.13.2). This implementation treats it like '!', for
199
+ * consistency with the regular expression syntax.
200
+ * J.T. Conklin (conklin@ngai.kaleida.com)
201
+ */
202
+ if ((negate = (*pattern == '!' || *pattern == '^')) != 0)
203
+ ++pattern;
204
+
205
+ if (flags & FNM_CASEFOLD)
206
+ test = (char)git__tolower((unsigned char)test);
207
+
208
+ /*
209
+ * A right bracket shall lose its special meaning and represent
210
+ * itself in a bracket expression if it occurs first in the list.
211
+ * -- POSIX.2 2.8.3.2
212
+ */
213
+ ok = 0;
214
+ c = *pattern++;
215
+ do {
216
+ if (c == '\\' && !(flags & FNM_NOESCAPE))
217
+ c = *pattern++;
218
+ if (c == EOS)
219
+ return (RANGE_ERROR);
220
+ if (c == '/' && (flags & FNM_PATHNAME))
221
+ return (RANGE_NOMATCH);
222
+ if ((flags & FNM_CASEFOLD))
223
+ c = (char)git__tolower((unsigned char)c);
224
+ if (*pattern == '-'
225
+ && (c2 = *(pattern+1)) != EOS && c2 != ']') {
226
+ pattern += 2;
227
+ if (c2 == '\\' && !(flags & FNM_NOESCAPE))
228
+ c2 = *pattern++;
229
+ if (c2 == EOS)
230
+ return (RANGE_ERROR);
231
+ if (flags & FNM_CASEFOLD)
232
+ c2 = (char)git__tolower((unsigned char)c2);
233
+ if (c <= test && test <= c2)
234
+ ok = 1;
235
+ } else if (c == test)
236
+ ok = 1;
237
+ } while ((c = *pattern++) != ']');
238
+
239
+ *newp = (char *)pattern;
240
+ return (ok == negate ? RANGE_NOMATCH : RANGE_MATCH);
241
+ }
242
+
243
+ int
244
+ p_fnmatch(const char *pattern, const char *string, int flags)
245
+ {
246
+ return p_fnmatchx(pattern, string, flags, 64);
247
+ }
248
+