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
@@ -432,16 +432,36 @@ static void process_request(void *cbdata) | |||
432 | } | 432 | } |
433 | 433 | ||
434 | int cmp_repos(const void *a, const void *b) | 434 | int cmp_repos(const void *a, const void *b) |
435 | { | 435 | { |
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); |
444 | fprintf(f, "repo.path=%s\n", repo->path); | 464 | fprintf(f, "repo.path=%s\n", repo->path); |
445 | if (repo->owner) | 465 | if (repo->owner) |
446 | fprintf(f, "repo.owner=%s\n", repo->owner); | 466 | fprintf(f, "repo.owner=%s\n", repo->owner); |
447 | if (repo->desc) | 467 | if (repo->desc) |
@@ -461,16 +481,21 @@ void print_repo(FILE *f, struct cgit_repo *repo) | |||
461 | fprintf(f, "repo.enable-log-linecount=%d\n", | 481 | fprintf(f, "repo.enable-log-linecount=%d\n", |
462 | repo->enable_log_linecount); | 482 | repo->enable_log_linecount); |
463 | if (repo->about_filter && repo->about_filter != ctx.cfg.about_filter) | 483 | if (repo->about_filter && repo->about_filter != ctx.cfg.about_filter) |
464 | fprintf(f, "repo.about-filter=%s\n", repo->about_filter->cmd); | 484 | fprintf(f, "repo.about-filter=%s\n", repo->about_filter->cmd); |
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) |
473 | { | 498 | { |
474 | int i; | 499 | int i; |
475 | 500 | ||
476 | for(i = start; i < list->count; i++) | 501 | for(i = start; i < list->count; i++) |