/* ui-diff.c: show diff between two blobs
*
- * Copyright (C) 2006 Lars Hjemli
+ * Copyright (C) 2006-2014 cgit Development Team <cgit@lists.zx2c4.com>
*
* Licensed under GNU General Public License v2
* (see COPYING for full license text)
}
htmlf("</td><td class='%s'>", class);
cgit_diff_link(info->new_path, NULL, NULL, ctx.qry.head, ctx.qry.sha1,
- ctx.qry.sha2, info->new_path, 0);
+ ctx.qry.sha2, info->new_path);
if (info->status == DIFF_STATUS_COPIED || info->status == DIFF_STATUS_RENAMED) {
htmlf(" (%s from ",
info->status == DIFF_STATUS_COPIED ? "copied" : "renamed");
html("<div class='diffstat-header'>");
cgit_diff_link("Diffstat", NULL, NULL, ctx.qry.head, ctx.qry.sha1,
- ctx.qry.sha2, NULL, 0);
+ ctx.qry.sha2, NULL);
if (prefix) {
html(" (limited to '");
html_txt(prefix);
html("</tr><tr>");
html("<td class='label'>mode:</td>");
html("<td class='ctrl'>");
- html("<select name='ss' onchange='this.form.submit();'>");
- curr = ctx.qry.has_ssdiff ? ctx.qry.ssdiff : ctx.cfg.ssdiff;
+ html("<select name='dt' onchange='this.form.submit();'>");
+ curr = ctx.qry.has_difftype ? ctx.qry.difftype : ctx.cfg.difftype;
html_intoption(0, "unified", curr);
html_intoption(1, "ssdiff", curr);
+ html_intoption(2, "stat only", curr);
html("</select></td></tr>");
html("<tr><td/><td class='ctrl'>");
html("<noscript><input type='submit' value='reload'/></noscript>");
{
struct commit *commit, *commit2;
const unsigned char *old_tree_sha1, *new_tree_sha1;
+ diff_type difftype;
if (!new_rev)
new_rev = ctx.qry.head;
diff_setup_done(&diffopt);
ctx.page.mimetype = "text/plain";
- cgit_print_http_headers(&ctx);
+ cgit_print_http_headers();
if (old_tree_sha1) {
diff_tree_sha1(old_tree_sha1, new_tree_sha1, "",
&diffopt);
return;
}
- use_ssdiff = ctx.qry.has_ssdiff ? ctx.qry.ssdiff : ctx.cfg.ssdiff;
+ difftype = ctx.qry.has_difftype ? ctx.qry.difftype : ctx.cfg.difftype;
+ use_ssdiff = difftype == DIFF_SSDIFF;
if (show_ctrls)
cgit_print_diff_ctrls();
cgit_print_diffstat(old_rev_sha1, new_rev_sha1, prefix);
+ if (difftype == DIFF_STATONLY)
+ return;
+
if (use_ssdiff) {
html("<table summary='ssdiff' class='ssdiff'>");
} else {