From 2b95c9d49c8581e2b19efca1613ada292f56bf08 Mon Sep 17 00:00:00 2001 From: Jeff Smith Date: Tue, 17 Oct 2017 23:17:33 -0500 Subject: ui-blame: Break out emit_blame_entry into component methods Signed-off-by: Jeff Smith Reviewed-by: John Keeping --- ui-blame.c | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/ui-blame.c b/ui-blame.c index 62647a8..bbaad1c 100644 --- a/ui-blame.c +++ b/ui-blame.c @@ -41,36 +41,52 @@ static char *emit_suspect_detail(struct blame_origin *suspect) return strbuf_detach(&detail, NULL); } -static void emit_blame_entry(struct blame_scoreboard *sb, - struct blame_entry *ent) +static void emit_blame_entry_hash(struct blame_entry *ent) { struct blame_origin *suspect = ent->suspect; struct object_id *oid = &suspect->commit->object.oid; + + char *detail = emit_suspect_detail(suspect); + cgit_commit_link(find_unique_abbrev(oid->hash, DEFAULT_ABBREV), detail, + NULL, ctx.qry.head, oid_to_hex(oid), suspect->path); + free(detail); +} + +static void emit_blame_entry_linenumber(struct blame_entry *ent) +{ const char *numberfmt = "%1$d\n"; + + unsigned long lineno = ent->lno; + while (lineno < ent->lno + ent->num_lines) + htmlf(numberfmt, ++lineno); +} + +static void emit_blame_entry_line(struct blame_scoreboard *sb, + struct blame_entry *ent) +{ const char *cp, *cpend; - char *detail = emit_suspect_detail(suspect); + cp = blame_nth_line(sb, ent->lno); + cpend = blame_nth_line(sb, ent->lno + ent->num_lines); + + html_ntxt(cp, cpend - cp); +} +static void emit_blame_entry(struct blame_scoreboard *sb, + struct blame_entry *ent) +{ html(""); - cgit_commit_link(find_unique_abbrev(oid->hash, DEFAULT_ABBREV), detail, - NULL, ctx.qry.head, oid_to_hex(oid), suspect->path); + emit_blame_entry_hash(ent); html("\n"); - free(detail); - if (ctx.cfg.enable_tree_linenumbers) { - unsigned long lineno = ent->lno; html("
");
-		while (lineno < ent->lno + ent->num_lines)
-			htmlf(numberfmt, ++lineno);
+		emit_blame_entry_linenumber(ent);
 		html("
\n"); } - cp = blame_nth_line(sb, ent->lno); - cpend = blame_nth_line(sb, ent->lno + ent->num_lines); - html("
");
-	html_ntxt(cp, cpend - cp);
+	emit_blame_entry_line(sb, ent);
 	html("
\n"); } -- cgit v1.2.3