| -rw-r--r-- | ui-commit.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/ui-commit.c b/ui-commit.c index b441e14..e9de411 100644 --- a/ui-commit.c +++ b/ui-commit.c @@ -13,6 +13,9 @@ void cgit_print_commit(const char *hex) struct commit *commit; struct commitinfo *info; struct commit_list *p; + unsigned long size; + char type[20]; + char *buf; unsigned char sha1[20]; @@ -21,12 +24,24 @@ void cgit_print_commit(const char *hex) return; } - commit = lookup_commit_reference(sha1); + buf = read_sha1_file(sha1, type, &size); + if (!buf) { + cgit_print_error(fmt("Bad object reference: %s", hex)); + return; + } + + commit = lookup_commit(sha1); if (!commit) { cgit_print_error(fmt("Bad commit reference: %s", hex)); return; } + commit->buffer = buf; + if (parse_commit_buffer(commit, buf, size)) { + cgit_print_error(fmt("Malformed commit buffer: %s", hex)); + return; + } + info = cgit_parse_commit(commit); html("<table class='commit-info'>\n"); |