]> granicus.if.org Git - cgit/commitdiff
Add prefix parameter to cgit_print_diff()
authorLars Hjemli <hjemli@gmail.com>
Mon, 1 Oct 2007 09:46:38 +0000 (11:46 +0200)
committerLars Hjemli <hjemli@gmail.com>
Mon, 1 Oct 2007 09:46:38 +0000 (11:46 +0200)
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
cgit.h
ui-diff.c

diff --git a/cgit.c b/cgit.c
index c86d290bce3477125409b3b75cc0d552618b5589..1b85b1518818e47b2780f87e8a47081c05a38668 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -107,7 +107,7 @@ static void cgit_print_repo_page(struct cacheitem *item)
                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 (file)
--- 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);
index 11a2ff8b96744d62cb477de1a72d4a38f9a559cd..ba0030f587d3957fa75493959cf6519edcb3c779 100644 (file)
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -89,7 +89,7 @@ static void filepair_cb(struct diff_filepair *pair)
                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 @@ 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, NULL);
+       cgit_diff_tree(sha2, sha1, filepair_cb, prefix);
        html("</td></tr>");
        html("</table>");
 }