summaryrefslogtreecommitdiffabout
path: root/cgit.c
Unidiff
Diffstat (limited to 'cgit.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 2039ab1..4f414c3 100644
--- a/cgit.c
+++ b/cgit.c
@@ -14,12 +14,20 @@
14#include "ui-shared.h" 14#include "ui-shared.h"
15#include "ui-stats.h" 15#include "ui-stats.h"
16#include "scan-tree.h" 16#include "scan-tree.h"
17 17
18const char *cgit_version = CGIT_VERSION; 18const char *cgit_version = CGIT_VERSION;
19 19
20void add_mimetype(const char *name, const char *value)
21{
22 struct string_list_item *item;
23
24 item = string_list_insert(xstrdup(name), &ctx.cfg.mimetypes);
25 item->util = xstrdup(value);
26}
27
20void config_cb(const char *name, const char *value) 28void config_cb(const char *name, const char *value)
21{ 29{
22 if (!strcmp(name, "root-title")) 30 if (!strcmp(name, "root-title"))
23 ctx.cfg.root_title = xstrdup(value); 31 ctx.cfg.root_title = xstrdup(value);
24 else if (!strcmp(name, "root-desc")) 32 else if (!strcmp(name, "root-desc"))
25 ctx.cfg.root_desc = xstrdup(value); 33 ctx.cfg.root_desc = xstrdup(value);
@@ -98,12 +106,14 @@ void config_cb(const char *name, const char *value)
98 else if (!strcmp(name, "robots")) 106 else if (!strcmp(name, "robots"))
99 ctx.cfg.robots = xstrdup(value); 107 ctx.cfg.robots = xstrdup(value);
100 else if (!strcmp(name, "clone-prefix")) 108 else if (!strcmp(name, "clone-prefix"))
101 ctx.cfg.clone_prefix = xstrdup(value); 109 ctx.cfg.clone_prefix = xstrdup(value);
102 else if (!strcmp(name, "local-time")) 110 else if (!strcmp(name, "local-time"))
103 ctx.cfg.local_time = atoi(value); 111 ctx.cfg.local_time = atoi(value);
112 else if (!prefixcmp(name, "mimetype."))
113 add_mimetype(name + 9, value);
104 else if (!strcmp(name, "repo.group")) 114 else if (!strcmp(name, "repo.group"))
105 ctx.cfg.repo_group = xstrdup(value); 115 ctx.cfg.repo_group = xstrdup(value);
106 else if (!strcmp(name, "repo.url")) 116 else if (!strcmp(name, "repo.url"))
107 ctx.repo = cgit_add_repo(value); 117 ctx.repo = cgit_add_repo(value);
108 else if (!strcmp(name, "repo.name")) 118 else if (!strcmp(name, "repo.name"))
109 ctx.repo->name = xstrdup(value); 119 ctx.repo->name = xstrdup(value);
@@ -210,12 +220,13 @@ static void prepare_context(struct cgit_context *ctx)
210 ctx->page.charset = PAGE_ENCODING; 220 ctx->page.charset = PAGE_ENCODING;
211 ctx->page.filename = NULL; 221 ctx->page.filename = NULL;
212 ctx->page.size = 0; 222 ctx->page.size = 0;
213 ctx->page.modified = time(NULL); 223 ctx->page.modified = time(NULL);
214 ctx->page.expires = ctx->page.modified; 224 ctx->page.expires = ctx->page.modified;
215 ctx->page.etag = NULL; 225 ctx->page.etag = NULL;
226 memset(&ctx->cfg.mimetypes, 0, sizeof(struct string_list));
216} 227}
217 228
218struct refmatch { 229struct refmatch {
219 char *req_ref; 230 char *req_ref;
220 char *first_ref; 231 char *first_ref;
221 int match; 232 int match;