X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/b1f9b9c1459cb9a30ebf80721aff6ef788d1f891..502865a5ec40fed5f1f865cb34002aecaab8405e:/ui-patch.c?ds=sidebyside diff --git a/ui-patch.c b/ui-patch.c index d93426b..c1c4ce3 100644 --- a/ui-patch.c +++ b/ui-patch.c @@ -8,6 +8,7 @@ #include "cgit.h" #include "html.h" +#include "ui-shared.h" static void print_line(char *line, int len) { @@ -69,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; @@ -89,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: ");