]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-diff.c
CGIT 0.9
[ps-cgit] / ui-diff.c
index 7ff7e46d9e5b1551736900e0719a1d8147b69b67..a7bc667f799cfd0e167508e90d0f5273d3c90f42 100644 (file)
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -34,6 +34,17 @@ static struct fileinfo {
 } *items;
 
 static int use_ssdiff = 0;
 } *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)
 {
 
 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);
        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);
        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;
 
        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;
        if (use_ssdiff) {
                cgit_ssdiff_header_begin();
                print_line_fn = cgit_ssdiff_line_cb;