aboutsummaryrefslogtreecommitdiffstats
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;