]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-diff.c
ssdiff: anchors for ssdiff
[ps-cgit] / ui-diff.c
index 1656b77b845ebbb7e0c9da69170458ca08859fce..a53425dbf069fee2de38f621528c2e6753beba51 100644 (file)
--- 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)
 {
@@ -92,7 +103,7 @@ static void print_fileinfo(struct fileinfo *info)
                      info->old_path);
        html("</td><td class='right'>");
        if (info->binary) {
-               htmlf("bin</td><td class='graph'>%d -> %d bytes",
+               htmlf("bin</td><td class='graph'>%ld -> %ld bytes",
                      info->old_size, info->new_size);
                return;
        }
@@ -171,6 +182,11 @@ void cgit_print_diffstat(const unsigned char *old_sha1,
        cgit_self_link("less", NULL, NULL, &ctx);
        ctx.qry.context = save_context;
        html(" context)");
+       html(" (");
+       ctx.qry.ignorews = (ctx.qry.ignorews + 1) % 2;
+       cgit_self_link(ctx.qry.ignorews ? "ignore" : "show", NULL, NULL, &ctx);
+       ctx.qry.ignorews = (ctx.qry.ignorews + 1) % 2;
+       html(" whitespace changes)");
        html("</div>");
        html("<table summary='diffstat' class='diffstat'>");
        max_changes = 0;
@@ -279,6 +295,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;