html("<tr>");
htmlf("<td class='mode'>");
- html_filemode(pair->two->mode);
- if (pair->one->mode != pair->two->mode) {
+ if (is_null_sha1(pair->two->sha1)) {
+ html_filemode(pair->one->mode);
+ } else {
+ html_filemode(pair->two->mode);
+ }
+
+ if (pair->one->mode != pair->two->mode &&
+ !is_null_sha1(pair->one->sha1) &&
+ !is_null_sha1(pair->two->sha1)) {
html("<span class='modechange'>[");
html_filemode(pair->one->mode);
html("]</span>");
}
htmlf("</td><td class='%s'>", class);
- query = fmt("id=%s", sha1_to_hex(pair->two->sha1));
- html_link_open(cgit_pageurl(cgit_query_repo, "view", query),
+ query = fmt("id=%s&id2=%s", sha1_to_hex(pair->one->sha1),
+ sha1_to_hex(pair->two->sha1));
+ html_link_open(cgit_pageurl(cgit_query_repo, "diff", query),
NULL, NULL);
if (pair->status == DIFF_STATUS_COPIED ||
pair->status == DIFF_STATUS_RENAMED) {