author | Lars Hjemli <hjemli@gmail.com> | 2009-08-24 08:55:01 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2009-08-24 08:55:01 (UTC) |
commit | 5ca8df0a3d75ba1ca5af28872977f7714b66ff37 (patch) (unidiff) | |
tree | f838611403f384c92fefc3eef69dc75507bb2e9d | |
parent | 3548320004512276ea0bbfe80b2ae9b5cc7e2c76 (diff) | |
download | cgit-5ca8df0a3d75ba1ca5af28872977f7714b66ff37.zip cgit-5ca8df0a3d75ba1ca5af28872977f7714b66ff37.tar.gz cgit-5ca8df0a3d75ba1ca5af28872977f7714b66ff37.tar.bz2 |
cgit.c: generate repo.snapshots in print_repo()
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cgit.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -436,8 +436,28 @@ int cmp_repos(const void *a, const void *b) | |||
436 | const struct cgit_repo *ra = a, *rb = b; | 436 | const struct cgit_repo *ra = a, *rb = b; |
437 | return strcmp(ra->url, rb->url); | 437 | return strcmp(ra->url, rb->url); |
438 | } | 438 | } |
439 | 439 | ||
440 | char *build_snapshot_setting(int bitmap) | ||
441 | { | ||
442 | const struct cgit_snapshot_format *f; | ||
443 | char *result = xstrdup(""); | ||
444 | char *tmp; | ||
445 | int len; | ||
446 | |||
447 | for (f = cgit_snapshot_formats; f->suffix; f++) { | ||
448 | if (f->bit & bitmap) { | ||
449 | tmp = result; | ||
450 | result = xstrdup(fmt("%s%s ", tmp, f->suffix)); | ||
451 | free(tmp); | ||
452 | } | ||
453 | } | ||
454 | len = strlen(result); | ||
455 | if (len) | ||
456 | result[len - 1] = '\0'; | ||
457 | return result; | ||
458 | } | ||
459 | |||
440 | void print_repo(FILE *f, struct cgit_repo *repo) | 460 | void print_repo(FILE *f, struct cgit_repo *repo) |
441 | { | 461 | { |
442 | fprintf(f, "repo.url=%s\n", repo->url); | 462 | fprintf(f, "repo.url=%s\n", repo->url); |
443 | fprintf(f, "repo.name=%s\n", repo->name); | 463 | fprintf(f, "repo.name=%s\n", repo->name); |
@@ -465,8 +485,13 @@ void print_repo(FILE *f, struct cgit_repo *repo) | |||
465 | if (repo->commit_filter && repo->commit_filter != ctx.cfg.commit_filter) | 485 | if (repo->commit_filter && repo->commit_filter != ctx.cfg.commit_filter) |
466 | fprintf(f, "repo.commit-filter=%s\n", repo->commit_filter->cmd); | 486 | fprintf(f, "repo.commit-filter=%s\n", repo->commit_filter->cmd); |
467 | if (repo->source_filter && repo->source_filter != ctx.cfg.source_filter) | 487 | if (repo->source_filter && repo->source_filter != ctx.cfg.source_filter) |
468 | fprintf(f, "repo.source-filter=%s\n", repo->source_filter->cmd); | 488 | fprintf(f, "repo.source-filter=%s\n", repo->source_filter->cmd); |
489 | if (repo->snapshots != ctx.cfg.snapshots) { | ||
490 | char *tmp = build_snapshot_setting(repo->snapshots); | ||
491 | fprintf(f, "repo.snapshots=%s\n", tmp); | ||
492 | free(tmp); | ||
493 | } | ||
469 | fprintf(f, "\n"); | 494 | fprintf(f, "\n"); |
470 | } | 495 | } |
471 | 496 | ||
472 | void print_repolist(FILE *f, struct cgit_repolist *list, int start) | 497 | void print_repolist(FILE *f, struct cgit_repolist *list, int start) |