]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-commit.c
cgit.c: fix whitespace breakage
[ps-cgit] / ui-commit.c
index ce33cf927a4f22ffdd2e9a36a362159b6368e1b7..20a7cb2259d978c72dab0084c1f4dd091c857176 100644 (file)
@@ -76,8 +76,8 @@ void print_fileinfo(struct fileinfo *info)
                html("]</span>");
        }
        htmlf("</td><td class='%s'>", class);
-       query = fmt("id=%s&id2=%s", sha1_to_hex(info->old_sha1),
-                   sha1_to_hex(info->new_sha1));
+       query = fmt("id=%s&id2=%s&path=%s", sha1_to_hex(info->old_sha1),
+                   sha1_to_hex(info->new_sha1), info->new_path);
        html_link_open(cgit_pageurl(cgit_query_repo, "diff", query),
                       NULL, NULL);
        if (info->status == DIFF_STATUS_COPIED ||
@@ -151,7 +151,7 @@ void inspect_filepair(struct diff_filepair *pair)
 
 void cgit_print_commit(const char *hex)
 {
-       struct commit *commit;
+       struct commit *commit, *parent;
        struct commitinfo *info;
        struct commit_list *p;
        unsigned char sha1[20];
@@ -186,17 +186,29 @@ void cgit_print_commit(const char *hex)
        cgit_print_date(info->committer_date);
        html("</td></tr>\n");
        html("<tr><th>tree</th><td colspan='2' class='sha1'><a href='");
-       query = fmt("id=%s", sha1_to_hex(commit->tree->object.sha1));
+       query = fmt("h=%s&id=%s", sha1_to_hex(commit->object.sha1),
+                   sha1_to_hex(commit->tree->object.sha1));
        html_attr(cgit_pageurl(cgit_query_repo, "tree", query));
        htmlf("'>%s</a></td></tr>\n", sha1_to_hex(commit->tree->object.sha1));
        for (p = commit->parents; p ; p = p->next) {
+               parent = lookup_commit_reference(p->item->object.sha1);
+               if (!parent) {
+                       html("<tr><td colspan='3'>");
+                       cgit_print_error("Error reading parent commit");
+                       html("</td></tr>");
+                       continue;
+               }
                html("<tr><th>parent</th>"
                     "<td colspan='2' class='sha1'>"
                     "<a href='");
                query = fmt("id=%s", sha1_to_hex(p->item->object.sha1));
                html_attr(cgit_pageurl(cgit_query_repo, "commit", query));
-               htmlf("'>%s</a></td></tr>\n",
+               htmlf("'>%s</a> (<a href='",
                      sha1_to_hex(p->item->object.sha1));
+               query = fmt("id=%s&id2=%s", sha1_to_hex(parent->tree->object.sha1),
+                           sha1_to_hex(commit->tree->object.sha1));
+               html_attr(cgit_pageurl(cgit_query_repo, "diff", query));
+               html("'>diff</a>)</td></tr>");
        }
        if (cgit_repo->snapshots) {
                htmlf("<tr><th>download</th><td colspan='2' class='sha1'><a href='");