X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/e0572c39f78b4f88c706a49a60e211302b8e015c..b7f33786ef4b155a11b0324f84bbde5d7fc9c998:/ui-patch.c diff --git a/ui-patch.c b/ui-patch.c index e7a010a..e60877d 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,14 +90,20 @@ 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: "); - cgit_print_date(info->author_date, "%a, %d %b %Y %H:%M:%S %z%n"); + cgit_print_date(info->author_date, "%a, %d %b %Y %H:%M:%S %z%n", ctx.cfg.local_time); htmlf("Subject: %s\n\n", info->subject); if (info->msg && *info->msg) { htmlf("%s", info->msg);