On Tue, Oct 17, 2017 at 11:17:33PM -0500, Jeff Smith wrote: > Signed-off-by: Jeff Smith <[email protected]>
Reviewed-by: John Keeping <[email protected]> > --- > 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 = "<a id='n%1$d' href='#n%1$d'>%1$d</a>\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("<tr><td class='sha1 hashes'>"); > - 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("</td>\n"); > > - free(detail); > - > if (ctx.cfg.enable_tree_linenumbers) { > - unsigned long lineno = ent->lno; > html("<td class='linenumbers'><pre>"); > - while (lineno < ent->lno + ent->num_lines) > - htmlf(numberfmt, ++lineno); > + emit_blame_entry_linenumber(ent); > html("</pre></td>\n"); > } > > - cp = blame_nth_line(sb, ent->lno); > - cpend = blame_nth_line(sb, ent->lno + ent->num_lines); > - > html("<td class='lines'><pre><code>"); > - html_ntxt(cp, cpend - cp); > + emit_blame_entry_line(sb, ent); > html("</code></pre></td></tr>\n"); > } > _______________________________________________ CGit mailing list [email protected] https://lists.zx2c4.com/mailman/listinfo/cgit
