summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLars Hjemli2009-08-24 13:31:49 +0200
committerLars Hjemli2009-08-24 13:31:49 +0200
commitee554849ac7209fa8f7486327ec9f3b370e4c876 (patch)
tree63c284ebf72ea401067dd5d4d59ae8ede8f8743c
parent588fb8efc69778b85062e8fc2f482a8de43bad75 (diff)
downloadcgit-ee554849ac7209fa8f7486327ec9f3b370e4c876.tar.gz
cgit.c: respect repo-local 'snapshots' option for --scan-path
The repo-specific 'snapshots' option is bitwise AND'ed with the global 'snapshots' option during parsing, and since the global cgitrc hasn't been parsed when --scan-path is processed the global 'snapshots' will always be 0 (i.e. no repo-specific 'snapshots' setting will have any effect). This patch fixes the issue by setting the global 'snapshots' mask to 0xFF (hence relying on later parsing of the generated cgitrc repolist to do the right thing). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r--cgit.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 8381630..3fcca2a 100644
--- a/cgit.c
+++ b/cgit.c
@@ -620,6 +620,16 @@ static void cgit_parse_args(int argc, const char **argv)
}
if (!strncmp(argv[i], "--scan-tree=", 12) ||
!strncmp(argv[i], "--scan-path=", 12)) {
+ /* HACK: the global snapshot bitmask defines the
+ * set of allowed snapshot formats, but the config
+ * file hasn't been parsed yet so the mask is
+ * currently 0. By setting all bits high before
+ * scanning we make sure that any in-repo cgitrc
+ * snapshot setting is respected by scan_tree().
+ * BTW: we assume that there'll never be more than
+ * 255 different snapshot formats supported by cgit...
+ */
+ ctx.cfg.snapshots = 0xFF;
scan++;
scan_tree(argv[i] + 12, repo_config);
}