summary refs log tree commit diff
path: root/ui-diff.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui-diff.c')
-rw-r--r--ui-diff.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/ui-diff.c b/ui-diff.c
index 7ff7e46..a7bc667 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -34,6 +34,17 @@ static struct fileinfo {
 } *items;
 
 static int use_ssdiff = 0;
+static struct diff_filepair *current_filepair;
+
+struct diff_filespec *cgit_get_current_old_file(void)
+{
+	return current_filepair->one;
+}
+
+struct diff_filespec *cgit_get_current_new_file(void)
+{
+	return current_filepair->two;
+}
 
 static void print_fileinfo(struct fileinfo *info)
 {
@@ -161,8 +172,11 @@ void cgit_print_diffstat(const unsigned char *old_sha1,
 	html("<div class='diffstat-header'>");
 	cgit_diff_link("Diffstat", NULL, NULL, ctx.qry.head, ctx.qry.sha1,
 		       ctx.qry.sha2, NULL, 0);
-	if (prefix)
-		htmlf(" (limited to '%s')", prefix);
+	if (prefix) {
+		html(" (limited to '");
+		html_txt(prefix);
+		html("')");
+	}
 	html(" (");
 	ctx.qry.context = (save_context > 0 ? save_context : 3) << 1;
 	cgit_self_link("more", NULL, NULL, &ctx);
@@ -284,6 +298,7 @@ static void filepair_cb(struct diff_filepair *pair)
 	int binary = 0;
 	linediff_fn print_line_fn = print_line;
 
+	current_filepair = pair;
 	if (use_ssdiff) {
 		cgit_ssdiff_header_begin();
 		print_line_fn = cgit_ssdiff_line_cb;