author | Lars Hjemli <hjemli@gmail.com> | 2009-01-11 11:16:18 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2009-01-11 11:16:18 (UTC) |
commit | ef2dc552b298e5c65db8fbe5ff1c375e50d0f057 (patch) (side-by-side diff) | |
tree | b3bbb563c58026c4fbf366424be08846bce3096e | |
parent | 5164be32778e2bca146e13904e5b9e79d0d6cca8 (diff) | |
download | cgit-ef2dc552b298e5c65db8fbe5ff1c375e50d0f057.zip cgit-ef2dc552b298e5c65db8fbe5ff1c375e50d0f057.tar.gz cgit-ef2dc552b298e5c65db8fbe5ff1c375e50d0f057.tar.bz2 |
ui-log: show name-decorations in log output
Commits are now decorated with a clickable 'label' for each ref pointing
at it, similar to how gitweb and gitk displays commit decorations.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cgit.css | 24 | ||||
-rw-r--r-- | ui-log.c | 35 |
2 files changed, 59 insertions, 0 deletions
@@ -473 +473,25 @@ div.footer { } +a.branch-deco { + margin: 0px 0.5em; + padding: 0px 0.25em; + background-color: #88ff88; + border: solid 1px #007700; +} +a.tag-deco { + margin: 0px 0.5em; + padding: 0px 0.25em; + background-color: #ffff88; + border: solid 1px #777700; +} +a.remote-deco { + margin: 0px 0.5em; + padding: 0px 0.25em; + background-color: #ccccff; + border: solid 1px #000077; +} +a.deco { + margin: 0px 0.5em; + padding: 0px 0.25em; + background-color: #ff8888; + border: solid 1px #770000; +} @@ -33,2 +33,34 @@ void inspect_files(struct diff_filepair *pair) +void show_commit_decorations(struct commit *commit) +{ + struct name_decoration *deco; + static char buf[1024]; + + buf[sizeof(buf) - 1] = 0; + deco = lookup_decoration(&name_decoration, &commit->object); + while (deco) { + if (!prefixcmp(deco->name, "refs/heads/")) { + strncpy(buf, deco->name + 11, sizeof(buf) - 1); + cgit_log_link(buf, NULL, "branch-deco", buf, NULL, NULL, + 0, NULL, NULL, ctx.qry.showmsg); + } + else if (!prefixcmp(deco->name, "tag: refs/tags/")) { + strncpy(buf, deco->name + 15, sizeof(buf) - 1); + cgit_tag_link(buf, NULL, "tag-deco", ctx.qry.head, buf); + } + else if (!prefixcmp(deco->name, "refs/remotes/")) { + strncpy(buf, deco->name + 13, sizeof(buf) - 1); + cgit_log_link(buf, NULL, "remote-deco", NULL, + sha1_to_hex(commit->object.sha1), NULL, + 0, NULL, NULL, ctx.qry.showmsg); + } + else { + strncpy(buf, deco->name, sizeof(buf) - 1); + cgit_commit_link(buf, NULL, "deco", ctx.qry.head, + sha1_to_hex(commit->object.sha1)); + } + deco = deco->next; + } +} + void print_commit(struct commit *commit) @@ -51,2 +83,3 @@ void print_commit(struct commit *commit) sha1_to_hex(commit->object.sha1)); + show_commit_decorations(commit); html("</td><td>"); @@ -121,2 +154,4 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern setup_revisions(argc, argv, &rev, NULL); + load_ref_decorations(); + rev.show_decorations = 1; rev.grep_filter.regflags |= REG_ICASE; |