author | Lars Hjemli <hjemli@gmail.com> | 2007-06-17 12:53:02 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-06-17 12:53:02 (UTC) |
commit | 42a7eb9c73457319a3fd5441ff26046fc9b31dad (patch) (side-by-side diff) | |
tree | 4771b955e031005e7c222ef0cbabb719f7cd003a /ui-summary.c | |
parent | 48c487d72daef7e71683a85f775db8d36ab20341 (diff) | |
download | cgit-42a7eb9c73457319a3fd5441ff26046fc9b31dad.zip cgit-42a7eb9c73457319a3fd5441ff26046fc9b31dad.tar.gz cgit-42a7eb9c73457319a3fd5441ff26046fc9b31dad.tar.bz2 |
Add cgit_commit_link() + support for id=sha1 to commit view
This adds a function to generate links to the commit page and extends said
page to use id from querystring as primary revision specified (fallback to
h).
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-summary.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/ui-summary.c b/ui-summary.c index 29b76e3..03dd078 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -16,6 +16,8 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1, struct commit *commit; struct commitinfo *info; - char buf[256], *url; + char buf[256]; + char *ref; + ref = xstrdup(refname); strncpy(buf, refname, sizeof(buf)); commit = lookup_commit(sha1); @@ -26,5 +28,5 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1, info = cgit_parse_commit(commit); html("<tr><td>"); - cgit_log_link(refname, NULL, NULL, refname, NULL, NULL); + cgit_log_link(ref, NULL, NULL, ref, NULL, NULL); html("</td><td>"); cgit_print_age(commit->date, -1, NULL); @@ -32,9 +34,5 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1, html_txt(info->author); html("</td><td>"); - url = cgit_pageurl(cgit_query_repo, "commit", - fmt("h=%s", sha1_to_hex(sha1))); - html_link_open(url, NULL, NULL); - html_ntxt(cgit_max_msg_len, info->subject); - html_link_close(); + cgit_commit_link(info->subject, NULL, NULL, ref, NULL); html("</td></tr>\n"); cgit_free_commitinfo(info); @@ -46,4 +44,5 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1, html("</td></tr>\n"); } + free(ref); return 0; } @@ -55,6 +54,7 @@ static void cgit_print_object_ref(struct object *obj) if (obj->type == OBJ_COMMIT) { - page = "commit"; - arg = "h"; + cgit_commit_link(fmt("commit %s", sha1_to_hex(obj->sha1)), NULL, NULL, + cgit_query_head, sha1_to_hex(obj->sha1)); + return; } else if (obj->type == OBJ_TREE) { page = "tree"; |