about summary refs log tree commit diff
path: root/ui-shared.c
diff options
context:
space:
mode:
authorLars Hjemli <hjemli@gmail.com>2007-06-17 14:53:02 +0200
committerLars Hjemli <hjemli@gmail.com>2007-06-17 14:53:02 +0200
commit42a7eb9c73457319a3fd5441ff26046fc9b31dad (patch)
tree4771b955e031005e7c222ef0cbabb719f7cd003a /ui-shared.c
parentAdd git_log_link() and fix bug in generic repolink function (diff)
downloadcgit-pink-42a7eb9c73457319a3fd5441ff26046fc9b31dad.tar.gz
cgit-pink-42a7eb9c73457319a3fd5441ff26046fc9b31dad.zip
Add cgit_commit_link() + support for id=sha1 to commit view
This adds a function to generate links to the commit page and extends said
page to use id from querystring as primary revision specified (fallback to
h).

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'ui-shared.c')
-rw-r--r--ui-shared.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/ui-shared.c b/ui-shared.c
index 64ee79c..71c899a 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -136,8 +136,8 @@ static char *repolink(char *title, char *class, char *page, char *head,
 	return fmt("%s", delim);
 }
 
-static char *reporevlink(char *page, char *name, char *title, char *class,
-			 char *head, char *rev, char *path)
+static void reporevlink(char *page, char *name, char *title, char *class,
+			char *head, char *rev, char *path)
 {
 	char *delim;
 
@@ -164,6 +164,18 @@ void cgit_log_link(char *name, char *title, char *class, char *head,
 	reporevlink("log", name, title, class, head, rev, path);
 }
 
+void cgit_commit_link(char *name, char *title, char *class, char *head,
+		      char *rev)
+{
+	if (strlen(name) > cgit_max_msg_len && cgit_max_msg_len >= 15) {
+		name[cgit_max_msg_len] = '\0';
+		name[cgit_max_msg_len - 1] = '.';
+		name[cgit_max_msg_len - 2] = '.';
+		name[cgit_max_msg_len - 3] = '.';
+	}
+	reporevlink("commit", name, title, class, head, rev, NULL);
+}
+
 void cgit_print_date(time_t secs, char *format)
 {
 	char buf[64];