]> gitweb.ps.run Git - ps-cgit/blobdiff - cgit.c
syntax-highlighting.sh: Fix command injection.
[ps-cgit] / cgit.c
diff --git a/cgit.c b/cgit.c
index 32999369557e888f9be79ec4840fb13ca6aa4c5f..a97ed69653b36d696c0fd564bfbc4be55f99f2b0 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -84,7 +84,12 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value)
                repo->enable_remote_branches = atoi(value);
        else if (!strcmp(name, "enable-subject-links"))
                repo->enable_subject_links = atoi(value);
-       else if (!strcmp(name, "max-stats"))
+       else if (!strcmp(name, "commit-sort")) {
+               if (!strcmp(value, "date"))
+                       repo->commit_sort = 1;
+               if (!strcmp(value, "topo"))
+                       repo->commit_sort = 2;
+       } else if (!strcmp(name, "max-stats"))
                repo->max_stats = cgit_find_stats_period(value, NULL);
        else if (!strcmp(name, "module-link"))
                repo->module_link= xstrdup(value);
@@ -163,10 +168,6 @@ void config_cb(const char *name, const char *value)
                ctx.cfg.snapshots = cgit_parse_snapshots_mask(value);
        else if (!strcmp(name, "enable-filter-overrides"))
                ctx.cfg.enable_filter_overrides = atoi(value);
-       else if (!strcmp(name, "enable-gitweb-desc"))
-               ctx.cfg.enable_gitweb_desc = atoi(value);
-       else if (!strcmp(name, "enable-gitweb-owner"))
-               ctx.cfg.enable_gitweb_owner = atoi(value);
        else if (!strcmp(name, "enable-http-clone"))
                ctx.cfg.enable_http_clone = atoi(value);
        else if (!strcmp(name, "enable-index-links"))
@@ -183,6 +184,8 @@ void config_cb(const char *name, const char *value)
                ctx.cfg.enable_subject_links = atoi(value);
        else if (!strcmp(name, "enable-tree-linenumbers"))
                ctx.cfg.enable_tree_linenumbers = atoi(value);
+       else if (!strcmp(name, "enable-git-config"))
+               ctx.cfg.enable_git_config = atoi(value);
        else if (!strcmp(name, "max-stats"))
                ctx.cfg.max_stats = cgit_find_stats_period(value, NULL);
        else if (!strcmp(name, "cache-size"))
@@ -233,8 +236,10 @@ void config_cb(const char *name, const char *value)
                ctx.cfg.scan_hidden_path = atoi(value);
        else if (!strcmp(name, "section-from-path"))
                ctx.cfg.section_from_path = atoi(value);
+       else if (!strcmp(name, "repository-sort"))
+               ctx.cfg.repository_sort = xstrdup(value);
        else if (!strcmp(name, "section-sort"))
-               ctx.cfg.section_sort = xstrdup(value);
+               ctx.cfg.section_sort = atoi(value);
        else if (!strcmp(name, "source-filter"))
                ctx.cfg.source_filter = new_filter(value, SOURCE);
        else if (!strcmp(name, "summary-log"))
@@ -261,7 +266,12 @@ void config_cb(const char *name, const char *value)
                ctx.cfg.clone_url = xstrdup(value);
        else if (!strcmp(name, "local-time"))
                ctx.cfg.local_time = atoi(value);
-       else if (!prefixcmp(name, "mimetype."))
+       else if (!strcmp(name, "commit-sort")) {
+               if (!strcmp(value, "date"))
+                       ctx.cfg.commit_sort = 1;
+               if (!strcmp(value, "topo"))
+                       ctx.cfg.commit_sort = 2;
+       } else if (!prefixcmp(name, "mimetype."))
                add_mimetype(name + 9, value);
        else if (!strcmp(name, "include"))
                parse_configfile(expand_macros(value), config_cb);
@@ -343,11 +353,9 @@ static void prepare_context(struct cgit_context *ctx)
        ctx->cfg.css = "/cgit.css";
        ctx->cfg.logo = "/cgit.png";
        ctx->cfg.local_time = 0;
-       ctx->cfg.enable_gitweb_desc = 1;
-       ctx->cfg.enable_gitweb_owner = 1;
-       ctx->cfg.enable_gitweb_section = 1;
        ctx->cfg.enable_http_clone = 1;
        ctx->cfg.enable_tree_linenumbers = 1;
+       ctx->cfg.enable_git_config = 0;
        ctx->cfg.max_repo_count = 50;
        ctx->cfg.max_commit_count = 50;
        ctx->cfg.max_lock_attempts = 5;
@@ -364,7 +372,8 @@ static void prepare_context(struct cgit_context *ctx)
        ctx->cfg.scan_hidden_path = 0;
        ctx->cfg.script_name = CGIT_SCRIPT_NAME;
        ctx->cfg.section = "";
-       ctx->cfg.section_sort = "name";
+       ctx->cfg.repository_sort = "name";
+       ctx->cfg.section_sort = 1;
        ctx->cfg.summary_branches = 10;
        ctx->cfg.summary_log = 10;
        ctx->cfg.summary_tags = 10;