X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/3e9578e9a3393eaebc658ad650a3241bf1930176..048f195eaf2fedb56987f0c8c89b9fd46375aa87:/ui-snapshot.c diff --git a/ui-snapshot.c b/ui-snapshot.c index 3107b05..bf4bcd7 100644 --- a/ui-snapshot.c +++ b/ui-snapshot.c @@ -99,7 +99,7 @@ static const struct cgit_snapshot_format *get_format(const char *filename) const struct cgit_snapshot_format *fmt; for (fmt = cgit_snapshot_formats; fmt->suffix; fmt++) { - if (!suffixcmp(filename, fmt->suffix)) + if (ends_with(filename, fmt->suffix)) return fmt; } return NULL; @@ -119,6 +119,7 @@ static int make_snapshot(const struct cgit_snapshot_format *format, cgit_print_error("Not a commit reference: %s", hex); return 1; } + ctx.page.etag = sha1_to_hex(sha1); ctx.page.mimetype = xstrdup(format->mimetype); ctx.page.filename = xstrdup(filename); cgit_print_http_headers(); @@ -151,7 +152,7 @@ static const char *get_ref_from_filename(const char *url, const char *filename, goto out; reponame = cgit_repobasename(url); - if (prefixcmp(snapshot.buf, reponame) == 0) { + if (starts_with(snapshot.buf, reponame)) { const char *new_start = snapshot.buf; new_start += strlen(reponame); while (new_start && (*new_start == '-' || *new_start == '_')) @@ -212,7 +213,7 @@ void cgit_print_snapshot(const char *head, const char *hex, if (!hex && dwim) { hex = get_ref_from_filename(ctx.repo->url, filename, f); if (hex == NULL) { - html_status(404, "Not found", 0); + cgit_print_error_page(404, "Not found", "Not found"); return; } prefix = xstrdup(filename);