X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/e0572c39f78b4f88c706a49a60e211302b8e015c..4c9916043d6aabb8278e0d78f5fa71a59f82889d:/ui-patch.c diff --git a/ui-patch.c b/ui-patch.c index e7a010a..c1c4ce3 100644 --- a/ui-patch.c +++ b/ui-patch.c @@ -7,6 +7,8 @@ */ #include "cgit.h" +#include "html.h" +#include "ui-shared.h" static void print_line(char *line, int len) { @@ -68,7 +70,7 @@ static void filepair_cb(struct diff_filepair *pair) html("Error running diff"); } -void cgit_print_patch(char *hex, struct cacheitem *item) +void cgit_print_patch(char *hex) { struct commit *commit; struct commitinfo *info; @@ -76,7 +78,7 @@ void cgit_print_patch(char *hex, struct cacheitem *item) char *patchname; if (!hex) - hex = cgit_query_head; + hex = ctx.qry.head; if (get_sha1(hex, sha1)) { cgit_print_error(fmt("Bad object id: %s", hex)); @@ -88,10 +90,16 @@ void cgit_print_patch(char *hex, struct cacheitem *item) return; } info = cgit_parse_commit(commit); - hashcpy(old_sha1, commit->parents->item->object.sha1); + + if (commit->parents && commit->parents->item) + hashcpy(old_sha1, commit->parents->item->object.sha1); + else + hashclr(old_sha1); patchname = fmt("%s.patch", sha1_to_hex(sha1)); - cgit_print_snapshot_start("text/plain", patchname, item); + ctx.page.mimetype = "text/plain"; + ctx.page.filename = patchname; + cgit_print_http_headers(&ctx); htmlf("From %s Mon Sep 17 00:00:00 2001\n", sha1_to_hex(sha1)); htmlf("From: %s%s\n", info->author, info->author_email); html("Date: ");