cgit

commit 1a6025b7a515a23ab4c83f4a5da468e00e4f0a38

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>");
 }