From 3cb5d86dc68bab4883bf5a7cbc90f3e266237355 Mon Sep 17 00:00:00 2001
From: Jason A. Donenfeld
Date: Sat, 25 May 2013 14:19:10 +0200
Subject: ui-summary: Use default branch for readme if : prefix

If the readme value begins with ":", and has no specified branch before
it, use the repository's default branch.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
---
 cgitrc.5.txt | 4 +++-
 ui-summary.c | 7 ++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 9b803b3..8a0a9c9 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -505,7 +505,9 @@ repo.readme::
 	A path (relative to <repo.path>) which specifies a file to include
 	verbatim as the "About" page for this repo. You may also specify a
 	git refspec by head or by hash by prepending the refspec followed by
-	a colon. For example, "master:docs/readme.mkd" Default value: <readme>.
+	a colon. For example, "master:docs/readme.mkd". If the value begins
+	with a colon, i.e. ":docs/readme.rst", the default branch of the
+	repository will be used. Default value: <readme>.
 
 repo.snapshots::
 	A mask of allowed snapshot-formats for this repo, restricted by the
diff --git a/ui-summary.c b/ui-summary.c
index f965b32..abf914e 100644
--- a/ui-summary.c
+++ b/ui-summary.c
@@ -108,7 +108,12 @@ void cgit_print_repo_readme(char *path)
 	colon = strchr(ctx.repo->readme, ':');
 	if (colon && strlen(colon) > 1) {
 		*colon = '\0';
-		ref = ctx.repo->readme;
+		/* If it starts with a colon, we want to use
+		 * the default branch */
+		if (colon == ctx.repo->readme && ctx.repo->defbranch)
+			ref = ctx.repo->defbranch;
+		else
+			ref = ctx.repo->readme;
 		ctx.repo->readme = colon + 1;
 		if (!(*ctx.repo->readme))
 			return;
-- 
cgit v1.2.3-70-g09d2