diff options
Diffstat (limited to 'ui-shared.c')
| -rw-r--r-- | ui-shared.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/ui-shared.c b/ui-shared.c index 3e378a4..ca2ee82 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
| @@ -249,6 +249,30 @@ void cgit_diff_link(char *name, char *title, char *class, char *head, | |||
| 249 | html("</a>"); | 249 | html("</a>"); |
| 250 | } | 250 | } |
| 251 | 251 | ||
| 252 | void cgit_object_link(struct object *obj) | ||
| 253 | { | ||
| 254 | char *page, *arg, *url; | ||
| 255 | |||
| 256 | if (obj->type == OBJ_COMMIT) { | ||
| 257 | cgit_commit_link(fmt("commit %s", sha1_to_hex(obj->sha1)), NULL, NULL, | ||
| 258 | cgit_query_head, sha1_to_hex(obj->sha1)); | ||
| 259 | return; | ||
| 260 | } else if (obj->type == OBJ_TREE) { | ||
| 261 | page = "tree"; | ||
| 262 | arg = "id"; | ||
| 263 | } else { | ||
| 264 | page = "blob"; | ||
| 265 | arg = "id"; | ||
| 266 | } | ||
| 267 | |||
| 268 | url = cgit_pageurl(cgit_query_repo, page, | ||
| 269 | fmt("%s=%s", arg, sha1_to_hex(obj->sha1))); | ||
| 270 | html_link_open(url, NULL, NULL); | ||
| 271 | htmlf("%s %s", typename(obj->type), | ||
| 272 | sha1_to_hex(obj->sha1)); | ||
| 273 | html_link_close(); | ||
| 274 | } | ||
| 275 | |||
| 252 | void cgit_print_date(time_t secs, char *format) | 276 | void cgit_print_date(time_t secs, char *format) |
| 253 | { | 277 | { |
| 254 | char buf[64]; | 278 | char buf[64]; |
