-rw-r--r-- | ui-commit.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ui-commit.c b/ui-commit.c index c5ee8e7..b49b2e9 100644 --- a/ui-commit.c +++ b/ui-commit.c @@ -37,26 +37,33 @@ void print_filepair(struct diff_filepair *pair) case DIFF_STATUS_UNKNOWN: class = "unk"; break; case DIFF_STATUS_UNMERGED: class = "stg"; break; default: die("bug: unhandled diff status %c", pair->status); } html("<tr>"); htmlf("<td class='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) { + } + + 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), NULL, NULL); if (pair->status == DIFF_STATUS_COPIED || pair->status == DIFF_STATUS_RENAMED) { html_txt(pair->two->path); htmlf("</a> (%s from ", pair->status == DIFF_STATUS_COPIED ? |