-rw-r--r-- | cgit.c | 2 | ||||
-rw-r--r-- | cgit.h | 1 | ||||
-rw-r--r-- | ui-shared.c | 14 |
3 files changed, 13 insertions, 4 deletions
@@ -20,16 +20,18 @@ void config_cb(const char *name, const char *value) | |||
20 | if (!strcmp(name, "root-title")) | 20 | if (!strcmp(name, "root-title")) |
21 | ctx.cfg.root_title = xstrdup(value); | 21 | ctx.cfg.root_title = xstrdup(value); |
22 | else if (!strcmp(name, "root-desc")) | 22 | else if (!strcmp(name, "root-desc")) |
23 | ctx.cfg.root_desc = xstrdup(value); | 23 | ctx.cfg.root_desc = xstrdup(value); |
24 | else if (!strcmp(name, "root-readme")) | 24 | else if (!strcmp(name, "root-readme")) |
25 | ctx.cfg.root_readme = xstrdup(value); | 25 | ctx.cfg.root_readme = xstrdup(value); |
26 | else if (!strcmp(name, "css")) | 26 | else if (!strcmp(name, "css")) |
27 | ctx.cfg.css = xstrdup(value); | 27 | ctx.cfg.css = xstrdup(value); |
28 | else if (!strcmp(name, "footer")) | ||
29 | ctx.cfg.footer = xstrdup(value); | ||
28 | else if (!strcmp(name, "logo")) | 30 | else if (!strcmp(name, "logo")) |
29 | ctx.cfg.logo = xstrdup(value); | 31 | ctx.cfg.logo = xstrdup(value); |
30 | else if (!strcmp(name, "index-header")) | 32 | else if (!strcmp(name, "index-header")) |
31 | ctx.cfg.index_header = xstrdup(value); | 33 | ctx.cfg.index_header = xstrdup(value); |
32 | else if (!strcmp(name, "index-info")) | 34 | else if (!strcmp(name, "index-info")) |
33 | ctx.cfg.index_info = xstrdup(value); | 35 | ctx.cfg.index_info = xstrdup(value); |
34 | else if (!strcmp(name, "logo-link")) | 36 | else if (!strcmp(name, "logo-link")) |
35 | ctx.cfg.logo_link = xstrdup(value); | 37 | ctx.cfg.logo_link = xstrdup(value); |
@@ -120,16 +120,17 @@ struct cgit_query { | |||
120 | int ofs; | 120 | int ofs; |
121 | }; | 121 | }; |
122 | 122 | ||
123 | struct cgit_config { | 123 | struct cgit_config { |
124 | char *agefile; | 124 | char *agefile; |
125 | char *cache_root; | 125 | char *cache_root; |
126 | char *clone_prefix; | 126 | char *clone_prefix; |
127 | char *css; | 127 | char *css; |
128 | char *footer; | ||
128 | char *index_header; | 129 | char *index_header; |
129 | char *index_info; | 130 | char *index_info; |
130 | char *logo; | 131 | char *logo; |
131 | char *logo_link; | 132 | char *logo_link; |
132 | char *module_link; | 133 | char *module_link; |
133 | char *repo_group; | 134 | char *repo_group; |
134 | char *robots; | 135 | char *robots; |
135 | char *root_title; | 136 | char *root_title; |
diff --git a/ui-shared.c b/ui-shared.c index cd98387..8a00099 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -438,20 +438,26 @@ void cgit_print_docstart(struct cgit_context *ctx) | |||
438 | html_attr(ctx->cfg.css); | 438 | html_attr(ctx->cfg.css); |
439 | html("'/>\n"); | 439 | html("'/>\n"); |
440 | html("</head>\n"); | 440 | html("</head>\n"); |
441 | html("<body>\n"); | 441 | html("<body>\n"); |
442 | } | 442 | } |
443 | 443 | ||
444 | void cgit_print_docend() | 444 | void cgit_print_docend() |
445 | { | 445 | { |
446 | html("</div><div class='footer'>generated "); | 446 | html("</div>"); |
447 | cgit_print_date(time(NULL), FMT_LONGDATE); | 447 | if (ctx.cfg.footer) |
448 | htmlf(" by cgit %s", cgit_version); | 448 | html_include(ctx.cfg.footer); |
449 | html("</div>\n</body>\n</html>\n"); | 449 | else { |
450 | html("<div class='footer'>generated "); | ||
451 | cgit_print_date(time(NULL), FMT_LONGDATE); | ||
452 | htmlf(" by cgit %s", cgit_version); | ||
453 | html("</div>\n"); | ||
454 | } | ||
455 | html("</body>\n</html>\n"); | ||
450 | } | 456 | } |
451 | 457 | ||
452 | int print_branch_option(const char *refname, const unsigned char *sha1, | 458 | int print_branch_option(const char *refname, const unsigned char *sha1, |
453 | int flags, void *cb_data) | 459 | int flags, void *cb_data) |
454 | { | 460 | { |
455 | char *name = (char *)refname; | 461 | char *name = (char *)refname; |
456 | html_option(name, name, ctx.qry.head); | 462 | html_option(name, name, ctx.qry.head); |
457 | return 0; | 463 | return 0; |