summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ui-shared.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/ui-shared.c b/ui-shared.c
index c4a506e..9319881 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -365,11 +365,14 @@ void cgit_patch_link(char *name, char *title, char *class, char *head,
 
 void cgit_object_link(struct object *obj)
 {
-	char *page, *rev, *name;
+	char *page, *shortrev, *fullrev, *name;
 
+	fullrev = sha1_to_hex(obj->sha1);
+	shortrev = xstrdup(fullrev);
+	shortrev[10] = '\0';
 	if (obj->type == OBJ_COMMIT) {
-                cgit_commit_link(fmt("commit %s", sha1_to_hex(obj->sha1)), NULL, NULL,
-				 ctx.qry.head, sha1_to_hex(obj->sha1));
+                cgit_commit_link(fmt("commit %s...", shortrev), NULL, NULL,
+				 ctx.qry.head, fullrev);
 		return;
 	} else if (obj->type == OBJ_TREE)
 		page = "tree";
@@ -377,9 +380,8 @@ void cgit_object_link(struct object *obj)
 		page = "tag";
 	else
 		page = "blob";
-	rev = sha1_to_hex(obj->sha1);
-	name = fmt("%s %s", typename(obj->type), rev);
-	reporevlink(page, name, NULL, NULL, ctx.qry.head, rev, NULL);
+	name = fmt("%s %s...", typename(obj->type), shortrev);
+	reporevlink(page, name, NULL, NULL, ctx.qry.head, fullrev, NULL);
 }
 
 void cgit_print_date(time_t secs, char *format, int local_time)