cgit

commit c57aceb1d2f1a7d9fd3218fc8c6e9ea01b2952d2

Author: Lars Hjemli <hjemli@gmail.com>

ui-shared: shorten the sha1 printed by cgit_object_link

Such links was printed as the object type followed by the objects complete
sha1. We still use the complete sha1 in the link but we no longer show it
in all its glory; only the first 10 hex chars are printed.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>

 ui-shared.c | 14 ++++++++------


diff --git a/ui-shared.c b/ui-shared.c
index c4a506e390c9b5b60d1f1ace8a3fa4f13990e4cb..9319881de108132650bc026bd90f3548162bdbd7 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -365,11 +365,14 @@ }
 
 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 @@ 	else if (obj->type == OBJ_TAG)
 		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)