Author: Lars Hjemli <hjemli@gmail.com>
Add prefix parameter to cgit_print_diff() This allows a diff to be restricted to the path prefix specified in the url. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
cgit.c | 2 +- cgit.h | 2 +- ui-diff.c | 4 ++--
diff --git a/cgit.c b/cgit.c index c86d290bce3477125409b3b75cc0d552618b5589..1b85b1518818e47b2780f87e8a47081c05a38668 100644 --- a/cgit.c +++ b/cgit.c @@ -107,7 +107,7 @@ case CMD_TAG: cgit_print_tag(cgit_query_sha1); break; case CMD_DIFF: - cgit_print_diff(cgit_query_sha1, cgit_query_sha2); + cgit_print_diff(cgit_query_sha1, cgit_query_sha2, cgit_query_path); break; default: cgit_print_error("Invalid request"); diff --git a/cgit.h b/cgit.h index 5ef0bc5336f3099ba003b85b5b5eeb84806f9f21..e96311fbda39fbc6bd03e52d73349a652a7e5e83 100644 --- a/cgit.h +++ b/cgit.h @@ -238,7 +238,7 @@ extern void cgit_print_blob(struct cacheitem *item, const char *hex, char *path); extern void cgit_print_tree(const char *rev, char *path); extern void cgit_print_commit(char *hex); extern void cgit_print_tag(char *revname); -extern void cgit_print_diff(const char *new_hex, const char *old_hex); +extern void cgit_print_diff(const char *new_hex, const char *old_hex, const char *prefix); extern void cgit_print_snapshot(struct cacheitem *item, const char *head, const char *hex, const char *prefix, const char *filename, int snapshot); diff --git a/ui-diff.c b/ui-diff.c index 11a2ff8b96744d62cb477de1a72d4a38f9a559cd..ba0030f587d3957fa75493959cf6519edcb3c779 100644 --- a/ui-diff.c +++ b/ui-diff.c @@ -89,7 +89,7 @@ if (cgit_diff_files(pair->one->sha1, pair->two->sha1, print_line)) cgit_print_error("Error running diff"); } -void cgit_print_diff(const char *new_rev, const char *old_rev) +void cgit_print_diff(const char *new_rev, const char *old_rev, const char *prefix) { unsigned char sha1[20], sha2[20]; enum object_type type; @@ -133,7 +133,7 @@ cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(sha2))); } html("<table class='diff'>"); html("<tr><td>"); - cgit_diff_tree(sha2, sha1, filepair_cb, NULL); + cgit_diff_tree(sha2, sha1, filepair_cb, prefix); html("</td></tr>"); html("</table>"); }