]> granicus.if.org Git - cgit/commitdiff
Add config option 'enable-filter-overrides'
authorLars Hjemli <hjemli@gmail.com>
Mon, 24 Aug 2009 06:53:21 +0000 (08:53 +0200)
committerLars Hjemli <hjemli@gmail.com>
Mon, 24 Aug 2009 08:22:59 +0000 (10:22 +0200)
This option must be enabled if repo-specific cgitrc files should be
allowed to override any of the 'filter' options.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
cgit.c
cgit.h
cgitrc.5.txt

diff --git a/cgit.c b/cgit.c
index 167b5dd312ed3a63a6334224387b52e27b233461..f1ea03c66daaa54c9ddd9bb0d2c7abbe82ee7760 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -66,17 +66,18 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value)
                repo->module_link= xstrdup(value);
        else if (!strcmp(name, "section"))
                repo->section = xstrdup(value);
-       else if (!strcmp(name, "about-filter"))
-               repo->about_filter = new_filter(value, 0);
-       else if (!strcmp(name, "commit-filter"))
-               repo->commit_filter = new_filter(value, 0);
-       else if (!strcmp(name, "source-filter"))
-               repo->source_filter = new_filter(value, 1);
        else if (!strcmp(name, "readme") && value != NULL) {
                if (*value == '/')
                        ctx.repo->readme = xstrdup(value);
                else
                        ctx.repo->readme = xstrdup(fmt("%s/%s", ctx.repo->path, value));
+       } else if (ctx.cfg.enable_filter_overrides) {
+               if (!strcmp(name, "about-filter"))
+                       repo->about_filter = new_filter(value, 0);
+               else if (!strcmp(name, "commit-filter"))
+                       repo->commit_filter = new_filter(value, 0);
+               else if (!strcmp(name, "source-filter"))
+                       repo->source_filter = new_filter(value, 1);
        }
 }
 
@@ -128,6 +129,8 @@ void config_cb(const char *name, const char *value)
                ctx.cfg.noheader = atoi(value);
        else if (!strcmp(name, "snapshots"))
                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-index-links"))
                ctx.cfg.enable_index_links = atoi(value);
        else if (!strcmp(name, "enable-log-filecount"))
diff --git a/cgit.h b/cgit.h
index 3359be94dac71a6ea64f3844a3a6b296ae96b058..ef109aadf6a3ed07005d4c09bb8b2094b9247cc5 100644 (file)
--- a/cgit.h
+++ b/cgit.h
@@ -174,6 +174,7 @@ struct cgit_config {
        int cache_scanrc_ttl;
        int cache_static_ttl;
        int embedded;
+       int enable_filter_overrides;
        int enable_index_links;
        int enable_log_filecount;
        int enable_log_linecount;
index 46df291c1612a9f63f7bdae7b44dea95727e85c4..617b7c39a03aaa7a5bc355fc05e2ea2be1d2bf5c 100644 (file)
@@ -88,6 +88,10 @@ embedded::
        suitable for embedding in other html pages. Default value: none. See
        also: "noheader".
        
+enable-filter-overrides::
+       Flag which, when set to "1", allows all filter settings to be
+       overridden in repository-specific cgitrc files. Default value: none.
+
 enable-index-links::
        Flag which, when set to "1", will make cgit generate extra links for
        each repo in the repository index (specifically, to the "summary",
@@ -266,14 +270,16 @@ virtual-root::
 REPOSITORY SETTINGS
 -------------------
 repo.about-filter::
-       Override the default about-filter. Default value: <about-filter>.
+       Override the default about-filter. Default value: none. See also:
+       "enable-filter-overrides".
 
 repo.clone-url::
        A list of space-separated urls which can be used to clone this repo.
        Default value: none.
 
 repo.commit-filter::
-       Override the default commit-filter. Default value: <commit-filter>.
+       Override the default commit-filter. Default value: none. See also:
+       "enable-filter-overrides".
 
 repo.defbranch::
        The name of the default branch for this repository. If no such branch
@@ -320,7 +326,8 @@ repo.section::
        none.
 
 repo.source-filter::
-       Override the default source-filter. Default value: <source-filter>.
+       Override the default source-filter. Default value: none. See also:
+       "enable-filter-overrides".
 
 repo.url::
        The relative url used to access the repository. This must be the first
@@ -332,8 +339,12 @@ REPOSITORY-SPECIFIC CGITRC FILE
 When the option "scan-path" is used to auto-discover git repositories, cgit
 will try to parse the file "cgitrc" within any found repository. Such a
 repo-specific config file may contain any of the repo-specific options
-described above, except "repo.url" and "repo.path". Also, in a repo-specific
-config file, the "repo." prefix is dropped from the config option names.
+described above, except "repo.url" and "repo.path". Additionally, the "filter"
+options are only acknowledged in repo-specific config files when
+"enable-filter-overrides" is set to "1".
+
+Note: the "repo." prefix is dropped from the option names in repo-specific
+config files, e.g. "repo.desc" becomes "desc".
 
 
 EXAMPLE CGITRC FILE