-rw-r--r-- | ui-snapshot.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/ui-snapshot.c b/ui-snapshot.c index bd34a28..4d1aa88 100644 --- a/ui-snapshot.c +++ b/ui-snapshot.c | |||
@@ -70,64 +70,65 @@ static const struct snapshot_archive_t { | |||
70 | 70 | ||
71 | void cgit_print_snapshot(struct cacheitem *item, const char *head, | 71 | void cgit_print_snapshot(struct cacheitem *item, const char *head, |
72 | const char *hex, const char *prefix, | 72 | const char *hex, const char *prefix, |
73 | const char *filename, int snapshots) | 73 | const char *filename, int snapshots) |
74 | { | 74 | { |
75 | const struct snapshot_archive_t* sat; | 75 | const struct snapshot_archive_t* sat; |
76 | struct archiver_args args; | 76 | struct archiver_args args; |
77 | struct commit *commit; | 77 | struct commit *commit; |
78 | unsigned char sha1[20]; | 78 | unsigned char sha1[20]; |
79 | int f, sl, fnl = strlen(filename); | 79 | int f, sl, fnl = strlen(filename); |
80 | 80 | ||
81 | for(f=0; f<snapshot_archives_len; f++) { | 81 | for(f=0; f<snapshot_archives_len; f++) { |
82 | sat = &snapshot_archives[f]; | 82 | sat = &snapshot_archives[f]; |
83 | if(!(snapshots & sat->bit)) | 83 | if(!(snapshots & sat->bit)) |
84 | continue; | 84 | continue; |
85 | sl = strlen(sat->suffix); | 85 | sl = strlen(sat->suffix); |
86 | if(fnl<sl || strcmp(&filename[fnl-sl],sat->suffix)) | 86 | if(fnl<sl || strcmp(&filename[fnl-sl],sat->suffix)) |
87 | continue; | 87 | continue; |
88 | if (!hex) | 88 | if (!hex) |
89 | hex = head; | 89 | hex = head; |
90 | if(get_sha1(hex, sha1)) { | 90 | if(get_sha1(hex, sha1)) { |
91 | cgit_print_error(fmt("Bad object id: %s", hex)); | 91 | cgit_print_error(fmt("Bad object id: %s", hex)); |
92 | return; | 92 | return; |
93 | } | 93 | } |
94 | commit = lookup_commit_reference(sha1); | 94 | commit = lookup_commit_reference(sha1); |
95 | if(!commit) { | 95 | if(!commit) { |
96 | cgit_print_error(fmt("Not a commit reference: %s", hex)); | 96 | cgit_print_error(fmt("Not a commit reference: %s", hex)); |
97 | return;; | 97 | return;; |
98 | } | 98 | } |
99 | memset(&args,0,sizeof(args)); | 99 | memset(&args,0,sizeof(args)); |
100 | args.base = fmt("%s/", prefix); | 100 | args.base = fmt("%s/", prefix); |
101 | args.tree = commit->tree; | 101 | args.tree = commit->tree; |
102 | args.time = commit->date; | ||
102 | cgit_print_snapshot_start(sat->mimetype, filename, item); | 103 | cgit_print_snapshot_start(sat->mimetype, filename, item); |
103 | (*sat->write_func)(&args); | 104 | (*sat->write_func)(&args); |
104 | return; | 105 | return; |
105 | } | 106 | } |
106 | cgit_print_error(fmt("Unsupported snapshot format: %s", filename)); | 107 | cgit_print_error(fmt("Unsupported snapshot format: %s", filename)); |
107 | } | 108 | } |
108 | 109 | ||
109 | void cgit_print_snapshot_links(const char *repo, const char *head, | 110 | void cgit_print_snapshot_links(const char *repo, const char *head, |
110 | const char *hex, int snapshots) | 111 | const char *hex, int snapshots) |
111 | { | 112 | { |
112 | const struct snapshot_archive_t* sat; | 113 | const struct snapshot_archive_t* sat; |
113 | char *filename; | 114 | char *filename; |
114 | int f; | 115 | int f; |
115 | 116 | ||
116 | for(f=0; f<snapshot_archives_len; f++) { | 117 | for(f=0; f<snapshot_archives_len; f++) { |
117 | sat = &snapshot_archives[f]; | 118 | sat = &snapshot_archives[f]; |
118 | if(!(snapshots & sat->bit)) | 119 | if(!(snapshots & sat->bit)) |
119 | continue; | 120 | continue; |
120 | filename = fmt("%s-%s%s", cgit_repobasename(repo), hex, | 121 | filename = fmt("%s-%s%s", cgit_repobasename(repo), hex, |
121 | sat->suffix); | 122 | sat->suffix); |
122 | cgit_snapshot_link(filename, NULL, NULL, (char *)head, | 123 | cgit_snapshot_link(filename, NULL, NULL, (char *)head, |
123 | (char *)hex, filename); | 124 | (char *)hex, filename); |
124 | html("<br/>"); | 125 | html("<br/>"); |
125 | } | 126 | } |
126 | } | 127 | } |
127 | 128 | ||
128 | int cgit_parse_snapshots_mask(const char *str) | 129 | int cgit_parse_snapshots_mask(const char *str) |
129 | { | 130 | { |
130 | const struct snapshot_archive_t* sat; | 131 | const struct snapshot_archive_t* sat; |
131 | static const char *delim = " \t,:/|;"; | 132 | static const char *delim = " \t,:/|;"; |
132 | int f, tl, rv = 0; | 133 | int f, tl, rv = 0; |
133 | 134 | ||