X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/e976df27952ca1e450c1c3d420532ac9f5e3036b..db8b8cb9467625cb8d9ecb67863aa67590e59cc0:/cgit.c diff --git a/cgit.c b/cgit.c index fd341b8..7b228af 100644 --- a/cgit.c +++ b/cgit.c @@ -17,11 +17,19 @@ const char *cgit_version = CGIT_VERSION; +void add_mimetype(const char *name, const char *value) +{ + struct string_list_item *item; + + item = string_list_insert(xstrdup(name), &ctx.cfg.mimetypes); + item->util = xstrdup(value); +} + struct cgit_filter *new_filter(const char *cmd, int extra_args) { struct cgit_filter *f; - if (!cmd) + if (!cmd || !cmd[0]) return NULL; f = xmalloc(sizeof(struct cgit_filter)); @@ -66,6 +74,8 @@ void config_cb(const char *name, const char *value) ctx.cfg.virtual_root = ""; } else if (!strcmp(name, "nocache")) ctx.cfg.nocache = atoi(value); + else if (!strcmp(name, "noplainemail")) + ctx.cfg.noplainemail = atoi(value); else if (!strcmp(name, "noheader")) ctx.cfg.noheader = atoi(value); else if (!strcmp(name, "snapshots")) @@ -90,6 +100,8 @@ void config_cb(const char *name, const char *value) ctx.cfg.cache_static_ttl = atoi(value); else if (!strcmp(name, "cache-dynamic-ttl")) ctx.cfg.cache_dynamic_ttl = atoi(value); + else if (!strcmp(name, "about-filter")) + ctx.cfg.about_filter = new_filter(value, 0); else if (!strcmp(name, "commit-filter")) ctx.cfg.commit_filter = new_filter(value, 0); else if (!strcmp(name, "embedded")) @@ -120,6 +132,8 @@ void config_cb(const char *name, const char *value) ctx.cfg.clone_prefix = xstrdup(value); else if (!strcmp(name, "local-time")) ctx.cfg.local_time = atoi(value); + else if (!prefixcmp(name, "mimetype.")) + add_mimetype(name + 9, value); else if (!strcmp(name, "repo.group")) ctx.cfg.repo_group = xstrdup(value); else if (!strcmp(name, "repo.url")) @@ -146,6 +160,8 @@ void config_cb(const char *name, const char *value) ctx.repo->max_stats = cgit_find_stats_period(value, NULL); else if (ctx.repo && !strcmp(name, "repo.module-link")) ctx.repo->module_link= xstrdup(value); + else if (ctx.repo && !strcmp(name, "repo.about-filter")) + ctx.repo->about_filter = new_filter(value, 0); else if (ctx.repo && !strcmp(name, "repo.commit-filter")) ctx.repo->commit_filter = new_filter(value, 0); else if (ctx.repo && !strcmp(name, "repo.source-filter")) @@ -236,6 +252,7 @@ static void prepare_context(struct cgit_context *ctx) ctx->page.modified = time(NULL); ctx->page.expires = ctx->page.modified; ctx->page.etag = NULL; + memset(&ctx->cfg.mimetypes, 0, sizeof(struct string_list)); } struct refmatch {