author | Lars Hjemli <hjemli@gmail.com> | 2007-10-01 09:42:19 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-10-01 09:42:19 (UTC) |
commit | f527a57c8a55f5fd315e1bc1cb338f5f4a9b20ae (patch) (unidiff) | |
tree | 086e1afad5762c5b6bb09672b58f2c491ffbbc20 | |
parent | 98fcf7227c8dda520c864ea8a51012934115258f (diff) | |
download | cgit-f527a57c8a55f5fd315e1bc1cb338f5f4a9b20ae.zip cgit-f527a57c8a55f5fd315e1bc1cb338f5f4a9b20ae.tar.gz cgit-f527a57c8a55f5fd315e1bc1cb338f5f4a9b20ae.tar.bz2 |
Add prefix parameter to cgit_diff_tree()
This paramter can be used to restrict a diff to the specified path prefix.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cgit.h | 2 | ||||
-rw-r--r-- | shared.c | 11 | ||||
-rw-r--r-- | ui-diff.c | 3 |
3 files changed, 11 insertions, 5 deletions
@@ -172,3 +172,3 @@ extern void cgit_diff_tree(const unsigned char *old_sha1, | |||
172 | const unsigned char *new_sha1, | 172 | const unsigned char *new_sha1, |
173 | filepair_fn fn); | 173 | filepair_fn fn, const char *prefix); |
174 | 174 | ||
@@ -388,3 +388,3 @@ void cgit_diff_tree(const unsigned char *old_sha1, | |||
388 | const unsigned char *new_sha1, | 388 | const unsigned char *new_sha1, |
389 | filepair_fn fn) | 389 | filepair_fn fn, const char *prefix) |
390 | { | 390 | { |
@@ -392,2 +392,3 @@ void cgit_diff_tree(const unsigned char *old_sha1, | |||
392 | int ret; | 392 | int ret; |
393 | int prefixlen; | ||
393 | 394 | ||
@@ -400,2 +401,8 @@ void cgit_diff_tree(const unsigned char *old_sha1, | |||
400 | opt.format_callback_data = fn; | 401 | opt.format_callback_data = fn; |
402 | if (prefix) { | ||
403 | opt.nr_paths = 1; | ||
404 | opt.paths = &prefix; | ||
405 | prefixlen = strlen(prefix); | ||
406 | opt.pathlens = &prefixlen; | ||
407 | } | ||
401 | diff_setup_done(&opt); | 408 | diff_setup_done(&opt); |
@@ -416,3 +423,3 @@ void cgit_diff_commit(struct commit *commit, filepair_fn fn) | |||
416 | old_sha1 = commit->parents->item->object.sha1; | 423 | old_sha1 = commit->parents->item->object.sha1; |
417 | cgit_diff_tree(old_sha1, commit->object.sha1, fn); | 424 | cgit_diff_tree(old_sha1, commit->object.sha1, fn, NULL); |
418 | } | 425 | } |
@@ -133,6 +133,5 @@ void cgit_print_diff(const char *new_rev, const char *old_rev) | |||
133 | } | 133 | } |
134 | |||
135 | html("<table class='diff'>"); | 134 | html("<table class='diff'>"); |
136 | html("<tr><td>"); | 135 | html("<tr><td>"); |
137 | cgit_diff_tree(sha2, sha1, filepair_cb); | 136 | cgit_diff_tree(sha2, sha1, filepair_cb, NULL); |
138 | html("</td></tr>"); | 137 | html("</td></tr>"); |