X-Git-Url: https://git.cameronkatri.com/cgit.git/blobdiff_plain/8a3685bcf2612206fc24a2421acb53dd83aeab85..d41b2ddcb331caa74c1a90a0253f234142848552:/ui-commit.c diff --git a/ui-commit.c b/ui-commit.c index ce33cf9..2b4f677 100644 --- a/ui-commit.c +++ b/ui-commit.c @@ -7,157 +7,23 @@ */ #include "cgit.h" +#include "html.h" +#include "ui-shared.h" +#include "ui-diff.h" +#include "ui-log.h" -int files = 0, slots = 0; -int total_adds = 0, total_rems = 0, max_changes = 0; -int lines_added, lines_removed; - -struct fileinfo { - char status; - unsigned char old_sha1[20]; - unsigned char new_sha1[20]; - unsigned short old_mode; - unsigned short new_mode; - char *old_path; - char *new_path; - unsigned int added; - unsigned int removed; -} *items; - - -void print_fileinfo(struct fileinfo *info) -{ - char *query, *query2; - char *class; - double width; - - switch (info->status) { - case DIFF_STATUS_ADDED: - class = "add"; - break; - case DIFF_STATUS_COPIED: - class = "cpy"; - break; - case DIFF_STATUS_DELETED: - class = "del"; - break; - case DIFF_STATUS_MODIFIED: - class = "upd"; - break; - case DIFF_STATUS_RENAMED: - class = "mov"; - break; - case DIFF_STATUS_TYPE_CHANGED: - class = "typ"; - break; - case DIFF_STATUS_UNKNOWN: - class = "unk"; - break; - case DIFF_STATUS_UNMERGED: - class = "stg"; - break; - default: - die("bug: unhandled diff status %c", info->status); - } - - html("
author | "); html_txt(info->author); - html(" "); - html_txt(info->author_email); + if (!ctx.cfg.noplainemail) { + html(" "); + html_txt(info->author_email); + } html(" | "); - cgit_print_date(info->author_date); + cgit_print_date(info->author_date, FMT_LONGDATE, ctx.cfg.local_time); html(" |
---|---|---|
committer | "); html_txt(info->committer); - html(" "); - html_txt(info->committer_email); + if (!ctx.cfg.noplainemail) { + html(" "); + html_txt(info->committer_email); + } html(" | "); - cgit_print_date(info->committer_date); + cgit_print_date(info->committer_date, FMT_LONGDATE, ctx.cfg.local_time); + html(" |
commit | "); + tmp = sha1_to_hex(commit->object.sha1); + cgit_commit_link(tmp, NULL, NULL, ctx.qry.head, tmp, prefix, 0); + html(" ("); + cgit_patch_link("patch", NULL, NULL, NULL, tmp, prefix); + html(") ("); + if ((ctx.qry.ssdiff && !ctx.cfg.ssdiff) || (!ctx.qry.ssdiff && ctx.cfg.ssdiff)) + cgit_commit_link("unidiff", NULL, NULL, ctx.qry.head, tmp, prefix, 1); + else + cgit_commit_link("side-by-side diff", NULL, NULL, ctx.qry.head, tmp, prefix, 1); + html(") | |
tree | "); + tmp = xstrdup(hex); + cgit_tree_link(sha1_to_hex(commit->tree->object.sha1), NULL, NULL, + ctx.qry.head, tmp, NULL); + if (prefix) { + html(" /"); + cgit_tree_link(prefix, NULL, NULL, ctx.qry.head, tmp, prefix); + } html(" | |
tree | %s | |
"); + cgit_print_error("Error reading parent commit"); + html(" | ||
parent | " - "" - "%s | "); + tmp = tmp2 = sha1_to_hex(p->item->object.sha1); + if (ctx.repo->enable_subject_links) { + parent_info = cgit_parse_commit(parent); + tmp2 = parent_info->subject; + } + cgit_commit_link(tmp2, NULL, NULL, ctx.qry.head, tmp, prefix, 0); + html(" ("); + cgit_diff_link("diff", NULL, NULL, ctx.qry.head, hex, + sha1_to_hex(p->item->object.sha1), prefix, 0); + html(") | "); + parents++; } - if (cgit_repo->snapshots) { - htmlf("
download | %s | |
download | "); + cgit_print_snapshot_links(ctx.qry.repo, ctx.qry.head, + hex, ctx.repo->snapshots); + html(" |