]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-commit.c
shared.c: use execvp() to execute filter commands
[ps-cgit] / ui-commit.c
index a11bc5f3b00d21368c3ba826e7060aeb14de83d7..2da9fcf2b356f6ebabe49d814311406b587f8154 100644 (file)
@@ -17,6 +17,7 @@ void cgit_print_commit(char *hex, const char *prefix)
        struct commit *commit, *parent;
        struct commitinfo *info, *parent_info;
        struct commit_list *p;
+       struct strbuf notes = STRBUF_INIT;
        unsigned char sha1[20];
        char *tmp, *tmp2;
        int parents = 0;
@@ -35,6 +36,8 @@ void cgit_print_commit(char *hex, const char *prefix)
        }
        info = cgit_parse_commit(commit);
 
+       format_note(NULL, sha1, &notes, PAGE_ENCODING, 0);
+
        load_ref_decorations(DECORATE_FULL_REFS);
 
        html("<table summary='commit info' class='commit-info'>\n");
@@ -107,7 +110,7 @@ void cgit_print_commit(char *hex, const char *prefix)
        html("</table>\n");
        html("<div class='commit-subject'>");
        if (ctx.repo->commit_filter)
-               cgit_open_filter(ctx.repo->commit_filter);
+               cgit_open_filter(ctx.repo->commit_filter, ctx.repo);
        html_txt(info->subject);
        if (ctx.repo->commit_filter)
                cgit_close_filter(ctx.repo->commit_filter);
@@ -115,11 +118,22 @@ void cgit_print_commit(char *hex, const char *prefix)
        html("</div>");
        html("<div class='commit-msg'>");
        if (ctx.repo->commit_filter)
-               cgit_open_filter(ctx.repo->commit_filter);
+               cgit_open_filter(ctx.repo->commit_filter, ctx.repo);
        html_txt(info->msg);
        if (ctx.repo->commit_filter)
                cgit_close_filter(ctx.repo->commit_filter);
        html("</div>");
+       if (notes.len != 0) {
+               html("<div class='notes-header'>Notes</div>");
+               html("<div class='notes'>");
+               if (ctx.repo->commit_filter)
+                       cgit_open_filter(ctx.repo->commit_filter, ctx.repo);
+               html_txt(notes.buf);
+               if (ctx.repo->commit_filter)
+                       cgit_close_filter(ctx.repo->commit_filter);
+               html("</div>");
+               html("<div class='notes-footer'></div>");
+       }
        if (parents < 3) {
                if (parents)
                        tmp = sha1_to_hex(commit->parents->item->object.sha1);
@@ -127,5 +141,6 @@ void cgit_print_commit(char *hex, const char *prefix)
                        tmp = NULL;
                cgit_print_diff(ctx.qry.sha1, tmp, prefix);
        }
+       strbuf_release(&notes);
        cgit_free_commitinfo(info);
 }