-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, const unsigned char *new_sha1, - filepair_fn fn); + filepair_fn fn, const char *prefix); @@ -388,3 +388,3 @@ void cgit_diff_tree(const unsigned char *old_sha1, const unsigned char *new_sha1, - filepair_fn fn) + filepair_fn fn, const char *prefix) { @@ -392,2 +392,3 @@ void cgit_diff_tree(const unsigned char *old_sha1, int ret; + int prefixlen; @@ -400,2 +401,8 @@ void cgit_diff_tree(const unsigned char *old_sha1, opt.format_callback_data = fn; + if (prefix) { + opt.nr_paths = 1; + opt.paths = &prefix; + prefixlen = strlen(prefix); + opt.pathlens = &prefixlen; + } diff_setup_done(&opt); @@ -416,3 +423,3 @@ void cgit_diff_commit(struct commit *commit, filepair_fn fn) old_sha1 = commit->parents->item->object.sha1; - cgit_diff_tree(old_sha1, commit->object.sha1, fn); + cgit_diff_tree(old_sha1, commit->object.sha1, fn, NULL); } @@ -133,6 +133,5 @@ void cgit_print_diff(const char *new_rev, const char *old_rev) } - html("<table class='diff'>"); html("<tr><td>"); - cgit_diff_tree(sha2, sha1, filepair_cb); + cgit_diff_tree(sha2, sha1, filepair_cb, NULL); html("</td></tr>"); |