From mboxrd@z Thu Jan 1 00:00:00 1970 From: john at keeping.me.uk (John Keeping) Date: Sat, 21 Oct 2017 15:33:43 +0100 Subject: [PATCH 2/4] ui-blame: Break out emit_blame_entry into component methods In-Reply-To: <20171018041735.31592-3-whydoubt@gmail.com> References: <20171018041735.31592-1-whydoubt@gmail.com> <20171018041735.31592-3-whydoubt@gmail.com> Message-ID: <20171021143343.GD2393@john.keeping.me.uk> On Tue, Oct 17, 2017 at 11:17:33PM -0500, Jeff Smith wrote: > 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 a5ac590..9b84147 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"); > } >