]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-summary.c
added snapshot filename to the link
[ps-cgit] / ui-summary.c
index 18608b8e77c569d3718c400a41ff7ad22410b090..b4bc6d874375da0938e7ac8674e80c9c46a5fb73 100644 (file)
@@ -15,28 +15,25 @@ 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);
+       // object is not really parsed at this point, because of some fallout
+       // from previous calls to git functions in cgit_print_log()
+       commit->object.parsed = 0;
        if (commit && !parse_commit(commit)){
                info = cgit_parse_commit(commit);
                html("<tr><td>");
-               url = cgit_pageurl(cgit_query_repo, "log",
-                                  fmt("h=%s", refname));
-               html_link_open(url, NULL, NULL);
-               html_txt(buf);
-               html_link_close();
+               cgit_log_link(ref, NULL, NULL, ref, NULL, NULL, 0);
                html("</td><td>");
                cgit_print_age(commit->date, -1, NULL);
                html("</td><td>");
                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);
        } else {
@@ -46,6 +43,7 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,
                htmlf("*** bad ref %s ***", sha1_to_hex(sha1));
                html("</td></tr>\n");
        }
+       free(ref);
        return 0;
 }
 
@@ -55,8 +53,9 @@ static void cgit_print_object_ref(struct object *obj)
        char *page, *arg, *url;
 
        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";
                arg = "id";
@@ -159,7 +158,7 @@ static int cgit_print_archive_cb(const char *refname, const unsigned char *sha1,
        }
        html("<tr><td>");
        url = cgit_pageurl(cgit_query_repo, "blob",
-                          fmt("id=%s&path=%s", sha1_to_hex(fileid),
+                          fmt("id=%s&amp;path=%s", sha1_to_hex(fileid),
                               buf));
        html_link_open(url, NULL, NULL);
        html_txt(buf);
@@ -203,8 +202,11 @@ void cgit_print_summary()
        if (cgit_repo->readme)
                html_include(cgit_repo->readme);
        html("</div>");
-
+       if (cgit_summary_log > 0)
+               cgit_print_log(cgit_query_head, 0, cgit_summary_log, NULL, NULL, 0);
        html("<table class='list nowrap'>");
+       if (cgit_summary_log > 0)
+               html("<tr class='nohover'><td colspan='4'>&nbsp;</td></tr>");
        cgit_print_branches();
        html("<tr class='nohover'><td colspan='4'>&nbsp;</td></tr>");
        cgit_print_tags();