- filename = fmt("%s-%s%s", cgit_repobasename(repo), hex,
- sat->suffix);
- cgit_snapshot_link(filename, NULL, NULL, (char *)head,
- (char *)hex, filename);
- html("<br/>");
- }
-}
-
-int cgit_parse_snapshots_mask(const char *str)
-{
- const struct snapshot_archive_t* sat;
- static const char *delim = " \t,:/|;";
- int f, tl, sl, rv = 0;
-
- /* favor legacy setting */
- if(atoi(str))
- return 1;
- for(;;) {
- str += strspn(str,delim);
- tl = strcspn(str,delim);
- if(!tl)
- break;
- for(f=0; f<snapshot_archives_len; f++) {
- sat = &snapshot_archives[f];
- sl = strlen(sat->suffix);
- if((tl == sl && !strncmp(sat->suffix, str, tl)) ||
- (tl == sl-1 && !strncmp(sat->suffix+1, str, tl-1))) {
- rv |= sat->bit;
- break;
- }
- }
- str += tl;
+ sl = strlen(f->suffix);
+ if(fnl < sl || strcmp(&filename[fnl-sl], f->suffix))
+ continue;
+ make_snapshot(f, hex, prefix, filename);
+ return;