From 65ced7c00907af7e8bd5d239a4fa854a84535520 Mon Sep 17 00:00:00 2001
From: Aaron Griffin
Date: Wed, 3 Feb 2010 18:31:17 -0600
Subject: Add all=1 query param for atom feeds

Displays all items from all branches in one feed

Signed-off-by: Aaron Griffin <agriffin@datalogics.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
---
 cgit.c    | 2 ++
 cgit.h    | 1 +
 ui-atom.c | 4 +++-
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/cgit.c b/cgit.c
index 9305d0a..ed2be64 100644
--- a/cgit.c
+++ b/cgit.c
@@ -250,6 +250,8 @@ static void querystring_cb(const char *name, const char *value)
 		ctx.qry.period = xstrdup(value);
 	} else if (!strcmp(name, "ss")) {
 		ctx.qry.ssdiff = atoi(value);
+	} else if (!strcmp(name, "all")) {
+		ctx.qry.show_all = atoi(value);
 	}
 }
 
diff --git a/cgit.h b/cgit.h
index cd4af72..478aebb 100644
--- a/cgit.h
+++ b/cgit.h
@@ -145,6 +145,7 @@ struct cgit_query {
 	char *sort;
 	int showmsg;
 	int ssdiff;
+	int show_all;
 };
 
 struct cgit_config {
diff --git a/ui-atom.c b/ui-atom.c
index 808b2d0..9f049ae 100644
--- a/ui-atom.c
+++ b/ui-atom.c
@@ -85,7 +85,9 @@ void cgit_print_atom(char *tip, char *path, int max_count)
 	struct rev_info rev;
 	int argc = 2;
 
-	if (!tip)
+	if (ctx.qry.show_all)
+		argv[1] = "--all";
+	else if (!tip)
 		argv[1] = ctx.qry.head;
 
 	if (path) {
-- 
cgit v1.2.3-2-gb3c3


From 80476b0d2873eb212fad38487fd6189bd6629cbe Mon Sep 17 00:00:00 2001
From: Aaron Griffin
Date: Thu, 4 Feb 2010 18:08:16 -0600
Subject: Add 'max-atom-items' config variable

This allows one to specify the items in the RSS feeds

Signed-off-by: Aaron Griffin <agriffin@datalogics.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
---
 cgit.c       | 3 +++
 cgit.h       | 1 +
 cgitrc.5.txt | 4 ++++
 cmd.c        | 2 +-
 4 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/cgit.c b/cgit.c
index ed2be64..bf64c9e 100644
--- a/cgit.c
+++ b/cgit.c
@@ -165,6 +165,8 @@ void config_cb(const char *name, const char *value)
 		ctx.cfg.commit_filter = new_filter(value, 0);
 	else if (!strcmp(name, "embedded"))
 		ctx.cfg.embedded = atoi(value);
+	else if (!strcmp(name, "max-atom-items"))
+		ctx.cfg.max_atom_items = atoi(value);
 	else if (!strcmp(name, "max-message-length"))
 		ctx.cfg.max_msg_len = atoi(value);
 	else if (!strcmp(name, "max-repodesc-length"))
@@ -294,6 +296,7 @@ static void prepare_context(struct cgit_context *ctx)
 	ctx->cfg.summary_branches = 10;
 	ctx->cfg.summary_log = 10;
 	ctx->cfg.summary_tags = 10;
+	ctx->cfg.max_atom_items = 10;
 	ctx->cfg.ssdiff = 0;
 	ctx->env.cgit_config = xstrdupn(getenv("CGIT_CONFIG"));
 	ctx->env.http_host = xstrdupn(getenv("HTTP_HOST"));
diff --git a/cgit.h b/cgit.h
index 478aebb..7fafb58 100644
--- a/cgit.h
+++ b/cgit.h
@@ -184,6 +184,7 @@ struct cgit_config {
 	int enable_remote_branches;
 	int enable_tree_linenumbers;
 	int local_time;
+	int max_atom_items;
 	int max_repo_count;
 	int max_commit_count;
 	int max_lock_attempts;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index d74d9e7..6cdfd03 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -166,6 +166,10 @@ logo-link::
 	calculated url of the repository index page will be used. Default
 	value: none.
 
+max-atom-items::
+	Specifies the number of items to display in atom feeds view. Default
+	value: "10".
+
 max-commit-count::
 	Specifies the number of entries to list per page in "log" view. Default
 	value: "50".
diff --git a/cmd.c b/cmd.c
index 766f903..ad784fc 100644
--- a/cmd.c
+++ b/cmd.c
@@ -33,7 +33,7 @@ static void HEAD_fn(struct cgit_context *ctx)
 
 static void atom_fn(struct cgit_context *ctx)
 {
-	cgit_print_atom(ctx->qry.head, ctx->qry.path, 10);
+	cgit_print_atom(ctx->qry.head, ctx->qry.path, ctx->cfg.max_atom_items);
 }
 
 static void about_fn(struct cgit_context *ctx)
-- 
cgit v1.2.3-2-gb3c3