aboutsummaryrefslogtreecommitdiffstats
path: root/ui-snapshot.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui-snapshot.c')
-rw-r--r--ui-snapshot.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/ui-snapshot.c b/ui-snapshot.c
index 6f09151..f25613e 100644
--- a/ui-snapshot.c
+++ b/ui-snapshot.c
@@ -58,8 +58,8 @@ static int write_tar_bzip2_archive(struct archiver_args *args)
58 58
59const struct cgit_snapshot_format cgit_snapshot_formats[] = { 59const struct cgit_snapshot_format cgit_snapshot_formats[] = {
60 { ".zip", "application/x-zip", write_zip_archive, 0x1 }, 60 { ".zip", "application/x-zip", write_zip_archive, 0x1 },
61 { ".tar.gz", "application/x-tar", write_tar_gzip_archive, 0x2 }, 61 { ".tar.gz", "application/x-gzip", write_tar_gzip_archive, 0x2 },
62 { ".tar.bz2", "application/x-tar", write_tar_bzip2_archive, 0x4 }, 62 { ".tar.bz2", "application/x-bzip2", write_tar_bzip2_archive, 0x4 },
63 { ".tar", "application/x-tar", write_tar_archive, 0x8 }, 63 { ".tar", "application/x-tar", write_tar_archive, 0x8 },
64 {} 64 {}
65}; 65};
@@ -175,10 +175,12 @@ void cgit_print_snapshot(const char *head, const char *hex,
175 175
176 if (!hex && dwim) { 176 if (!hex && dwim) {
177 hex = get_ref_from_filename(ctx.repo->url, filename, f); 177 hex = get_ref_from_filename(ctx.repo->url, filename, f);
178 if (hex != NULL) { 178 if (hex == NULL) {
179 prefix = xstrdup(filename); 179 html_status(404, "Not found", 0);
180 prefix[strlen(filename) - strlen(f->suffix)] = '\0'; 180 return;
181 } 181 }
182 prefix = xstrdup(filename);
183 prefix[strlen(filename) - strlen(f->suffix)] = '\0';
182 } 184 }
183 185
184 if (!hex) 186 if (!hex)