-rw-r--r-- | ui-commit.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ui-commit.c b/ui-commit.c index 73fa104..de3f2cf 100644 --- a/ui-commit.c +++ b/ui-commit.c @@ -115,32 +115,33 @@ void cgit_diffstat(struct commit *commit) commit->object.sha1, "", &opt); else ret = diff_root_tree_sha1(commit->object.sha1, "", &opt); diffcore_std(&opt); diff_flush(&opt); } void cgit_print_commit(const char *hex) { struct commit *commit; struct commitinfo *info; struct commit_list *p; unsigned char sha1[20]; char *query; + char *filename; if (get_sha1(hex, sha1)) { cgit_print_error(fmt("Bad object id: %s", hex)); return; } commit = lookup_commit_reference(sha1); if (!commit) { cgit_print_error(fmt("Bad commit reference: %s", hex)); return; } info = cgit_parse_commit(commit); html("<table class='commit-info'>\n"); html("<tr><th>author</th><td>"); html_txt(info->author); html(" "); @@ -155,31 +156,37 @@ void cgit_print_commit(const char *hex) html("</td><td class='right'>"); cgit_print_date(info->committer_date); html("</td></tr>\n"); html("<tr><th>tree</th><td colspan='2' class='sha1'><a href='"); query = fmt("id=%s", sha1_to_hex(commit->tree->object.sha1)); html_attr(cgit_pageurl(cgit_query_repo, "tree", query)); htmlf("'>%s</a></td></tr>\n", sha1_to_hex(commit->tree->object.sha1)); for (p = commit->parents; p ; p = p->next) { html("<tr><th>parent</th>" "<td colspan='2' class='sha1'>" "<a href='"); query = fmt("id=%s", sha1_to_hex(p->item->object.sha1)); html_attr(cgit_pageurl(cgit_query_repo, "commit", query)); htmlf("'>%s</a></td></tr>\n", sha1_to_hex(p->item->object.sha1)); } + htmlf("<tr><th>download</th><td colspan='2' class='sha1'><a href='"); + filename = fmt("%s-%s.zip", cgit_query_repo, hex); + html_attr(cgit_pageurl(cgit_query_repo, "snapshot", + fmt("id=%s&name=%s", hex, filename))); + htmlf("'>%s</a></td></tr>", filename); + html("</table>\n"); html("<div class='commit-subject'>"); html_txt(info->subject); html("</div>"); html("<div class='commit-msg'>"); html_txt(info->msg); html("</div>"); html("<table class='diffstat'>"); html("<tr><th colspan='3'>Affected files</tr>\n"); cgit_diffstat(commit); htmlf("<tr><td colspan='3' class='summary'>" "%d file%s changed</td></tr>\n", files, files > 1 ? "s" : ""); html("</table>"); cgit_free_commitinfo(info); } |