From 4c9916043d6aabb8278e0d78f5fa71a59f82889d Mon Sep 17 00:00:00 2001
From: Lars Hjemli
Date: Tue, 29 Apr 2008 00:55:34 +0200
Subject: Re-enable 'index-info' and add support for 'root-desc' in cgitrc

The 'index-info' option got lost when the layout was converted from
sidebar to old-fashioned header (noticed by Harley Laue, thanks!), and
this commit re-enables it.

But there is now also an alternative in the 'root-desc' option; where
'index-info' specifies a file to include, 'root-desc' specifies the text
literally. This might be nicer for the one-liner descriptions which these
options typically provides.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
---
 cgit.c | 3 +++
 1 file changed, 3 insertions(+)

(limited to 'cgit.c')

diff --git a/cgit.c b/cgit.c
index 38b0ba5..bbde64b 100644
--- a/cgit.c
+++ b/cgit.c
@@ -19,6 +19,8 @@ void config_cb(const char *name, const char *value)
 {
 	if (!strcmp(name, "root-title"))
 		ctx.cfg.root_title = xstrdup(value);
+	else if (!strcmp(name, "root-desc"))
+		ctx.cfg.root_desc = xstrdup(value);
 	else if (!strcmp(name, "css"))
 		ctx.cfg.css = xstrdup(value);
 	else if (!strcmp(name, "logo"))
@@ -159,6 +161,7 @@ static void prepare_context(struct cgit_context *ctx)
 	ctx->cfg.renamelimit = -1;
 	ctx->cfg.robots = "index, nofollow";
 	ctx->cfg.root_title = "Git repository browser";
+	ctx->cfg.root_desc = "a fast webinterface for the git dscm";
 	ctx->cfg.script_name = CGIT_SCRIPT_NAME;
 	ctx->page.mimetype = "text/html";
 	ctx->page.charset = PAGE_ENCODING;
-- 
cgit v1.2.3-54-g00ecf


From 651ef79768dde30aabc61189974c9047ee43752f Mon Sep 17 00:00:00 2001
From: Lars Hjemli
Date: Tue, 29 Apr 2008 01:01:30 +0200
Subject: Make it possible for a single cmd to work both with and without a
 repo

When cgit_cmd.want_repo was 0, we used to assume that the cmd would never
be invoked for a repo. But soon this will become untrue (the 'about' cmd
is rapidly approching), so from now on we will initialize any requested
repo even if want_repo==0 (and return an error if want_repo==1 but no repo
is specified).

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
---
 cgit.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

(limited to 'cgit.c')

diff --git a/cgit.c b/cgit.c
index bbde64b..d37abc9 100644
--- a/cgit.c
+++ b/cgit.c
@@ -307,7 +307,16 @@ static void process_request(struct cgit_context *ctx)
 		return;
 	}
 
-	if (cmd->want_repo && prepare_repo_cmd(ctx))
+	if (cmd->want_repo && !ctx->repo) {
+		cgit_print_http_headers(ctx);
+		cgit_print_docstart(ctx);
+		cgit_print_pageheader(ctx);
+		cgit_print_error(fmt("No repository selected"));
+		cgit_print_docend();
+		return;
+	}
+
+	if (ctx->repo && prepare_repo_cmd(ctx))
 		return;
 
 	if (cmd->want_layout) {
-- 
cgit v1.2.3-54-g00ecf


From c6431a71508f1b61a95b01d85fe4534a0245e626 Mon Sep 17 00:00:00 2001
From: Lars Hjemli
Date: Tue, 29 Apr 2008 01:06:30 +0200
Subject: Prepare for 'about site' page / add 'root-readme' option to cgitrc

The new option names a file which will be included on a new page, next
to the current 'index' page.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
---
 cgit.c        | 2 ++
 cgit.h        | 1 +
 ui-repolist.c | 6 ++++++
 ui-repolist.h | 1 +
 4 files changed, 10 insertions(+)

(limited to 'cgit.c')

diff --git a/cgit.c b/cgit.c
index d37abc9..a402758 100644
--- a/cgit.c
+++ b/cgit.c
@@ -21,6 +21,8 @@ void config_cb(const char *name, const char *value)
 		ctx.cfg.root_title = xstrdup(value);
 	else if (!strcmp(name, "root-desc"))
 		ctx.cfg.root_desc = xstrdup(value);
+	else if (!strcmp(name, "root-readme"))
+		ctx.cfg.root_readme = xstrdup(value);
 	else if (!strcmp(name, "css"))
 		ctx.cfg.css = xstrdup(value);
 	else if (!strcmp(name, "logo"))
diff --git a/cgit.h b/cgit.h
index 7761b6e..daebeff 100644
--- a/cgit.h
+++ b/cgit.h
@@ -133,6 +133,7 @@ struct cgit_config {
 	char *robots;
 	char *root_title;
 	char *root_desc;
+	char *root_readme;
 	char *script_name;
 	char *virtual_root;
 	int cache_dynamic_ttl;
diff --git a/ui-repolist.c b/ui-repolist.c
index 200640c..3f78e28 100644
--- a/ui-repolist.c
+++ b/ui-repolist.c
@@ -136,3 +136,9 @@ void cgit_print_repolist()
 		cgit_print_error("No repositories found");
 	cgit_print_docend();
 }
+
+void cgit_print_site_readme()
+{
+	if (ctx.cfg.root_readme)
+		html_include(ctx.cfg.root_readme);
+}
diff --git a/ui-repolist.h b/ui-repolist.h
index c23e5d2..5b1e542 100644
--- a/ui-repolist.h
+++ b/ui-repolist.h
@@ -2,5 +2,6 @@
 #define UI_REPOLIST_H
 
 extern void cgit_print_repolist();
+extern void cgit_print_site_readme();
 
 #endif /* UI_REPOLIST_H */
-- 
cgit v1.2.3-54-g00ecf