summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/cgit.c b/cgit.c
index 93a7a69..8381630 100644
--- a/cgit.c
+++ b/cgit.c
@@ -436,57 +436,69 @@ 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
440char *build_snapshot_setting(int bitmap) 440char *build_snapshot_setting(int bitmap)
441{ 441{
442 const struct cgit_snapshot_format *f; 442 const struct cgit_snapshot_format *f;
443 char *result = xstrdup(""); 443 char *result = xstrdup("");
444 char *tmp; 444 char *tmp;
445 int len; 445 int len;
446 446
447 for (f = cgit_snapshot_formats; f->suffix; f++) { 447 for (f = cgit_snapshot_formats; f->suffix; f++) {
448 if (f->bit & bitmap) { 448 if (f->bit & bitmap) {
449 tmp = result; 449 tmp = result;
450 result = xstrdup(fmt("%s%s ", tmp, f->suffix)); 450 result = xstrdup(fmt("%s%s ", tmp, f->suffix));
451 free(tmp); 451 free(tmp);
452 } 452 }
453 } 453 }
454 len = strlen(result); 454 len = strlen(result);
455 if (len) 455 if (len)
456 result[len - 1] = '\0'; 456 result[len - 1] = '\0';
457 return result; 457 return result;
458} 458}
459 459
460char *get_first_line(char *txt)
461{
462 char *t = xstrdup(txt);
463 char *p = strchr(t, '\n');
464 if (p)
465 *p = '\0';
466 return t;
467}
468
460void print_repo(FILE *f, struct cgit_repo *repo) 469void print_repo(FILE *f, struct cgit_repo *repo)
461{ 470{
462 fprintf(f, "repo.url=%s\n", repo->url); 471 fprintf(f, "repo.url=%s\n", repo->url);
463 fprintf(f, "repo.name=%s\n", repo->name); 472 fprintf(f, "repo.name=%s\n", repo->name);
464 fprintf(f, "repo.path=%s\n", repo->path); 473 fprintf(f, "repo.path=%s\n", repo->path);
465 if (repo->owner) 474 if (repo->owner)
466 fprintf(f, "repo.owner=%s\n", repo->owner); 475 fprintf(f, "repo.owner=%s\n", repo->owner);
467 if (repo->desc) 476 if (repo->desc) {
468 fprintf(f, "repo.desc=%s\n", repo->desc); 477 char *tmp = get_first_line(repo->desc);
478 fprintf(f, "repo.desc=%s\n", tmp);
479 free(tmp);
480 }
469 if (repo->readme) 481 if (repo->readme)
470 fprintf(f, "repo.readme=%s\n", repo->readme); 482 fprintf(f, "repo.readme=%s\n", repo->readme);
471 if (repo->defbranch) 483 if (repo->defbranch)
472 fprintf(f, "repo.defbranch=%s\n", repo->defbranch); 484 fprintf(f, "repo.defbranch=%s\n", repo->defbranch);
473 if (repo->module_link) 485 if (repo->module_link)
474 fprintf(f, "repo.module-link=%s\n", repo->module_link); 486 fprintf(f, "repo.module-link=%s\n", repo->module_link);
475 if (repo->section) 487 if (repo->section)
476 fprintf(f, "repo.section=%s\n", repo->section); 488 fprintf(f, "repo.section=%s\n", repo->section);
477 if (repo->clone_url) 489 if (repo->clone_url)
478 fprintf(f, "repo.clone-url=%s\n", repo->clone_url); 490 fprintf(f, "repo.clone-url=%s\n", repo->clone_url);
479 fprintf(f, "repo.enable-log-filecount=%d\n", 491 fprintf(f, "repo.enable-log-filecount=%d\n",
480 repo->enable_log_filecount); 492 repo->enable_log_filecount);
481 fprintf(f, "repo.enable-log-linecount=%d\n", 493 fprintf(f, "repo.enable-log-linecount=%d\n",
482 repo->enable_log_linecount); 494 repo->enable_log_linecount);
483 if (repo->about_filter && repo->about_filter != ctx.cfg.about_filter) 495 if (repo->about_filter && repo->about_filter != ctx.cfg.about_filter)
484 fprintf(f, "repo.about-filter=%s\n", repo->about_filter->cmd); 496 fprintf(f, "repo.about-filter=%s\n", repo->about_filter->cmd);
485 if (repo->commit_filter && repo->commit_filter != ctx.cfg.commit_filter) 497 if (repo->commit_filter && repo->commit_filter != ctx.cfg.commit_filter)
486 fprintf(f, "repo.commit-filter=%s\n", repo->commit_filter->cmd); 498 fprintf(f, "repo.commit-filter=%s\n", repo->commit_filter->cmd);
487 if (repo->source_filter && repo->source_filter != ctx.cfg.source_filter) 499 if (repo->source_filter && repo->source_filter != ctx.cfg.source_filter)
488 fprintf(f, "repo.source-filter=%s\n", repo->source_filter->cmd); 500 fprintf(f, "repo.source-filter=%s\n", repo->source_filter->cmd);
489 if (repo->snapshots != ctx.cfg.snapshots) { 501 if (repo->snapshots != ctx.cfg.snapshots) {
490 char *tmp = build_snapshot_setting(repo->snapshots); 502 char *tmp = build_snapshot_setting(repo->snapshots);
491 fprintf(f, "repo.snapshots=%s\n", tmp); 503 fprintf(f, "repo.snapshots=%s\n", tmp);
492 free(tmp); 504 free(tmp);